Övergripande beskrivning
| draw.io Diagram | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
openid-federation-services är en Java/Spring Boot-baserad komponent för att exponera och hantera tjänster enligt OpenID Federation 1.0. Komponenten implementerar centrala federationstjänster för att möjliggöra dynamisk tillitshantering inom en OpenID Federation-baserad infrastruktur. (github.com)
...
Komponenten stödjer funktioner för:•
- Publicering av federationsmetadata
...
- Hantering av trust chains och trust anchors
...
- Federation discovery och metadata-upplösning
...
- Hantering av subordinate statements
...
- Utfärdande och hantering av trust marks
...
- Validering och distribution av federationstillit mellan anslutna parter
Komponenten stödjer bådekan agera som:•
- Trust Anchor
...
- Resolver
...
- Intermediate
...
- Entity
- Trustmark Issuer
Arkitektur och driftläge
Tjänsten kan köras i två huvudsakliga driftlägen:
- Lokal konfigurationStandalone mode
Instanskonfiguration hanteras lokalt via properties/YAML-konfiguration. - Managed modeRegistry-baserad konfiguration
Instanser hämtar sin konfiguration från ett externt registry-systemOpenID Federation Registry. Detta möjliggör central administration och via ett webbgränssnitt för federationshantering. I detta läge kan flera noder grupperas bakom lastbalanserare och dela gemensam federation-konfiguration. Flera instanser kan dela samma konfiguration och köras bakom en lastbalanserare för hög tillgänglighet.
OBS! OpenID Federation Registry utvecklas fortfarande och är inte släppt som open source
Arkitekturen är avsedd för horisontell skalning där flera federation-noder kan exponera samma tjänster bakom lastbalanserare.
Konfiguration
Konfiguration sker primärt via Spring Boot-konfiguration (application.yaml eller miljövariabler).
Exempel på typiska konfigurationsparametrar:
• Entity ID för trust anchor/intermediate
• Signeringsnycklar och certifikat
• Endpoint-URL:er
• Registry-anslutning i managed mode
• Federation policies
• Trust mark-konfiguration
Projektet använder även gemensamma bibliotek från openid-federation-commons, vilket innehåller grundfunktioner för federation, trust chain-validering och klientstöd. (github.com)
Drift
Komponenten levereras som Spring Boot-applikation och publiceras även som container-image via GitHub Releases.
Lokal konfiguration
OpenID Federation Services kan konfigureras lokalt med hjälp av applikationens konfigurationsfiler. Konfigurationen styr vilka federationsentiteter instansen representerar, vilka federationstjänster som exponeras och vilket metadata som publiceras.
Konfigurationens struktur
Den lokala konfigurationen är uppbyggd kring de federationsentiteter som instansen representerar.
På övergripande nivå består konfigurationen av:
- gemensamma inställningar
- Trust Anchors
- Intermediates
- Resolvers
- Trust Mark Issuers
Exempel på struktur:
federation
└── local-registry
├── trust-anchors
├── intermediates
├── resolvers
└── trust-mark-issuersVarje federationsentitet konfigureras separat.
För respektive federationsentitet kan bland annat följande information konfigureras:
- Entity Identifier
- Signeringsnycklar (JWKS)
- Endpoints
- Metadata
- Metadata Policies
- Constraints
- Trust Marks
- Underordnade entiteter
- Administration av underordnade entiteter
En Trust Anchor eller Intermediate administrerar vilka underordnade entiteter som ingår i federationen. De underordnade entiteterna används för att generera Federation List Endpoint och för att utfärda Subordinate Statements.
Vid lokal konfiguration definieras de underordnade entiteterna under federation.local-registry.
Varje Trust Anchor eller Intermediate innehåller en lista med subordinates, där respektive underordnad entitet konfigureras.
För varje underordnad entitet kan bland annat följande information anges:
- Entity Identifier
- Entity Configuration eller ec_location
- JWKS
- Metadata Policy
- Constraints
- Kritiska metadatafält (crit)
Konfigurationen avgör vilka entiteter som exponeras via Federation List Endpoint och vilket innehåll som används när Entity Statements genereras.
Exempel
Följande exempel visar den övergripande strukturen för en lokal konfiguration.
federation:
local-registry:
trust-anchors:
- entity-id: https://ta.example.se
subordinates:
- entity-id: https://rp.example.se
- entity-id: https://as.example.seDrift
- Komponenten levereras som öppen källkod i form av en Spring Boot-applikation.
- För att underlätta installation och drift publiceras även container-images.
- Driftmiljö, driftsättning och förvaltning väljs och ansvaras för av den organisation som använder komponenten
Status
Versionsinformation: openid-federation-services/docs/release-notes.md at main · swedenconnect/openid-federation-services
| Fråga | Svar | Kommentar |
|---|---|---|
|
| Eventuellt HSM krav kommer att beskrivas i 'Krav på anslutningsoperöter' enligt federationsplattformen |
2. Konnektivitetskrav: |
- Anslutning till federationsoperatör
- Anslutning till anslutande part
| Status | ||||
|---|---|---|---|---|
|
Frågeställningarna behöver förtydligas
- Vad avses med konnektivetskrav?
3. Systemkrav:
- Plattformsstöd
- Behov av licenser för databaser
- Open Source utan support under Piloten, MariaDB, Redis
vilka tjänster/ändpunkter som behöver vara nåbara och mellan vilka komponenter, till exempel
| Samtliga federationsentiteter ska vara nåbara för hämtning av Entity Configuration, medan anslutningstjänster, tillitsankare och eventuella uppslags- och verifieringstjänster ska vara nåbara via de endpoints som krävs för metadatavalidering.
| Kommentar: Enligt OpenID Federation 1.0 är endast /.well-known/openid-federation en standardiserad URL-sökväg. Övriga endpoints, definieras av respektive entitet och publiceras i dess Entity Configuration. |
3. Systemkrav:
| Leveransen består av öppen källkod och inte en färdig produkt med definierade krav på plattform, specifika databaser eller supportavtal.
|
| Status | ||||
|---|---|---|---|---|
|
| |
4. Åtkomstkontroll:
|
|
| |
5. Ip-adresser och routing:
|
| För Sweden Connect kommer samtliga tjänster att exponeras via ett gemensamt DNS-namn och en gemensam extern IP-adress. |
6. Externa certifikat för TLS på publika endpoints
|
| |
7. Autentisering och behörighet för Admin
|
|
| OpenID Federation Registry kommer på sikt kunna användas för konfigurera OpenID Federation Services i managed mode.
Frågan avser hur realiseras behörigheterna för att kunna administrera federationstjänsterna, dvs. Admin-applikationen. | ||||||
| 8. Beskrivning av komponent som integrerar mellan auktorsationsserver federationstjänsten |
| Resolver ( |
| Uppslagstjänst). |
Frågeställningarna behöver förtydligas
| |||||||
9. Avser Digg tillhandahålla Open Source-komponenteter enligt följande alternativ:
Gäller både under piloten samt på sikt |
| |||||||
10. När planeras adminportalen levereras, omfattning över tid? |
|