OpenID Connect applikationsregistrering
FoxIDs OpenID Connect applikationsregistrering gør det muligt at forbinde en OpenID Connect baseret applikation.
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 Tailscale
Forbind FoxIDs miljøer
- Environment Link til miljøer i samme tenant.
- OpenID Connect til miljøer i samme eller forskellige tenants.
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-configurationhvis klienten er konfigureret i tenanttenant-x, miljøenvironment-yog med applikationsregistreringens klientnavnapplication-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
loginfø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
codesom response type eller eventuelt, men ikke anbefalet,code tokenellercode token id_token. - PKCE er ikke et krav for en fortrolig klient, men det anbefales for at begrænse replay-angreb.
- Angiv en secret.

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
codesom response type. - Brug PKCE, som er aktiveret som standard.
Klik Show advanced for at konfigurere tilladte CORS-origins.

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_tokensom response type, eller eventuelt kuntoken. - Deaktiver PKCE.
- Angiv ikke en secret.

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

Resource tab

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.

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

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.

Tokenlevetid
Tokenlevetiden konfigureres for ID-token, access token og refresh token.

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.