OpenID Connect applikationsregistrering

FoxIDs OpenID Connect applikationsregistrering gør det muligt at forbinde en OpenID Connect baseret applikation.

FoxIDs OpenID Connect application registration

Din applikation bliver en Relying Party (RP) og FoxIDs fungerer som en OpenID Provider (OP).

FoxIDs understøtter OpenID Connect Discovery hvor din applikation kan opdage OpenID Provider.

FoxIDs understøtter OpenID Connect authentication (login), RP initiated logout og front channel logout. En session oprettes når brugeren autentificerer, og session id er inkluderet i ID token. Sessionen invaliders ved logout. FoxIDs kan vise en logout bekræftelsesdialog afhængigt af konfiguration og om et ID token er inkluderet i logout requesten eller ej.

Som standard udstedes både ID token og access token med klientens client id som audience. Default resource kan fjernes fra access token i FoxIDs Control. Access tokens kan udstedes med en liste af audiences og dermed udstedes til flere API'er defineret i FoxIDs som OAuth 2.0 ressourcer. Applikationen kan derefter kalde et API og sikre kaldet med access token ved hjælp af The OAuth 2.0 Authorization Framework: Bearer Token Usage.

FoxIDs understøtter både client secret og Proof Key for Code Exchange (PKCE), og kræver som standard PKCE. Hvis en client er konfigureret med både PKCE og secret/key valideres begge. PKCE og client secret/key valideres ikke i implicit flow.

Default client authentication method er client secret post og kan ændres til client secret basic eller private key JWT. Client authentication method none understøttes med PKCE.

Der kan konfigureres maks. 10 secrets og 4 keys per client.

FoxIDs understøtter OpenID Connect UserInfo endpoint.

How to guides:

Det anbefales at bruge OpenID Connect Authorization Code flow med PKCE, fordi det betragtes som et sikkert flow.

Require multi-factor authentication (MFA)

OpenID Connect klienten kan kræve multi-factor authentication ved at angive værdien urn:foxids:mfa i parameteren AcrValues.

Parameteren AcrValues kan sættes i OnRedirectToIdentityProvider event i Startup.cs:

options.Events.OnRedirectToIdentityProvider = (context) =>
{
    // To require MFA
    context.ProtocolMessage.AcrValues = "urn:foxids:mfa";
    return Task.FromResult(string.Empty);
};

Se mere kode i AspNetCoreOidcAuthorizationCodeSample og Startup.cs line 141.

Configuration

Hvordan du konfigurerer din applikation som en OpenID Connect applikationsregistrering Relying Party (RP) / client.

Klientens FoxIDs discovery document er https://foxids.com/tenant-x/environment-y/application-client1/.well-known/openid-configuration hvis clienten er konfigureret i tenant tenant-x og miljø environment-y med applikationsregistrering client navn application-client1.

En applikationsregistrering client kan muligvis understøtte login gennem flere autentificeringsmetoder ved at tilføje autentificeringsmetodens navn til URL'en. Et autentificeringsmetode navn f.eks. login kan muligvis tilføjes til discovery URL'en sådan https://foxids.com/tenant-x/environment-y/application-client1(login)/.well-known/openid-configuration

Under RP initiated logout kan autentificeringsmetodens navn udelades i URL'en hvis ID token er angivet i requesten.

Configure Authorization Code Flow for a confidential client

En confidential client kan være en webapplikation hvor sikkerheden håndteres af webserveren som også opbevarer client secret.

  • Angiv client navn i applikationsregistreringens navn.
  • Vælg tilladte autentificeringsmetoder.
  • Angiv redirect URIs.
  • Angiv post logout redirect URI.
  • Vælg code som response type eller evt. men ikke anbefalet code token eller code token id_token.
  • Det er ikke nødvendigt at bruge PKCE i en confidential client men anbefales for at mitigere replay attacks.
  • Angiv et secret.

Configure Authorization Code Flow

Configure Authorization Code Flow for a public client

En public client kan være en browser baseret rich client, Blazor client eller mobil app. Applikationen skal bruge PKCE og ikke et client secret.

  • Angiv client navn i applikationsregistreringens navn.
  • Vælg tilladte autentificeringsmetoder.
  • Angiv redirect URIs.
  • Angiv post logout redirect URI.
  • Vælg code som response type.
  • Brug PKCE, default enabled.

Klik "Show advanced" for at konfigurere allowed CORS origins.

Configure Authorization Code Flow with PKCE

Configure Implicit Code Flow for a public client

En public client kan være en webapplikation hvor sikkerheden håndteres af webserveren eller en browser baseret rich client. Applikationen bruger hverken PKCE eller client secret. Det anbefales ikke at bruge Implicit Code Flow fordi det er usikkert.

  • Angiv client navn i applikationsregistreringens navn.
  • Vælg tilladte autentificeringsmetoder.
  • Angiv redirect URIs.
  • Angiv post logout redirect URI.
  • Vælg token id_token som response type eller evt. kun token.
  • Deaktivér PKCE.
  • Angiv ikke et secret.

Configure Implicit Code Flow with PKCE

Client and API

Det er muligt at konfigurere både client og API (OAuth 2.0 resource) i samme OpenID Connect applikationsregistrering, hvor både client og API er defineret med samme navn. Derudover er det muligt at konfigurere resource scopes for API'et.

Client tab

Configure Client and API - Client

Resource tab

Configure Client and API - Resource

Resource and Scopes

Et API defineres som en resource hvorunder det er muligt at definere scopes. Sådanne scopes defineres som resource navn punktum scope f.eks. application-api1.read1 eller application-api1.read2.

I client konfiguration tab defineres scopes under resource navne feltet.

Resource and scopes - Client

I resource konfiguration tab defineres scopes som en liste af scope værdier.

Resource and scopes - Resource

Scopes konfigureret i clienten valideres hvis scopes eksisterer på API'et. Hvis client og API er konfigureret i samme applikationsregistrering, tilføjes scopes til clienten automatisk til resource.

Scopes

Scopes kan konfigureres i client konfiguration tab. Det er muligt at definere nye scopes og et sæt claims som skal udstedes for scopes i Voluntary claims listen.

Du kan ændre claims og lave claim tasks med claim transforms og claim tasks.

Hvis du opretter en ny claim, tilføj claimen eller * til Issue claims listen eller alternativt tilføj claimen til Voluntary claims listen og anmod om scopet fra din applikation.

Et sæt default scopes tilføjes til client konfigurationen, som efterfølgende kan ændres eller slettes.

Default scopes

Token lifetime

Token lifetime konfigureres for ID token, access token og refresh token.

Token lifetime

I dette eksempel er hvert refresh token gyldigt i 36.000 sekunder. Applikationen kan fortsætte med at refresh sessionen med refresh tokens indtil den absolutte levetid på 86.400 sekunder er nået.

Dit privatliv

Vi bruger cookies til at gøre din oplevelse på vores websites bedre. Klik på 'Acceptér alle cookies' for at acceptere brugen af cookies. For at fravælge ikke-nødvendige cookies, klik på 'Kun nødvendige cookies'.

Besøg vores privatlivspolitik for mere