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 OpenID Provider (OP).

FoxIDs understøtter OpenID Connect Discovery, så din applikation kan finde OpenID Provideren.

FoxIDs understøtter OpenID Connect authentication, RP-initiated logout og front-channel logout. En session oprettes, når brugeren autentificerer, og session-id'et indgår i ID-tokenet. Sessionen ugyldiggøres ved logout.

FoxIDs kan vise en logout-bekræftelsesdialog afhængigt af klientkonfigurationen og af, om et ID-token indgår i logout-anmodningen.

Som standard bruger både ID-token og access token klient-id'et som audience. Standardressourcen kan fjernes fra access tokenet i FoxIDs Control.

Access tokens kan også udstedes med flere audiences og dermed målrettes flere API'er, som er defineret i FoxIDs som OAuth 2.0 ressourcer. Applikationen kan derefter kalde et API og sikre anmodningen med access tokenet i henhold til The OAuth 2.0 Authorization Framework: Bearer Token Usage.

FoxIDs understøtter både klienthemmeligheder og Proof Key for Code Exchange (PKCE), og PKCE er som standard aktiveret. Hvis en klient er konfigureret med både PKCE og en hemmelighed eller nøgle, valideres begge dele. PKCE og klienthemmelighed eller nøgle valideres ikke i implicit flow.

Standardmetoden til klientautentificering er client secret post, og den kan ændres til client secret basic eller private key JWT. Klientautentificeringsmetoden none understøttes sammen med PKCE.

Der kan konfigureres op til 10 secrets og 4 keys pr. klient.

FoxIDs understøtter OpenID Connect UserInfo endpoint.

Vejledninger:

Forbind FoxIDs miljøer

Kræv multi-faktor autentificering (MFA)

OpenID Connect klienten kan kræve MFA ved at inkludere urn:foxids:mfa i parameteren acr_values. Du kan kombinere den med mere specifikke værdier som urn:foxids:link. Se anmod om MFA fra applikationer.

Parameteren acr_values kan sættes i eventet OnRedirectToIdentityProvider 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.

Konfiguration

Sådan konfigurerer du din applikation som en OpenID Connect applikationsregistrering, Relying Party (RP) eller klient.

Klientens FoxIDs discovery document er https://foxids.com/tenant-x/environment-y/application-client1/.well-known/openid-configuration hvis klienten er konfigureret i tenant tenant-x, miljø environment-y og med applikationsregistreringens klientnavn application-client1.

En applikationsregistreringsklient kan understøtte login gennem flere autentificeringsmetoder ved at tilføje autentificeringsmetodens navn til URL'en. For eksempel kan et autentificeringsmetodenavn som login føjes til discovery-URL'en sådan: https://foxids.com/tenant-x/environment-y/application-client1(login)/.well-known/openid-configuration

Ved RP-initiated logout kan autentificeringsmetodens navn udelades fra URL'en, hvis ID-tokenet sendes med i anmodningen.

Konfigurer Authorization Code flow for en fortrolig klient

En fortrolig klient er typisk en serverbaseret webapplikation, hvor webserveren opbevarer klienthemmeligheden.

  • Angiv klientnavnet i applikationsregistreringens navn.
  • Vælg de tilladte autentificeringsmetoder.
  • Angiv redirect-URI'er.
  • Angiv post-logout redirect-URI.
  • Vælg code som response type eller eventuelt, men ikke anbefalet, code token eller code token id_token.
  • PKCE er ikke et krav for en fortrolig klient, men det anbefales for at begrænse replay-angreb.
  • Angiv en secret.

Configure Authorization Code Flow

Konfigurer Authorization Code flow for en offentlig klient

En offentlig klient kan være en browserbaseret rich client, Blazor-klient eller mobilapp. Applikationen bør bruge PKCE og bør ikke bruge en klienthemmelighed.

  • Angiv klientnavnet i applikationsregistreringens navn.
  • Vælg de tilladte autentificeringsmetoder.
  • Angiv redirect-URI'er.
  • Angiv post-logout redirect-URI.
  • Vælg code som response type.
  • Brug PKCE, som er aktiveret som standard.

Klik Show advanced for at konfigurere tilladte CORS-origins.

Configure Authorization Code Flow with PKCE

Konfigurer implicit flow for en offentlig klient

En offentlig klient kan være en browserbaseret rich client. Applikationen bruger hverken PKCE eller klienthemmelighed.

Det anbefales ikke at bruge implicit flow, fordi det er usikkert.

  • Angiv klientnavnet i applikationsregistreringens navn.
  • Vælg de tilladte autentificeringsmetoder.
  • Angiv redirect-URI'er.
  • Angiv post-logout redirect-URI.
  • Vælg token id_token som response type, eller eventuelt kun token.
  • Deaktiver PKCE.
  • Angiv ikke en secret.

Configure Implicit Code Flow

Klient og API

Det er muligt at konfigurere både klienten og API'et, som er en OAuth 2.0 resource, i den samme OpenID Connect applikationsregistrering. I så fald defineres både klient og API med det samme navn. Du kan også konfigurere resource scopes for API'et.

Client tab

Configure Client and API - Client

Resource tab

Configure Client and API - Resource

Resource og scopes

Et API defineres som en resource, og scopes defineres under den resource. Sådanne scopes bruger formatet resourcenavn plus punktum plus scope, for eksempel application-api1.read1 eller application-api1.read2.

I klientkonfigurationens fane defineres scopes under feltet med resourcenavnet.

Resource and scopes - Client

I resourcekonfigurationens fane defineres scopes som en liste over scopeværdier.

Resource and scopes - Resource

Scopes, der er konfigureret på klienten, valideres mod de scopes, der findes på API'et. Hvis klient og API er konfigureret i den samme applikationsregistrering, føjes scopes, der tilføjes til klienten, automatisk til ressourcen.

Scopes

Scopes kan konfigureres i klientkonfigurationens fane. Du kan definere nye scopes og det sæt af claims, der skal udstedes for disse scopes i listen Voluntary claims.

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

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

Et sæt standardscopes føjes til klientkonfigurationen og kan derefter ændres eller slettes.

Default scopes

Tokenlevetid

Tokenlevetiden 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 forny sessionen med refresh tokens, indtil den absolutte levetid på 86.400 sekunder er nået.

Dit privatliv

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