idporten-utland
Løsningen baserer seg på gjenbruk av eID-løsninger som brukeren allerede har, som Google/Apple-ID. På denne måten slipper brukeren å måtte lage nok en brukerkonto med passord som lett kan glemmes. Alle som har en smart-telefon har en slik eID.
For at løsningen skal kunne brukes i ulike sektorer og kunne støtte den variasjon av fagsystem og identifikatorer som er i bruk i offentlig sektor, kan kunder be om at apple/google-innloggingen blir beriket med norske sektor-spesifikke identifikatorer som feks Nasjonal Felles Hjelpenummer fra helsesektoren. Første gang en eID logger på vil idporten-utland rekvirere en ny sektor-identifikator fra forespurt register og lagre en permanent kobling mellom eID og identifikator i idporten-utland sin lokale brukerdatabase. Ved senere innlogginger med samme eID, mottar derfor kunde samme sektor-identifikator.
idporten-utland bruker merkenavnet Connect2Norway ut mot sluttbruker.
Aktører som inngår:
Figuren under viser hvilke aktører som inngår ved lansering. Senere kan det bli koblet på andre registre med egne sektor-identifikatorer.
kobling eid - FH-nummer] end subgraph NHN reg[PREG] end Sluttbruker ---|1. Vil bruke|ny OIDC -->|5. videresender bruker til |ny Sluttbruker ---|2. logger inn i |OIDC OIDC ---|3.sjekker|db OIDC ---|4. evt. rekvirerer nytt FH-nummer |reg
Flytskjema:
Sekvensdiagrammet viser hva som skjer når en tjeneste trenger en innlogging med FH-nummer:
(NHN) U ->> C: Klikker login-knapp C ->> U: Redirect med autentiseringsforespørsel
som etterspør FH-nummer U ->> I: følg redirect... note over U,I: Sluttbruker autentiserer seg med Apple/Google I ->> I: Sjekk om bruker har FH-nummer fra før opt Nei I ->> P: Rekvirer nytt FH-nummer I ->> I: lagre kobling i lokal database end I ->> U: Redirect med autorisasjonscode U ->> C: følg redirect... C ->> I: forespørre token (/token) I ->> C: id_token + access_token (evt. refresh_token) note over U,C: Innlogget i tjenesten
Metadata, endepunkt og klientregistreringer
| Mijlø | Issuer | .well-known |
|---|---|---|
| PROD | https://connect2norway.no/ | https://connect2norway.no/.well-known/openid-configuration |
| VER2 | https://idporten-utland-test.digdir.eon.no/c2id | https://idporten-utland-test.digdir.eon.no/c2id/.well-known/openid-configuration |
idporten-utland kjører i et eget, Kubernetes-basert on-prem driftsmiljø hos driftsleverandør TietoEvry.
Løsningen er koblet mot Selvbetjening på samarbeidsportalen, slik at det er lett å integrere mot den. Det er ennå ikke lagt til eget valg for idporten-utland som integration_type i Samarbeidsportalen, slik at alle integrasjoner som virker i den “vanlige” ID-porten (OIDC) også virker mot id-porten utland. Vi anbefaler dog at kunder oppretter egne integrasjoner spesifikt for idporten-utland. For testmiljø er det VER2 som skal benyttes. Husk å opprette integrasjonen som type API_KLIENT, slik at du kan få registrert scopes på den.
Merk: Det kan ta opptil 10 minutter fra en registrerer en klient i selvbetjeningsløsningen, til den er aktiv i idporten-utland.
Merk: Pga. en intern begrensning er det kun klienter registert via Selvbetjening med 1 og bare 1 redirect-uri som virker i idporten-utland p.t.
Merk: Provideren støtter ikke alle protokoll-varianter som er annonsert på .well-known-endepunktet
Testbrukere
Man må opprette egne google/apple-brukere for å teste idporten-utland.
Eventelt kan man bruke “TestID”, og fylle ut et norsk syntaktisk gyldig fødselsnummer, så lenge man bruker nummer som ikke er tildelt ekte personer (altså finnes i produksjon i Folkeregisteret). Vi anbefaler å bruke syntetiske fødselsnummer, dvs. nummer som har 80 som verdi for måned.
Test-tjeneste
Den enkleste måten å teste tjenesten på, er å logge inn til profil-sida med en testbruker: https://idporten-utland-test.digdir.eon.no/idporten-utland-registration/
Alternativ kan man bruke en teknisk test-klient dersom man vil utforske selve protokollen mer: https://idporten-utland-test.digdir.eon.no/idporten-test-client/
Grensesnittsdefinisjon
-
Bruker OIDC med oauth2.1 i botn, dvs authorization-code-flow med PKCE+state+nonce er påkrevd for alle klienter.
-
Klienter bruker primært scopes for å få de sektor-spesifikke identifikatorene de ønsker
-
t.d
idporten:utland:fhnummerdersom klienten ønsker Nasjonalt Felles Hjelpenummer -
dersom forespurt informasjon ikkje finst tilknytta brukar-kontoen’en frå før, so vert det rekvirert frå autorativ kjelde der&då.
-
openid profileer ein gyldig kombinasjon, dvs. lov å logge inn utan noko beriking eller kobling
-
-
Klienter må håndere et bredt mulighetsrom av “sikkerhetsnivå”, dvs. en innlogget bruker kan ha:
-
svak eller sterk identitetskontroll
-
svake eller sterke autentiseringsmekanismer
-
svake eller sterke koblinger til nasjonale/sektorvise norske identifikatorer
-
-
OP-initiert logout (både front-channel og back-channel) er p.t. ikkje støtta
*
Autentiseringsforespørsel (/authorize)
Følgende scopes støttes utover openid profile:
| scope | claims | IdAA-verified-struktur | Beskrivelse | Forklaring |
|---|---|---|---|---|
| idporten:utland:fhnummer | fhnummer | Nei | Nasjonalt Felles Hjelpenummer | FH-nummer finnes i Personregisteret til Norsk Helsenett. idporten-utland vil rekvirere et nytt FH-nummer for hver ny eID første gang den logger på. |
Følgende claims er viktige å få korrekt i requesten:
| claim | eksempel | Navn | Forklaring |
|---|---|---|---|
| acr | low | Authentication Context Class Reference. | Forespurt sikkerhetsnivå. Apple/Google-id har verdien low. |
Autentiseringsrespons (id_token)
Claims i id_token
| claim | eksempel | Navn | Forklaring |
|---|---|---|---|
| sub | subject identifier | Basert på klient-konfigurasjon, enten en pairwise verdi (dvs forskjellige sub-verdier mellom ulike klienter for samme brukerkonto ), eller public verdi lik bruker-id i idporten-utlands brukerdatabase. | |
| acr | low |
Sikkerhetsnivå | Apple/Google-id har verdien low. MinID har Level3, og BankID/Buypass/Commfides har Level4. Klient må alltid validere at innlogging har det sikkerhetsnivået som man forespurte. |
| amr | ["Apple"] |
Innloggingsmetode | Enten Google eller Apple. Merk at klient bør ikke validere på disse verdiene, og heller sjekke acr. |
| fhnummer | 80012054321 |
Felles Nasjonalt Hjelpenummer | Revirert fra Personregisteret (PREG) til Norsk Helsenett |
| mobile | +4799998888 |
Mobilnummer | Bruker sitt selv-registrerte mobilnummer. Alltid inkludert utenlandsprefix (+) og landkode ihht E.164. Innhentes av idporten-utland ved første gangs innlogging. |
email@example.com |
Epost | Bruker sitt selv-registrete epost-adresse. Innhentes av idporten-utland ved første gangs innlogging. |
I tillegg er det selvsagt standard OIDC / oauth2 claims i tokenet, som valideres ihht reglene i spesifikasjonen.
Eksempel på id-token
I dette tilfellet har klienten forespurt scope openid idporten:utland:fhnummer
{
"sub" : "en pseodonym identifikator",
"iss" : "https://idporten-utland-test.digdir.eon.no/c2id",
"aud" : "b7198ea6-14f0-488f-bb9a-206993ad28bc",
"iat" : 1616765456,
"exp" : 1616765576,
"auth_time" : 1616765455,
"nonce" : "qDHodUys-yzbA961atMXwfk3gBefUn27i7m4m-bEc_4",
"sid" : "n3ss5nXYYkLRm8J_KZqP-pjsPli5AuKGDiAwRAn5nxE"
"locale" : "nb",
"acr" : "low",
"amr" : [ "Apple" ],
"fhnummer": "80012054321",
"mobile": "+4799998888"
"email": "email@example.com"
}