Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Registreringspolicy för tekniska komponenter

Normhierki

...

OpenID Federation 1.0: definierar Entity Statements, trust chains, metadata-ramen och de informational metadata parametrar som bl.a. inkluderar description (alltså exakt den typ av semantik vi vill uttrycka) 

...

Svensk OpenID Federation-profil: preciserar hur (1) ska användas i svensk kontext (t.ex. val av identifierare, roller, constraints, ev. trust marks m.m.)

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.

Normhierki

  1. OpenID Federation 1.0: definierar Entity Statements, trust chains, metadata-ramen och de informational metadata parametrar som bl.a. inkluderar description (alltså exakt den typ av semantik vi vill uttrycka) 

  2. Svensk OpenID Federation-profil: preciserar hur (1) ska användas i svensk kontext (t.ex. val av identifierare, roller, constraints, ev. trust marks m.m.)

  3. Registreringspolicy för tekniska komponenter anger vad attributen faktiskt signalerar och betyder i detta sammanhang.

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

  1. 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.

  2. Metadata ska vara begriplig och verifierbar. Identitetspekande metadata (namn, org-id, domän, kontakt) ska vara spårbar till federationsmedlemmen.

  3. 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.

  4. 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:

  1. Entity Configuration som kan hämtas och valideras.

  2. Subordinate Statement utfärdat av registreringsfunktionen, som binder ihop entiteten, dess federationsnycklar och dess medlemskap samt kan fixera eller stärka utvalda metadata.

  3. 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


AttributeTypeRequiredDescriptionValidation (svensk profil)
issString (URI)YesUtfärdare av entity statement.HTTPS-URI. För self-signed entity configuration: iss = sub.
subString (URI)YesEntitetens entity identifier.HTTPS-URI. Stabil över tid.
iatNumberYesUtfärdandetid.Unix-tid (sekunder).
expNumberYesUtgångstid.Unix-tid (sekunder), > iat.
jwksObject (JWKS)YesFederationsnycklar (publika) för att verifiera entity statements.Endast publika nycklar. keys krävs. Unika kid.
authority_hintsString[] (URI)Yes (för Protocol Entities)Pekar ut entitetens immediate superior(s).Ej tom för leaf/protokollentiteter. HTTPS-URI.
trust_anchor_hintsString[] (URI)NoExtra hint om relevanta trust anchors.Om angiven: ej tom. HTTPS-URI.
metadataObjectYes (för Protocol Entities)Metadata per entity type (protokollroll).Får inte inkludera federation_entity för protokollentiteter.
trust_marksObject[]NoTrust marks som entiteten innehar/presenterar.Varje post måste ha trust_mark_type och trust_mark (JWT).

...

Bilaga B – Trust Marks (generisk struktur)


AttributeTypeRequiredDescriptionValidation
trust_marks[].trust_mark_typeString (URI)YesIdentifierare för trust mark-typen.URI enligt federationens överenskommelse. Ska matcha tokeninnehåll.
trust_marks[].trust_markString (JWT)YesTrust mark-token.JWT. Signatur och giltighet måste valideras enligt federationens tillitsmodell.
trust_mark_issuersObjectNo (Trust Anchor)Anger betrodda utfärdare per trust mark-typ.Endast relevant för trust anchor.
trust_mark_ownersObjectNo (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.


AttributeTypeRequiredDescriptionValidation
organization_identifierStringYesIdentifierare för federationsmedlem (juridisk person). Borde var 12 siffror och kanske börja med 16 men vad vet jag Organisationsnummerformat (policybestämt).
organization_nameString / Object (lang map)YesOrganisationens namn.Ska vara konsekvent med anslutet medlemskap.
contactsString[]YesKontaktpunkter. Frågan är vad vi ska ha denna till. E-post/URI enligt federationens format. Ska vara förvaltningsbara och bemannade.
policy_uriString (URI)NoLänk till policy/sekretess för tjänsten.HTTPS, relevant för tjänsten.
tos_uriString (URI)NoLänk till villkor.HTTPS, relevant för tjänsten.
logo_uriString (URI)NoLogotyp/ikon för UI.HTTPS, kontrollerbar, inte vilseledande.

...

Bilaga D – Entity type: OpenID Relying Party / Client (metadata.openid_relying_party.*)


AttributeTypeRequiredDescriptionValidation
metadata.openid_relying_party.client_nameString / Object (lang map)Policy-styrtNamn för klienten/tjänsten.Får inte vara vilseledande.
metadata.openid_relying_party.redirect_urisString[] (URI)Yes (för auth code)Redirect URIs.HTTPS. Inga fragment. Exakt matchning. Kontrollerbar domän.
metadata.openid_relying_party.response_typesString[]Policy-styrtTillåtna response types.Ska vara konsistent med grant_types och profil.
metadata.openid_relying_party.grant_typesString[]Policy-styrtTillåtna grant types.Ska vara konsistent med response_types och profil.
metadata.openid_relying_party.token_endpoint_auth_methodStringPolicy-styrtAuth-metod vid token endpoint.Ska följa federationsprofil/krav.
metadata.openid_relying_party.jwks_uriString (URI)ConditionalURL till klientens JWKS.HTTPS. Får ej kombineras med inline jwks om policy säger exklusivitet.
metadata.openid_relying_party.jwksObject (JWKS)ConditionalInline JWKS.Publika nycklar. Unika kid.
metadata.openid_relying_party.request_urisString[] (URI)NoURIer för request objects.HTTPS. Kontrollerbar domän.
metadata.openid_relying_party.request_object_signing_algStringPolicy-styrtSigneringsalg för request objects.Ska följa profil/krav.
metadata.openid_relying_party.id_token_signed_response_algStringPolicy-styrtSigneringsalg för ID Token.Ska följa profil/krav.
metadata.openid_relying_party.userinfo_signed_response_algStringNoSigneringsalg för UserInfo (om signerat).Ska följa profil/krav.
metadata.openid_relying_party.client_uriString (URI)NoInformationssida för klienten.HTTPS, kontrollerbar.
metadata.openid_relying_party.logo_uriString (URI)NoLogotyp.HTTPS, kontrollerbar.
metadata.openid_relying_party.policy_uriString (URI)NoPolicy/sekretess.HTTPS, relevant.
metadata.openid_relying_party.tos_uriString (URI)NoVillkor.HTTPS, relevant.

Bilaga E – Entity type: OpenID Provider (metadata.openid_provider.*)


AttributeTypeRequiredDescriptionValidation
metadata.openid_provider.issuerString (URI)YesOP:s issuer identifier.HTTPS. Ska vara konsistent med OP:s discovery och federationens identifiering.
metadata.openid_provider.authorization_endpointString (URI)YesAuthorization endpoint.HTTPS.
metadata.openid_provider.token_endpointString (URI)Policy-styrtToken endpoint (om tillämpligt).HTTPS.
metadata.openid_provider.userinfo_endpointString (URI)NoUserInfo endpoint.HTTPS.
metadata.openid_provider.jwks_uriString (URI)YesURL till OP:s JWKS för protokollnycklar.HTTPS. Kontrollerbar domän.
metadata.openid_provider.registration_endpointString (URI)NoDynamic registration endpoint (om stöd).HTTPS. Ofta inte relevant i federerad modell om registrering sker via federation.
metadata.openid_provider.scopes_supportedString[]Policy-styrtScopes som stöds.Ska vara konsistent med svensk profil/krav.
metadata.openid_provider.response_types_supportedString[]YesResponse types som stöds.Måste innehålla minst de som krävs av profil.
metadata.openid_provider.response_modes_supportedString[]NoResponse modes som stöds.Ska följa profil/krav.
metadata.openid_provider.grant_types_supportedString[]Policy-styrtGrant types som stöds.Ska följa profil/krav.
metadata.openid_provider.subject_types_supportedString[]YesSubject types som stöds.Ska följa profil/krav.
metadata.openid_provider.id_token_signing_alg_values_supportedString[]YesSigneringsalgoritmer för ID Token.Ska följa profil/krav.
metadata.openid_provider.userinfo_signing_alg_values_supportedString[]NoSigneringsalgoritmer för UserInfo (om signerat).Ska följa profil/krav.
metadata.openid_provider.claims_supportedString[]Policy-styrtClaims som stöds.Ska följa profil/krav och informationsklassning.
metadata.openid_provider.claims_parameter_supportedBooleanNoStöd för claims-parameter.Ska följa profil/krav.
metadata.openid_provider.request_parameter_supportedBooleanNoStöd för request-parameter.Ska följa profil/krav.
metadata.openid_provider.request_uri_parameter_supportedBooleanNoStöd för request_uri.Om true bör request_uris vara kontrollerbara och policyreglerade.
metadata.openid_provider.require_request_uri_registrationBooleanNoKräver registrerade request_uris.Rekommenderas om request_uri används.
metadata.openid_provider.code_challenge_methods_supportedString[]Policy-styrtPKCE-metoder.Ska följa profil/krav.
metadata.openid_provider.tls_client_certificate_bound_access_tokensBooleanNomTLS-bound tokens.Endast om federation/profil stödjer.
metadata.openid_provider.dpop_signing_alg_values_supportedString[]NoDPoP-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.


AttributeTypeRequiredDescriptionValidation
metadata.oauth_authorization_server.issuerString (URI)YesAS issuer identifier.HTTPS.
metadata.oauth_authorization_server.authorization_endpointString (URI)YesAuthorization endpoint.HTTPS.
metadata.oauth_authorization_server.token_endpointString (URI)YesToken endpoint.HTTPS.
metadata.oauth_authorization_server.jwks_uriString (URI)YesJWKS URI.HTTPS.
metadata.oauth_authorization_server.scopes_supportedString[]Policy-styrtScopes som stöds.Ska vara konsistent med federationens scope-policy.
metadata.oauth_authorization_server.response_types_supportedString[]Policy-styrtResponse types som stöds.Ska följa profil/krav.
metadata.oauth_authorization_server.grant_types_supportedString[]Policy-styrtGrant types som stöds.Ska följa profil/krav.
metadata.oauth_authorization_server.token_endpoint_auth_methods_supportedString[]Policy-styrtAuth-metoder mot token endpoint.Ska följa profil/krav.
metadata.oauth_authorization_server.token_endpoint_auth_signing_alg_values_supportedString[]NoAlgoritmer för signerad klientauth.Ska följa profil/krav.
metadata.oauth_authorization_server.introspection_endpointString (URI)NoIntrospection endpoint.HTTPS. Endast om erbjuds.
metadata.oauth_authorization_server.revocation_endpointString (URI)NoRevocation endpoint.HTTPS. Endast om erbjuds.
metadata.oauth_authorization_server.registration_endpointString (URI)NoDynamic registration endpoint.Ofta ej relevant i federerad modell om registrering sker via federation.
metadata.oauth_authorization_server.code_challenge_methods_supportedString[]Policy-styrtPKCE-metoder.Ska följa profil/krav.
metadata.oauth_authorization_server.dpop_signing_alg_values_supportedString[]NoDPoP-algoritmer.Endast om stöd finns.
metadata.oauth_authorization_server.require_pushed_authorization_requestsBooleanNoKräver PAR.Rekommenderas om PAR används.
metadata.oauth_authorization_server.pushed_authorization_request_endpointString (URI)NoPAR 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.


AttributeTypeRequiredDescriptionValidation
metadata.oauth_resource.resourceString (URI)YesResursidentifierare (audience/resource indicator).HTTPS-URI. Stabil över tid.
metadata.oauth_resource.authorization_serversString[] (URI)YesLista över AS/issuer som resursen accepterar tokens ifrån.HTTPS-URI. Ska peka på federerade AS-entiteter.
metadata.oauth_resource.scopes_supportedString[]Policy-styrtScopes som resursen kräver/accepterar.Ska vara konsistent med federationens scope-policy och AS-konfiguration.
metadata.oauth_resource.bearer_methods_supportedString[]NoHur bearer tokens presenteras (t.ex. header).Ska vara konsistent med resursens tekniska gränssnitt.
metadata.oauth_resource.resource_documentationString (URI)NoDokumentation för API/resurs.HTTPS, kontrollerbar.
metadata.oauth_resource.tls_client_certificate_bound_access_tokensBooleanNoKräver/hanterar mTLS-bound tokens.Endast om stöd finns i federationen.
metadata.oauth_resource.dpop_signing_alg_values_supportedString[]NoDPoP-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ältInnehåll
Ärende-IDUnik referens till registreringsärendet
EntitetEntity Identifier (URI)
Entity type(s)OP / RP / AS / Resource (en eller flera)
Organisationskopplingorganization_identifier + organization_name
Kontaktuppgiftercontacts (inkl. ansvarig funktion)
PolicyRegistreringspolicy-URI + version
NycklarFederations-JWKS + ev. protokoll-JWKS/JWKS URI
Endpoint-/URI-kontrollSammanfattning av domän/URI-kontroller
BeslutGodkänd / Avslagen / Avregistrerad
BeslutsdatumDatum/tid
BeslutsfattareFunktion/roll (ej persondata om inte nödvändigt)





---------------------Grejer som kanske kan vara bra---------------------------

...

2. Vad andra parter kan förutsätta

...