Sådan skaber du en solid integration til MitID med Azure AD B2C

NemID og MitID gik d. 31. oktober 2022 ind i en ny fase, hvor det ikke længere er muligt at oprette MitID via sin bank eller bruge NemID til login på andre end offentlige selvbetjeningsløsninger. Denne fase løber frem til 30. juni 2023, hvor NemID bliver helt udfaset.

d. 15. december 2022

Christian Mørup
Managing Architect

Overgangen til MitID

Mange virksomheder er derfor godt i gang med at overgå til MitID. Overgangen til MitID (og eventuelt NemLog-in3) vil betyde ændringer for dig, da integrationen fremadrettet vil være til en given broker i stedet for direkte mod NemID. Her får du et indblik i, hvordan vi hos Immeo har løst en konkret integration til MitID gennem Azure AD B2C.

Danmark er et af de mest digitaliserede lande i Europa. Digitaliseringsstyrelsen har udviklet et strategisk samarbejde for at sætte kursen for den fremadrettede digitale transformation. Dette samarbejde førte i 2010 til NemID, hvilket på daværende tidspunkt var et af de bedste digitale identitetsløsninger i verden.

NemID er stadig en sikker løsning, men efter 10 år er nye problemer opstået. For at sikre den nationale identitets infrastruktur mod fremtidige krav er det blevet fundet nødvendigt med en større opgradering. 

Identitetsbrokere

Migreringen til MitID blev derfor planlagt som en del af den digitale strategi for at udstyre borgere, virksomheder og offentligt ansatte med en mere sikker digital id-løsning.

En central del af lanceringen af MitID er indførelsen af den obligatoriske brug af såkaldte identitetsbrokere. Her er det kun certificerede brokere, som har mulighed for at tilslutte sig MitIDs fælles identitetskerne.

Det betyder, at man som tjenesteudbyder skal koble op via en broker, før det er muligt at tilbyde log-in med MitID.

En robust brokermodel

Brokermodellen har den klare fordel, at arkitekturen er langt mere robust over for ændringer. Som eksempel vil MitID kunne ændre deres protokoller uden at påvirke alle tjenesteudbydere direkte. Desuden betyder det, at processen med at integrere til MitID som tjenesteudbyder er blevet mere enkel.

På nuværende tidspunkt er der 11 godkendte brokere bestående af NemLog-in3, bankbrokere og andre private brokere.

Login-flow med MitID og Azure AD B2C

Integrationen til MitID-brokerne vil som oftest være baseret på Open ID Connect (OIDC)-protokollen, som er et identitetslag oven på OAuth 2.0-protokollen.

Som tjenesteudbyder kan man ikke have en forventning om, at alle features fra OAuth 2.0 bliver understøttet, da nogle brokere har en forventning om, at man som tjenesteudbyder selv bygger en session og vedligeholder denne efter login med MitID. Som løsning til dette kan man bruge Azure AD B2C som business-to-customer identity as a service.

Blogindlæg - MitID - tjenesteudbyder figur

Hvorfor skifte til MitID?

Hvad er Azure AD B2C?

Azure AD B2C er en kundevendt tenant ligesom Azure AD, men hvor alle kan logge sig ind uden restriktioner. Den understøtter også standardprotokoller som OIDC, OAuth 2.0 og SAML.

I Azure AD B2C har du mulighed for at understøtte basis login flows med lokale konti som for eksempel sign-up og sign-in med kodeord.

Desuden er det let at integrere til enhver identity provider, såsom Facebook, Google eller andre Social Ids.

På samme måde er det muligt at integrere Azure AD B2C op mod enhver OIDC provider, som for eksempel MitID og Azure AD.

Derudover kan Azure AD B2C integrere med eksterne user stores, hvis de udstiller et REST API, hvorved man kan tilføje op til 100 custom attributter om brugeren, der logger ind.

Blogindlæg - Azure AD B2C - figur

I en konkret case skulle login-flowet kunne understøtte adgang til slutbrugere gennem MitID. Det blev gjort via custom policies, som gør det muligt specifikt og unikt at orkestrere kommunikationen mellem Azure AD B2C og andre services. På den måde blev det muligt at identificere de eksisterende brugere, som tidligere udelukkende har været registreret med et NemID-PID eller CPR-nummer i brugerdatabasen.

Derudover skulle kundeservicemedarbejdere kunne være i stand til at arbejde på vegne af slutbrugere ved login med Azure AD. Vekselvirkningen mellem at kunne logge ind som slutbruger eller kundeservicemedarbejder, medførte indførelsen af Azure Active Directory B2C som et mellemled mellem selvbetjening og de aktuelle identity providers (Azure AD og MitID).

Det gav en række fordele, heriblandt:

Hvad er forskellen på authentication og authorization?

Authentication er ’hvem jeg er’. I dette tilfælde står MitID for den del.

Authorization er ’hvad har jeg adgang til’.

Denne del bliver etableret via Azure AD B2C og portalen.

I ovenstående figur kan du se, hvordan login-flowet i den aktuelle situation initieres af en slutbruger. Brugeren vil blive redirected fra portalen til Azure AD B2C for efterfølgende at blive ført videre til MitID med det formål at validere brugerens identitet. I et setup med kundeservice, som ønsker at arbejde på vegne af en slutbruger, vil MitID være erstattet af Azure AD.

blogindlag---mitid---flow-login-figur

Når brugeren har indtastet sine credentials, vil Azure AD B2C og MitID kommunikere i forhold til OIDC-protokollen, sådan får Azure AD B2C information om slutbrugerens identitet. Det kan efterfølgende oversættes til den interne bruger, defineret i en såkaldt user service (microservice), og dermed give information, som kan berige sessionen med yderligere kontekst i form af claims i det udstedte token.

Til sidst bliver brugeren returneret til portalen med en authorization code, som nu kan udveksles til de ønskede tokens (f.eks. id token, access token, refresh token). Så længe brugeren er logget ind, vil Azure AD B2C og portalen i samarbejde stå for authorization baseret MitIDs authentication.

Om Christian Mørup

Christian Mørup er ansat som Managing Architect og har været en del af Immeo siden 2021. Han sidder til dagligt på vores kontor i Aarhus, hvor han bl.a. arbejder med PIM-løsninger og lige nu deltager i udviklingen af en selvbetjenings- og integrationsplatform hos en af vores kunder.

Når Christian ikke koder, spiller han amatørbadminton hver mandag og følger meget med i Formel 1, som passioneret Verstappen-fan.

 

cmo@immeo.dk | +45 2383 7002

breaker