Formål
For udviklingsformål i NONPROD miljøerne fungerer det fint for tredjeparterne at bruge Plandatas token klienter (også kaldet OIDC klient). Dette er dog ikke praktisk muligt i produktion, då det ikke er muligt (eller meget svært) at implementere et programmatisk flow for autentificering af brugere gennem NemID. Derfor skal alle tredjeparter bestille og implementere sine egne token klienter.
Bestilling af token klient
Token klient bestilles ved at sende et email til kerne-it@erst.dk hvor der angives hvilken miljø klienten bestilles for med følgende oplysninger:
Attribut |
Påkrævet |
Krav |
Anvendelse |
Beskrivelse |
Eksempel på attribut |
client_id |
PÅKRÆVET |
Værdien skal som udgangspunkt findes som entitetsId for ERST-systemet i POGO i samme ERST-miljø.
For systemer fra eksterne organisationer er værdien:
external_<miljø>_<organisation>_<system>
hvor følgende erstattes:
"<miljø>": erstattes med dev/test/preprod/prod "<organisation>": erstattes med organisationens navn "<system>": erstattes med navnet på det eksterne system
Hvis man har brug for flere IdP'er for samme system i samme miljø, så oprettes alle klienter med følgende suffixes:
"_nemlogin" for NemLog-in IdP "_eidasnatural" for eIDAS Natural IdP "_eidaslegal" for eIDAS Legal IdP "_ssi" for SSI IdP "_tip" for TIP IdP
For PROD-klienter kan pt. kun benyttes nemlogin og ikke flere IdP'er.
|
Værdien skal benyttes som "client_id" parameteren ved kald til Authorization endpoint og Token endpoint.
Følger standarden OpenID Connect
|
For at Sector9-Authorization kan relatere klienter til dertilhørende ERST-system, så identificeres klienter entydigt vha. entitetsId for ERST-systemet i POGO. Hvis entitetsId endnu ikke er oprettet for ERST-systemet, så skal det bestilles vha. den gældende AM'er for PogO. Oplys navn for ERST-systemet og hvilke miljøer det skal oprettes i, herved opretter AM'eren ERST-systemet under listen "system" i PogO.
Hvis der er tale om et system i en ekstern organisation, så oprettes der ikke noget entityId for det i POGO.
|
ERST-system (KOMP):
DEV: AAIABsVd7jlM4Ee3i1b182w_hz8 TEST: AAIABj4O53Q4wE0qnhQAr3gWSTI PREPROD: AAIABnheeIryUE53okoKqUET4MY PROD: AAIABrwRM8KST0Vcs9Hg0DfJN2c
System (fx. Vurderingsportalen) fra ekstern organisation (fx UFST):
DEV: external_dev_ufst_vurderingsportalen TEST: external_test_ufst_vurderingsportalen PREPROD: external_preprod_ufst_vurderingsportalen PROD: external_prod_ufst_vurderingsportalen
ERST-system med flere IdP'er i samme miljø:
DEV: c395bc4a-983f-11ee-b9d1-0242ac120002_nemlogin c395bc4a-983f-11ee-b9d1-0242ac120002_eidas c395bc4a-983f-11ee-b9d1-0242ac120002_ssi TEST
af30ef3b-b26d-4a2d-8e74-6be822760d64_nemlogin
af30ef3b-b26d-4a2d-8e74-6be822760d64_eidas
af30ef3b-b26d-4a2d-8e74-6be822760d64_ssi
PREPROD
90f39b57-3c3e-4ec6-82c2-738c29940386_nemlogin
90f39b57-3c3e-4ec6-82c2-738c29940386_eidas 90f39b57-3c3e-4ec6-82c2-738c29940386_ssi PROD
2969e8d4-7792-4e79-8c4f-225d900e1660_nemlogin
|
redirect_uris |
PÅKRÆVET |
Liste af en eller flere absolutte, HTTPS-baserede URL'er.
Vi anbefaler at path for redirect_uris er den samme i alle miljøer og at redirect_uris ikke går på tværs af miljøer.
|
En af værdierne skal benyttes som "redirect_uri" parameteren ved kald til Authorization endpoint og Token endpoint. Følger standarden OpenID Connect |
Som en del af OpenID Connect Authorization Code Flow, så skal klienter videresendes til et callback endpoint "redirect_uri" efter kald til Authorization endpoint og URL til dette "redirect_uri" endpoint skal på forhånd være registreret i Sector9-Authorization for at sikre mod videresendelse til uauthoriserede endpoints. |
ERST-system (KOMP):
DEV: [https://erstdev.virk.dk/slutafregning/s9-auth-redirect-endpoint] TEST: [https://ersttest.virk.dk/slutafregning/s9-auth-redirect-endpoint PREPROD: [https://erstpreprod.virk.dk/slutafregning/s9-auth-redirect-endpoint] PROD: [https://erst.virk.dk/slutafregning/s9-auth-redirect-uri]
|
post_logout_redirect_uris |
ANBEFALES (kan være tom liste) |
Liste af 0, en eller flere absolutte, HTTPS-baserede URL'er. |
En af værdierne kan benyttes som parameteren "post_logout_redirect_uri" ved kald til Logout endpoint. Følger standarden OpenID Connect RP-Initiated Logout |
Hvis klienten ikke angiver parameteren "post_logout_redirect_uri" ved kald til Logout endpoint, så sendes browseren til en 404 side (https://erstdev.virk.dk, https://ersttest.virk.dk, https://erstpreprod.virk.dk og https://erst.virk.dk) hvilket er en dårlig brugeroplevelse. Derfor bør ERST-systemet definere et (eller flere) endpoints hvor browseren kan sendes hen efter log ud. "post_logout_redirect_uris" skal være registreret i Sector9-Authorization for at sikre mod videresendelse til uauthoriserede endpoints. |
ERST-system (KOMP):
DEV: [https://virk.dk] TEST: [https://virk.dk] PREPROD: [https://virk.dk] PROD: [https://virk.dk]
|
sector9 realm |
PÅKRÆVET |
Navn på Sector9 realm, der ønskes anvendt. For PREPROD skal der vælges:
authDevtest4NemloginRealm (NemLog-in devtest4)
For PROD-klienter kan pt. kun vælges:
authNemloginRealm
|
Bestemmer hvilken identity provider, der anvendesaf en klient. |
Der vælges blot ét realm (dvs. én identity provider) pr. klient pr. miljø. Vi anbefaler at benytte authTipRealm i DEV/TEST, authDevtest4NemloginRealm i PREPROD og authNemloginRealm i PROD. |
ERST-system (KOMP):
DEV: authTipRealm TEST: authTipRealm PREPROD: authDevtest4NemloginRealm PROD: authNemloginRealm
|
Oven er tilpasset fra Sector9s egen guide.
Kommunikation med Sector9-Authorization med oidc-client-ts
Når token klient er bestilt og godkendt, er det muligt at implementere token baseret autentificering til Sector9-Authorization. Sector9 anbefaler at TypeScript biblioteket https://github.com/authts/oidc-client-ts benyttes til dette.
Der findes pt. ikke så meget vejledning fra Sector9, der beskriver hvordan dette bibliotek kan benyttes, men der findes et eksempelprojekt som kan bruges som reference.
Eksempelprojekt
Uheldigvis har Sector9 ikke nogen dokumentation på hvordan man kan bruge oidc-client-ts for at hente token (det følger dog bare OIDC standarden), men der findes et eksempelprojekt: https://rep.erst.dk/git/sud/sud-client/-/tree/master/src/main/vue/bedoemmelsesmodul/src/services/s9-oidc
Kildekoden er vedhæftet her hvis adgang savnes.