OpenID Connect applicatieregistratie

FoxIDs OpenID Connect applicatieregistratie maakt het mogelijk om een OpenID Connect gebaseerde applicatie te koppelen.

FoxIDs OpenID Connect application registration

Uw applicatie wordt een Relying Party (RP) en FoxIDs fungeert als OpenID Provider (OP).

FoxIDs ondersteunt OpenID Connect Discovery, zodat uw applicatie de OpenID Provider kan ontdekken.

FoxIDs ondersteunt OpenID Connect authentication, RP-initiated logout en front-channel logout. Er wordt een sessie aangemaakt wanneer de gebruiker zich authenticeert en de sessie-id wordt opgenomen in het ID-token. De sessie wordt ongeldig gemaakt bij logout.

FoxIDs kan een logout-bevestigingsdialoog tonen, afhankelijk van de clientconfiguratie en of een ID-token in het logout-verzoek is opgenomen.

Standaard gebruiken zowel het ID-token als het access token de client-id als audience. De standaardresource kan in het access token worden verwijderd in FoxIDs Control.

Access tokens kunnen ook met meerdere audiences worden uitgegeven en daardoor meerdere API's targeten die in FoxIDs zijn gedefinieerd als OAuth 2.0 resources. De applicatie kan dan een API aanroepen en het verzoek beveiligen met het access token volgens The OAuth 2.0 Authorization Framework: Bearer Token Usage.

FoxIDs ondersteunt zowel client secrets als Proof Key for Code Exchange (PKCE), en PKCE is standaard ingeschakeld. Als een client zowel met PKCE als met een secret of key is geconfigureerd, worden beide gevalideerd. PKCE en client secret of key worden niet gevalideerd in de implicit flow.

De standaard client-authenticatiemethode is client secret post en kan worden gewijzigd naar client secret basic of private key JWT. Client-authenticatiemethode none wordt ondersteund in combinatie met PKCE.

Per client kunnen maximaal 10 secrets en 4 keys worden geconfigureerd.

FoxIDs ondersteunt het OpenID Connect UserInfo endpoint.

Handleidingen:

FoxIDs omgevingen koppelen

Multi-factor authenticatie (MFA) vereisen

De OpenID Connect client kan MFA vereisen door urn:foxids:mfa op te nemen in de parameter acr_values. U kunt dit combineren met specifiekere waarden zoals urn:foxids:link. Zie MFA aanvragen vanuit applicaties.

De parameter acr_values kan worden ingesteld in het event OnRedirectToIdentityProvider in Startup.cs:

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

Zie meer code in AspNetCoreOidcAuthorizationCodeSample en Startup.cs line 141.

Configuratie

Zo configureert u uw applicatie als een OpenID Connect applicatieregistratie, Relying Party (RP) of client.

Het FoxIDs discovery document van de client is https://foxids.com/tenant-x/environment-y/application-client1/.well-known/openid-configuration als de client is geconfigureerd in tenant tenant-x, omgeving environment-y en met de clientnaam application-client1 van de applicatieregistratie.

Een client in een applicatieregistratie kan aanmelden via meerdere authenticatiemethoden ondersteunen door de naam van de authenticatiemethode aan de URL toe te voegen. Bijvoorbeeld, een authenticatiemethodenaam zoals login kan zo aan de discovery-URL worden toegevoegd: https://foxids.com/tenant-x/environment-y/application-client1(login)/.well-known/openid-configuration

Tijdens RP-initiated logout kan de naam van de authenticatiemethode in de URL worden weggelaten als het ID-token in het verzoek is opgenomen.

Authorization Code flow configureren voor een confidential client

Een confidential client is meestal een server-side webapplicatie waarbij de webserver het client secret opslaat.

  • Geef de clientnaam op in de naam van de applicatieregistratie.
  • Selecteer de toegestane authenticatiemethoden.
  • Geef de redirect-URI's op.
  • Geef de post-logout redirect-URI op.
  • Selecteer code als response type of, optioneel maar niet aanbevolen, code token of code token id_token.
  • PKCE is niet vereist voor een confidential client, maar wordt wel aanbevolen om replay-aanvallen te beperken.
  • Geef een secret op.

Configure Authorization Code Flow

Authorization Code flow configureren voor een public client

Een public client kan een browsergebaseerde rich client, Blazor-client of mobiele app zijn. De applicatie moet PKCE gebruiken en mag geen client secret gebruiken.

  • Geef de clientnaam op in de naam van de applicatieregistratie.
  • Selecteer de toegestane authenticatiemethoden.
  • Geef de redirect-URI's op.
  • Geef de post-logout redirect-URI op.
  • Selecteer code als response type.
  • Gebruik PKCE, dat standaard is ingeschakeld.

Klik op Show advanced om toegestane CORS origins te configureren.

Configure Authorization Code Flow with PKCE

Implicit flow configureren voor een public client

Een public client kan een browsergebaseerde rich client zijn. De applicatie gebruikt noch PKCE noch een client secret.

Het wordt niet aanbevolen om de implicit flow te gebruiken, omdat deze onveilig is.

  • Geef de clientnaam op in de naam van de applicatieregistratie.
  • Selecteer de toegestane authenticatiemethoden.
  • Geef de redirect-URI's op.
  • Geef de post-logout redirect-URI op.
  • Selecteer token id_token als response type of optioneel alleen token.
  • Schakel PKCE uit.
  • Geef geen secret op.

Configure Implicit Code Flow

Client en API

Het is mogelijk om zowel de client als de API, een OAuth 2.0 resource, in dezelfde OpenID Connect applicatieregistratie te configureren. In dat geval worden zowel client als API met dezelfde naam gedefinieerd. U kunt ook resource scopes voor de API configureren.

Client tab

Configure Client and API - Client

Resource tab

Configure Client and API - Resource

Resource en scopes

Een API wordt gedefinieerd als een resource en scopes worden onder die resource gedefinieerd. Zulke scopes gebruiken het formaat resourcenaam plus punt plus scope, bijvoorbeeld application-api1.read1 of application-api1.read2.

In het tabblad van de clientconfiguratie worden de scopes onder het veld met de resourcenaam gedefinieerd.

Resource and scopes - Client

In het tabblad van de resourceconfiguratie worden de scopes gedefinieerd als een lijst met scopewaarden.

Resource and scopes - Resource

Scopes die op de client zijn geconfigureerd, worden gevalideerd tegen de scopes die op de API bestaan. Als client en API in dezelfde applicatieregistratie zijn geconfigureerd, worden scopes die aan de client worden toegevoegd automatisch aan de resource toegevoegd.

Scopes

Scopes kunnen worden geconfigureerd in het tabblad van de clientconfiguratie. U kunt nieuwe scopes definiƫren en de set claims die voor die scopes moet worden uitgegeven in de lijst Voluntary claims.

U kunt claims wijzigen en claim tasks implementeren met claim transforms en claim tasks.

Als u een nieuwe claim maakt, voeg de claim of * toe aan de lijst Issue claims, of voeg de claim toe aan de lijst Voluntary claims en vraag de scope vanuit uw applicatie aan.

Een set standaardscopes wordt aan de clientconfiguratie toegevoegd en kan daarna worden gewijzigd of verwijderd.

Default scopes

Tokenlevensduur

De tokenlevensduur wordt geconfigureerd voor het ID-token, access token en refresh token.

Token lifetime

In dit voorbeeld is elk refresh token 36.000 seconden geldig. De applicatie kan de sessie blijven vernieuwen met refresh tokens totdat de absolute levensduur van 86.400 seconden is bereikt.

Uw privacy

Uw privacy

We gebruiken cookies om uw ervaring op onze websites te verbeteren. Klik op de knop 'Alle cookies accepteren' om akkoord te gaan met het gebruik van cookies. Om niet-noodzakelijke cookies te weigeren, klikt u op 'Alleen noodzakelijke cookies'.

Bezoek onze privacyverklaring voor meer informatie