Gå til hovedinnhold

Hvordan får jeg bare vist nivå 4 pålogging hos ID-Porten?

ID-Porten tilbyr autentisering både på Nivå 3 og Nivå 4. I noen tilfeller ønsker du å bare la brukeren autentisere seg med Nivå 4 pålogging hos ID-Porten. Her finner du en beskrivelse av hvordan du kan fortelle ID-Porten at du ikke vil vise andre identitetstilbydere enn de som tilbyr nivå 4 pålogging.

I noen tilfeller kan det være påkrevd at brukeren blir autentisert på nivå 4. I HelseID er det kun ID-Porten som kan tilby dette autentiseringsnivået. 

For å skjule alle identitetstilbydere som ikke tilbyr innlogging på nivå 4 må du benytte mønsteret som er beskrevet på sidene som beskriver hvordan du oppnår automatisk valg av identitetstilbyder i kombinasjon med ønsket autentiseringsnivå.

For å automatisk velge ID-Porten må du legge inn verdien "idp:idporten-oidc" i parameteret acr_values i autentiseringsforespørselen.

I tillegg kan du legge til en verdi som angir det lavest aksepterte autentiseringsnivå.

Hos ID-Porten kan du angi følgende verdier:

  • "Level2"
  • "Level3"
  • "Level4"

Implementasjon

Måten du påvirker protokollmeldingene avhenger av hvilket klientbibliotek eller mellomvare du bruker.

IdentityModel.OidcClient

var options = new OidcClientOptions()
            {
                Authority = "https://helseid-sts.test.nhn.no",
                ClientId = "min_client_id",
                RedirectUri = "min_redirect_uri",
                Scope = "openid",
                ClientSecret = "superhemmelig hemmelighet",                
            };
_client = new OidcClient(_options);
var state = await _client.PrepareLoginAsync(new {acr_values="idp:idporten-oidc Level4"});

ASP.NET Core / Katana

For mellomvare som brukes i en serverapplikasjon kan man påvirke forespørselen ved å koble seg til autentiseringsflyten før den sendes til HelseID.

Mellomvaren tilbyr forskjellige events, og for å påvirke protokollmeldingen før den sendes til HelseID må man lage en funksjon for eventen som heter OnRedirectToIdentityProvider. I denne funksjonen kan man påvirke forskjellige parametre, blant annet acr_values som vi bruker for å angi ønsket identitetstilbyder.

Events = new OpenIdConnectEvents
{
    OnRedirectToIdentityProvider = redirectContext =>
    {
        redirectContext.ProtocolMessage.AcrValues = $"idp:idporten-oidc";
        
        return Task.CompletedTask;
    }
}