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.