...
-----------------------------utkast 20260220-------------------------
1. Syfte
Denna policy beskriver vad registrering av tekniska komponenter i federationen innebär och vilken betydelse (semantik) registrerade metadata-attribut har. Policyn ska skapa en gemensam förståelse för vilken tillit som kan läggas i registrerade uppgifter samt hur dessa används för automatiserad tillitsetablering, interoperabilitet och säker drift.
Policyn tar vid efter att en organisation är ansluten som federationsmedlem enligt anslutningspolicy (verifierad organisation och behöriga kontaktpersoner).
2. Styrande ramverk
Policyn bygger på OpenID Federation och den svenska profilen för OpenID Federation. Dessa anger den tekniska modellen för entity statements, trust chains, metadata per entity type och (i förekommande fall) trust marks. Denna policy preciserar hur metadata ska förstås, vilka tillitsantaganden som ska gälla och vilka minimikrav som behöver vara uppfyllda för att en registrering ska vara meningsfull och maskinellt användbar.
3. Vad andra parter kan förutsätta
När en teknisk komponent är registrerad enligt denna policy kan andra parter förutsätta att:
Komponenten är knuten till en federationsmedlem (juridisk person) genom stabila organisationsuppgifter i metadata.
Identifierare och domänval ger en kontrollerbar koppling mellan komponent och organisationens domän(er), för att minska risk för felregistrering och vilseledande identiteter.
Metadata-attributen har en definierad semantik som kan användas för maskinell validering och resolution i federationen.
Registreringen hänvisar till en identifierbar registreringspolicy (policy-URI) som anger vilket regelverk som gällde vid registreringstillfället och vid uppdateringar.
4. Omfattning och avgränsning
4.1 Omfattar
Semantik för metadata-attribut vid registrering av tekniska komponenter: identitet, organisation, kontakt, nycklar, endpoints och protokollrelaterad metadata.
Grundprinciper för hur metadata används för interoperabilitet och tillit inom ramen för OpenID Federation och svensk profil.
Registreringslivscykel på policynivå (nyregistrering, uppdatering, avregistrering) med fokus på spårbarhet.
4.2 Omfattar inte
Exakta fältkrav per profil, algoritmlistor, testfall eller detaljerade tekniska valideringsregler (hanteras i krav/spec/profil).
Organisationsverifiering och mandatkedjor för medlemskap (hanteras i anslutningspolicy).
Driftinstruktioner för resolver, cache och federationstjänster (hanteras i operativa dokument).
5. Roller och ansvar
Ledningsaktör: fastställer policyn och kan initiera uppföljning/revision av efterlevnad.
Federationsoperatör: ansvarar för federationens tillitsinfrastruktur och publicering av federationens gemensamma resurser (om rollen är separerad).
Registreringsfunktion (Federation Registration Entity): ansvarar för att registrering sker enligt policyn, att policyidentifierare används och att tillitsartefakter publiceras.
Federationsmedlem: ansvarar för att lämnad metadata är korrekt, aktuell och att förändringar hanteras enligt federationens processer.
6. Definitioner
Teknisk komponent: federationsentitet som registreras och publiceras för upptäckt och tillit inom federationen, t.ex. OpenID Provider, Relying Party/Client, Authorization Server, Resource.
Entity Identifier: entydig URI som identifierar en entitet i federationen.
Entity Configuration: entitetens självdeklaration som utgör startpunkt för trust chain och metadata resolution.
Subordinate Statement: uttalande signerat av entitetens överordnade registreringsfunktion som intygar bindningar och kontroller vid registrering.
Registreringspolicy-URI: stabil identifierare som anger vilken version av registreringspolicy som tillämpats.
7. Grundläggande ställningstaganden
Registrering är tillitsskapande och ska möjliggöra maskinell bedömning av vem som står bakom en komponent, vilka nycklar som hör till entiteten och hur komponenten ska användas säkert och interoperabelt.
Metadata ska vara begriplig och verifierbar. Identitetspekande metadata (namn, org-id, domän, kontakt) ska vara spårbar till federationsmedlemmen.
Registreringspolicy-URI är en central del av tilliten: andra parter ska kunna förstå vilket regelverk som gällde vid intaget och vid senare ändringar.
Svensk profil tillämpas med rollseparation: federation service-roller och protokollroller ska inte blandas under samma entity identifier för protokollentiteter.
8. Registreringsobjekt och policyartefakter
Registrering av en teknisk komponent ska resultera i följande artefakter:
Entity Configuration som kan hämtas och valideras.
Subordinate Statement utfärdat av registreringsfunktionen, som binder ihop entiteten, dess federationsnycklar och dess medlemskap samt kan fixera eller stärka utvalda metadata.
Registreringspolicy-URI som gör policyn spårbar vid resolution och vid revision.
9. Registreringsprocess (policy-nivå)
9.1 Nyregistrering
Nyregistrering innebär att en ny entitet skapas med initial baseline-metadata. Registreringsfunktionen ska säkerställa att:
organisationskoppling är etablerad,
domänkoppling är rimlig och kontrollerbar,
entity configuration kan valideras,
subordinate statement kan utfärdas,
registreringspolicy-URI kopplas till registreringen.
9.2 Uppdatering
Uppdatering innebär ändring av metadata för en befintlig entitet. Principer:
Uppdateringar ska vara spårbara (vem, vad, när, varför).
Nyckelbyte och endpointändringar ska hanteras kontrollerat.
Uppdateringar kan kräva ny attest eller ny kontroll beroende på ändringens säkerhetspåverkan.
Tillämplig policyversion ska vara tydlig (antingen kvarvarande version om policyn ej ändras, eller ny version om policyn uppdaterats och tillämpas).
9.3 Avregistrering och återkallelse
Avregistrering innebär att entiteten inte längre ska vara tillitsbar/upptäckbar. Principer:
Avregistrering ska kunna ske kontrollerat vid avslutat medlemskap eller vid säkerhetsincident.
Federationens tillitskedjor ska brytas eller markera entiteten som icke giltig på ett sätt som är konsekvent för relying parter.
10. Spårbarhet, transparens och bevisbarhet
Registreringsbeslut ska kunna knytas till ärende/beslutsdatum och tillämpad policyversion.
Federationens parter ska kunna skilja på vad som intygats av registreringsfunktionen (subordinate statement) och vad som är självdeklarerat (entity configuration).
Underlag för kritiska bindningar (organisation↔entitet, domän↔identifierare, nycklar↔entitet) ska kunna redovisas vid revision.
11. Revision och uppföljning
Efterlevnad kan följas upp genom stickprov, incidentuppföljning och granskning av publicerade artefakter.
Vid brister kan federationen kräva korrigering, begränsa tillit eller avregistrera komponenten enligt federationens styrmodell.
...
Bilagor – Metadata-tabeller per entity type (portalformat)
Bilaga A – Entity Configuration (top-level claims) – svensk profil
| Attribute | Type | Required | Description | Validation (svensk profil) |
|---|---|---|---|---|
| iss | String (URI) | Yes | Utfärdare av entity statement. | HTTPS-URI. För self-signed entity configuration: iss = sub. |
| sub | String (URI) | Yes | Entitetens entity identifier. | HTTPS-URI. Stabil över tid. |
| iat | Number | Yes | Utfärdandetid. | Unix-tid (sekunder). |
| exp | Number | Yes | Utgångstid. | Unix-tid (sekunder), > iat. |
| jwks | Object (JWKS) | Yes | Federationsnycklar (publika) för att verifiera entity statements. | Endast publika nycklar. keys krävs. Unika kid. |
| authority_hints | String[] (URI) | Yes (för Protocol Entities) | Pekar ut entitetens immediate superior(s). | Ej tom för leaf/protokollentiteter. HTTPS-URI. |
| trust_anchor_hints | String[] (URI) | No | Extra hint om relevanta trust anchors. | Om angiven: ej tom. HTTPS-URI. |
| metadata | Object | Yes (för Protocol Entities) | Metadata per entity type (protokollroll). | Får inte inkludera federation_entity för protokollentiteter. |
| trust_marks | Object[] | No | Trust marks som entiteten innehar/presenterar. | Varje post måste ha trust_mark_type och trust_mark (JWT). |
...
Bilaga B – Trust Marks (generisk struktur)
| Attribute | Type | Required | Description | Validation |
|---|---|---|---|---|
| trust_marks[].trust_mark_type | String (URI) | Yes | Identifierare för trust mark-typen. | URI enligt federationens överenskommelse. Ska matcha tokeninnehåll. |
| trust_marks[].trust_mark | String (JWT) | Yes | Trust mark-token. | JWT. Signatur och giltighet måste valideras enligt federationens tillitsmodell. |
| trust_mark_issuers | Object | No (Trust Anchor) | Anger betrodda utfärdare per trust mark-typ. | Endast relevant för trust anchor. |
| trust_mark_owners | Object | No (Trust Anchor) | Anger ägare av trust mark-typ, inkl. nyckelmaterial. | Endast relevant för trust anchor. |
Bilaga C – Gemensam organisations- och kontaktmetadata
...
Dessa fält bör finnas för samtliga protokollentiteter (OP, RP/Client, AS, Resource) för att stödja spårbarhet och mänsklig validering.
| Attribute | Type | Required | Description | Validation |
|---|---|---|---|---|
| organization_identifier | String | Yes | Identifierare för federationsmedlem (juridisk person). Borde var 12 siffror och kanske börja med 16 men vad vet jag | Organisationsnummerformat (policybestämt). |
| organization_name | String / Object (lang map) | Yes | Organisationens namn. | Ska vara konsekvent med anslutet medlemskap. |
| contacts | String[] | Yes | Kontaktpunkter. Frågan är vad vi ska ha denna till. | E-post/URI enligt federationens format. Ska vara förvaltningsbara och bemannade. |
| policy_uri | String (URI) | No | Länk till policy/sekretess för tjänsten. | HTTPS, relevant för tjänsten. |
| tos_uri | String (URI) | No | Länk till villkor. | HTTPS, relevant för tjänsten. |
| logo_uri | String (URI) | No | Logotyp/ikon för UI. | HTTPS, kontrollerbar, inte vilseledande. |
...
Bilaga D – Entity type: OpenID Relying Party / Client (metadata.openid_relying_party.*)
| Attribute | Type | Required | Description | Validation |
|---|---|---|---|---|
| metadata.openid_relying_party.client_name | String / Object (lang map) | Policy-styrt | Namn för klienten/tjänsten. | Får inte vara vilseledande. |
| metadata.openid_relying_party.redirect_uris | String[] (URI) | Yes (för auth code) | Redirect URIs. | HTTPS. Inga fragment. Exakt matchning. Kontrollerbar domän. |
| metadata.openid_relying_party.response_types | String[] | Policy-styrt | Tillåtna response types. | Ska vara konsistent med grant_types och profil. |
| metadata.openid_relying_party.grant_types | String[] | Policy-styrt | Tillåtna grant types. | Ska vara konsistent med response_types och profil. |
| metadata.openid_relying_party.token_endpoint_auth_method | String | Policy-styrt | Auth-metod vid token endpoint. | Ska följa federationsprofil/krav. |
| metadata.openid_relying_party.jwks_uri | String (URI) | Conditional | URL till klientens JWKS. | HTTPS. Får ej kombineras med inline jwks om policy säger exklusivitet. |
| metadata.openid_relying_party.jwks | Object (JWKS) | Conditional | Inline JWKS. | Publika nycklar. Unika kid. |
| metadata.openid_relying_party.request_uris | String[] (URI) | No | URIer för request objects. | HTTPS. Kontrollerbar domän. |
| metadata.openid_relying_party.request_object_signing_alg | String | Policy-styrt | Signeringsalg för request objects. | Ska följa profil/krav. |
| metadata.openid_relying_party.id_token_signed_response_alg | String | Policy-styrt | Signeringsalg för ID Token. | Ska följa profil/krav. |
| metadata.openid_relying_party.userinfo_signed_response_alg | String | No | Signeringsalg för UserInfo (om signerat). | Ska följa profil/krav. |
| metadata.openid_relying_party.client_uri | String (URI) | No | Informationssida för klienten. | HTTPS, kontrollerbar. |
| metadata.openid_relying_party.logo_uri | String (URI) | No | Logotyp. | HTTPS, kontrollerbar. |
| metadata.openid_relying_party.policy_uri | String (URI) | No | Policy/sekretess. | HTTPS, relevant. |
| metadata.openid_relying_party.tos_uri | String (URI) | No | Villkor. | HTTPS, relevant. |
Bilaga E – Entity type: OpenID Provider (metadata.openid_provider.*)
| Attribute | Type | Required | Description | Validation |
|---|---|---|---|---|
| metadata.openid_provider.issuer | String (URI) | Yes | OP:s issuer identifier. | HTTPS. Ska vara konsistent med OP:s discovery och federationens identifiering. |
| metadata.openid_provider.authorization_endpoint | String (URI) | Yes | Authorization endpoint. | HTTPS. |
| metadata.openid_provider.token_endpoint | String (URI) | Policy-styrt | Token endpoint (om tillämpligt). | HTTPS. |
| metadata.openid_provider.userinfo_endpoint | String (URI) | No | UserInfo endpoint. | HTTPS. |
| metadata.openid_provider.jwks_uri | String (URI) | Yes | URL till OP:s JWKS för protokollnycklar. | HTTPS. Kontrollerbar domän. |
| metadata.openid_provider.registration_endpoint | String (URI) | No | Dynamic registration endpoint (om stöd). | HTTPS. Ofta inte relevant i federerad modell om registrering sker via federation. |
| metadata.openid_provider.scopes_supported | String[] | Policy-styrt | Scopes som stöds. | Ska vara konsistent med svensk profil/krav. |
| metadata.openid_provider.response_types_supported | String[] | Yes | Response types som stöds. | Måste innehålla minst de som krävs av profil. |
| metadata.openid_provider.response_modes_supported | String[] | No | Response modes som stöds. | Ska följa profil/krav. |
| metadata.openid_provider.grant_types_supported | String[] | Policy-styrt | Grant types som stöds. | Ska följa profil/krav. |
| metadata.openid_provider.subject_types_supported | String[] | Yes | Subject types som stöds. | Ska följa profil/krav. |
| metadata.openid_provider.id_token_signing_alg_values_supported | String[] | Yes | Signeringsalgoritmer för ID Token. | Ska följa profil/krav. |
| metadata.openid_provider.userinfo_signing_alg_values_supported | String[] | No | Signeringsalgoritmer för UserInfo (om signerat). | Ska följa profil/krav. |
| metadata.openid_provider.claims_supported | String[] | Policy-styrt | Claims som stöds. | Ska följa profil/krav och informationsklassning. |
| metadata.openid_provider.claims_parameter_supported | Boolean | No | Stöd för claims-parameter. | Ska följa profil/krav. |
| metadata.openid_provider.request_parameter_supported | Boolean | No | Stöd för request-parameter. | Ska följa profil/krav. |
| metadata.openid_provider.request_uri_parameter_supported | Boolean | No | Stöd för request_uri. | Om true bör request_uris vara kontrollerbara och policyreglerade. |
| metadata.openid_provider.require_request_uri_registration | Boolean | No | Kräver registrerade request_uris. | Rekommenderas om request_uri används. |
| metadata.openid_provider.code_challenge_methods_supported | String[] | Policy-styrt | PKCE-metoder. | Ska följa profil/krav. |
| metadata.openid_provider.tls_client_certificate_bound_access_tokens | Boolean | No | mTLS-bound tokens. | Endast om federation/profil stödjer. |
| metadata.openid_provider.dpop_signing_alg_values_supported | String[] | No | DPoP-algoritmer. | Endast om federation/profil stödjer. |
...
Bilaga F – Entity type: OAuth Authorization Server (metadata.oauth_authorization_server.*)
Används för AS som inte nödvändigtvis är en OpenID Provider (ren OAuth AS), eller där man vill uttrycka OAuth AS-metadata separat.
| Attribute | Type | Required | Description | Validation |
|---|---|---|---|---|
| metadata.oauth_authorization_server.issuer | String (URI) | Yes | AS issuer identifier. | HTTPS. |
| metadata.oauth_authorization_server.authorization_endpoint | String (URI) | Yes | Authorization endpoint. | HTTPS. |
| metadata.oauth_authorization_server.token_endpoint | String (URI) | Yes | Token endpoint. | HTTPS. |
| metadata.oauth_authorization_server.jwks_uri | String (URI) | Yes | JWKS URI. | HTTPS. |
| metadata.oauth_authorization_server.scopes_supported | String[] | Policy-styrt | Scopes som stöds. | Ska vara konsistent med federationens scope-policy. |
| metadata.oauth_authorization_server.response_types_supported | String[] | Policy-styrt | Response types som stöds. | Ska följa profil/krav. |
| metadata.oauth_authorization_server.grant_types_supported | String[] | Policy-styrt | Grant types som stöds. | Ska följa profil/krav. |
| metadata.oauth_authorization_server.token_endpoint_auth_methods_supported | String[] | Policy-styrt | Auth-metoder mot token endpoint. | Ska följa profil/krav. |
| metadata.oauth_authorization_server.token_endpoint_auth_signing_alg_values_supported | String[] | No | Algoritmer för signerad klientauth. | Ska följa profil/krav. |
| metadata.oauth_authorization_server.introspection_endpoint | String (URI) | No | Introspection endpoint. | HTTPS. Endast om erbjuds. |
| metadata.oauth_authorization_server.revocation_endpoint | String (URI) | No | Revocation endpoint. | HTTPS. Endast om erbjuds. |
| metadata.oauth_authorization_server.registration_endpoint | String (URI) | No | Dynamic registration endpoint. | Ofta ej relevant i federerad modell om registrering sker via federation. |
| metadata.oauth_authorization_server.code_challenge_methods_supported | String[] | Policy-styrt | PKCE-metoder. | Ska följa profil/krav. |
| metadata.oauth_authorization_server.dpop_signing_alg_values_supported | String[] | No | DPoP-algoritmer. | Endast om stöd finns. |
| metadata.oauth_authorization_server.require_pushed_authorization_requests | Boolean | No | Kräver PAR. | Rekommenderas om PAR används. |
| metadata.oauth_authorization_server.pushed_authorization_request_endpoint | String (URI) | No | PAR endpoint. | HTTPS. Om PAR används. |
...
Bilaga G – Entity type: OAuth Protected Resource (metadata.oauth_resource.*)
Avser resurs/API som skyddas av OAuth (Resource Server) och som kan beskrivas maskinellt för interoperabilitet.
| Attribute | Type | Required | Description | Validation |
|---|---|---|---|---|
| metadata.oauth_resource.resource | String (URI) | Yes | Resursidentifierare (audience/resource indicator). | HTTPS-URI. Stabil över tid. |
| metadata.oauth_resource.authorization_servers | String[] (URI) | Yes | Lista över AS/issuer som resursen accepterar tokens ifrån. | HTTPS-URI. Ska peka på federerade AS-entiteter. |
| metadata.oauth_resource.scopes_supported | String[] | Policy-styrt | Scopes som resursen kräver/accepterar. | Ska vara konsistent med federationens scope-policy och AS-konfiguration. |
| metadata.oauth_resource.bearer_methods_supported | String[] | No | Hur bearer tokens presenteras (t.ex. header). | Ska vara konsistent med resursens tekniska gränssnitt. |
| metadata.oauth_resource.resource_documentation | String (URI) | No | Dokumentation för API/resurs. | HTTPS, kontrollerbar. |
| metadata.oauth_resource.tls_client_certificate_bound_access_tokens | Boolean | No | Kräver/hanterar mTLS-bound tokens. | Endast om stöd finns i federationen. |
| metadata.oauth_resource.dpop_signing_alg_values_supported | String[] | No | DPoP-algoritmer som resursen accepterar. | Endast om stöd finns. |
...
Bilaga H – Minimiregler för semantik och kvalitet (gäller alla entity types)
H.1 Identifierare och domänkoppling
Entity identifier och kritiska URI-fält ska vara valda så att koppling till federationsmedlemmens domän(er) är rimlig och kontrollerbar.
URI:er ska vara långsiktigt förvaltningsbara och inte peka på innehåll/endpoints som kan bytas ut på ett sätt som skapar vilseledande beteende.
H.2 Nycklar och livscykel
Federationsnycklar (i entity configuration) och protokollnycklar (i entity type metadata, t.ex. jwks_uri) ska kunna roteras på ett kontrollerat sätt.
Nyckelbyte ska vara spårbart och hanteras som säkerhetskänslig ändring.
H.3 Kontakter och incidentförmåga
Kontakter ska vara bemannade och kunna hantera incidenter, nyckelbyten och metadataändringar.
Vid incident ska federationen kunna nå ansvarig part utan dröjsmål.
H.4 Rollseparation (svensk profil)
Protokollentiteter ska vara leaf entities och får inte blandas med federation service-roller under samma entity identifier.
Protokollentiteters entity configuration ska inte innehålla federation service-metadata (
federation_entity).
...
Bilaga I – Mall för “registreringsbeslut” (spårbarhet)
| Fält | Innehåll |
|---|---|
| Ärende-ID | Unik referens till registreringsärendet |
| Entitet | Entity Identifier (URI) |
| Entity type(s) | OP / RP / AS / Resource (en eller flera) |
| Organisationskoppling | organization_identifier + organization_name |
| Kontaktuppgifter | contacts (inkl. ansvarig funktion) |
| Policy | Registreringspolicy-URI + version |
| Nycklar | Federations-JWKS + ev. protokoll-JWKS/JWKS URI |
| Endpoint-/URI-kontroll | Sammanfattning av domän/URI-kontroller |
| Beslut | Godkänd / Avslagen / Avregistrerad |
| Beslutsdatum | Datum/tid |
| Beslutsfattare | Funktion/roll (ej persondata om inte nödvändigt) |