OpenID Connect applikationsregistrering
FoxIDs OpenID Connect applikationsregistrering gör det möjligt att ansluta en OpenID Connect baserad applikation.
Din applikation blir en Relying Party (RP), och FoxIDs fungerar som OpenID Provider (OP).
FoxIDs stöder OpenID Connect Discovery, så att din applikation kan hitta OpenID Providern.
FoxIDs stöder OpenID Connect authentication, RP-initiated logout och front-channel logout. En session skapas när användaren autentiserar, och sessions-id:t ingår i ID-tokenet. Sessionen ogiltigförklaras vid logout.
FoxIDs kan visa en bekräftelsedialog för logout beroende på klientkonfigurationen och på om ett ID-token ingår i logout-begäran.
Som standard använder både ID-token och access token klient-id:t som audience. Standardresursen kan tas bort från access tokenet i FoxIDs Control.
Access tokens kan också utfärdas med flera audiences och därmed rikta sig till flera API:er som är definierade i FoxIDs som OAuth 2.0 resurser. Applikationen kan sedan anropa ett API och säkra begäran med access tokenet enligt The OAuth 2.0 Authorization Framework: Bearer Token Usage.
FoxIDs stöder både klienthemligheter och Proof Key for Code Exchange (PKCE), och PKCE är aktiverat som standard. Om en klient är konfigurerad med både PKCE och en hemlighet eller nyckel valideras båda. PKCE och klienthemlighet eller nyckel valideras inte i implicit flow.
Standardmetoden för klientautentisering är client secret post, och den kan ändras till client secret basic eller private key JWT. Klientautentiseringsmetoden none stöds tillsammans med PKCE.
Upp till 10 secrets och 4 keys kan konfigureras per klient.
FoxIDs stöder OpenID Connect UserInfo endpoint.
Guider:
- Anslut Tailscale
Koppla samman FoxIDs miljöer
- Environment Link för miljöer i samma tenant.
- OpenID Connect för miljöer i samma eller olika tenants.
Kräv multifaktorautentisering (MFA)
OpenID Connect klienten kan kräva MFA genom att inkludera urn:foxids:mfa i parametern acr_values. Du kan kombinera den med mer specifika värden som urn:foxids:link. Se begär MFA från applikationer.
Parametern acr_values kan sättas i händelsen OnRedirectToIdentityProvider i Startup.cs:
options.Events.OnRedirectToIdentityProvider = (context) =>
{
// To require MFA
context.ProtocolMessage.AcrValues = "urn:foxids:mfa";
return Task.FromResult(string.Empty);
};
Se mer kod i AspNetCoreOidcAuthorizationCodeSample och Startup.cs line 141.
Konfiguration
Så här konfigurerar du din applikation som en OpenID Connect applikationsregistrering, Relying Party (RP) eller klient.
Klientens FoxIDs discovery document är
https://foxids.com/tenant-x/environment-y/application-client1/.well-known/openid-configurationom klienten är konfigurerad i tenanttenant-x, miljöenvironment-yoch med applikationsregistreringens klientnamnapplication-client1.
En klient i en applikationsregistrering kan stödja inloggning via flera autentiseringsmetoder genom att lägga till autentiseringsmetodens namn i URL:en. Till exempel kan ett namn på en autentiseringsmetod som
loginläggas till i discovery-URL:en så här:https://foxids.com/tenant-x/environment-y/application-client1(login)/.well-known/openid-configuration
Vid RP-initiated logout kan autentiseringsmetodens namn utelämnas i URL:en om ID-tokenet skickas med i begäran.
Konfigurera Authorization Code flow för en konfidentiell klient
En konfidentiell klient är vanligtvis en serverbaserad webbapplikation där webbservern lagrar klienthemligheten.
- Ange klientnamnet i applikationsregistreringens namn.
- Välj de tillåtna autentiseringsmetoderna.
- Ange redirect-URI:er.
- Ange post-logout redirect-URI.
- Välj
codesom response type eller, valfritt men inte rekommenderat,code tokenellercode token id_token. - PKCE krävs inte för en konfidentiell klient, men det rekommenderas för att minska replay-attacker.
- Ange en secret.

Konfigurera Authorization Code flow för en publik klient
En publik klient kan vara en webbläsarbaserad rich client, Blazor-klient eller mobilapp. Applikationen bör använda PKCE och bör inte använda en klienthemlighet.
- Ange klientnamnet i applikationsregistreringens namn.
- Välj de tillåtna autentiseringsmetoderna.
- Ange redirect-URI:er.
- Ange post-logout redirect-URI.
- Välj
codesom response type. - Använd PKCE, som är aktiverat som standard.
Klicka på Show advanced för att konfigurera tillåtna CORS origins.

Konfigurera implicit flow för en publik klient
En publik klient kan vara en webbläsarbaserad rich client. Applikationen använder varken PKCE eller klienthemlighet.
Det rekommenderas inte att använda implicit flow eftersom det är osäkert.
- Ange klientnamnet i applikationsregistreringens namn.
- Välj de tillåtna autentiseringsmetoderna.
- Ange redirect-URI:er.
- Ange post-logout redirect-URI.
- Välj
token id_tokensom response type eller, valfritt, baratoken. - Inaktivera PKCE.
- Ange ingen secret.

Klient och API
Det är möjligt att konfigurera både klienten och API:t, som är en OAuth 2.0 resource, i samma OpenID Connect applikationsregistrering. I så fall definieras både klient och API med samma namn. Du kan också konfigurera resource scopes för API:t.
Client tab

Resource tab

Resource och scopes
Ett API definieras som en resource, och scopes definieras under den resursen. Sådana scopes använder formatet resursnamn plus punkt plus scope, till exempel application-api1.read1 eller application-api1.read2.
I klientkonfigurationens flik definieras scopes under fältet för resursnamn.

I resurskonfigurationens flik definieras scopes som en lista med scope-värden.

Scopes som konfigureras på klienten valideras mot de scopes som finns på API:t. Om klient och API är konfigurerade i samma applikationsregistrering läggs scopes som läggs till på klienten automatiskt till på resursen.
Scopes
Scopes kan konfigureras i klientkonfigurationens flik. Du kan definiera nya scopes och den uppsättning claims som ska utfärdas för dessa scopes i listan Voluntary claims.
Du kan ändra claims och implementera claim tasks med claim transforms och claim tasks.
Om du skapar en ny claim ska du lägga till claimen eller * i listan Issue claims, eller lägga till claimen i listan Voluntary claims och begära scopet från din applikation.
En uppsättning standardscopes läggs till i klientkonfigurationen och kan sedan ändras eller tas bort.

Tokenlivslängd
Tokenlivslängden konfigureras för ID-token, access token och refresh token.

I det här exemplet är varje refresh token giltigt i 36 000 sekunder. Applikationen kan fortsätta förnya sessionen med refresh tokens tills den absoluta livslängden på 86 400 sekunder har nåtts.