OpenID Connect applikationsregistrering

FoxIDs OpenID Connect applikationsregistrering gör det möjligt att ansluta en OpenID Connect baserad applikation.

FoxIDs OpenID Connect application registration

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:

Koppla samman FoxIDs miljöer

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-configuration om klienten är konfigurerad i tenant tenant-x, miljö environment-y och med applikationsregistreringens klientnamn application-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 login lä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 code som response type eller, valfritt men inte rekommenderat, code token eller code token id_token.
  • PKCE krävs inte för en konfidentiell klient, men det rekommenderas för att minska replay-attacker.
  • Ange en secret.

Configure Authorization Code Flow

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 code som response type.
  • Använd PKCE, som är aktiverat som standard.

Klicka på Show advanced för att konfigurera tillåtna CORS origins.

Configure Authorization Code Flow with PKCE

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_token som response type eller, valfritt, bara token.
  • Inaktivera PKCE.
  • Ange ingen secret.

Configure Implicit Code Flow

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

Configure Client and API - Client

Resource tab

Configure Client and API - Resource

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.

Resource and scopes - Client

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

Resource and scopes - Resource

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.

Default scopes

Tokenlivslängd

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

Token lifetime

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.

Din integritet

Din integritet

Vi använder cookies för att göra din upplevelse av våra webbplatser bättre. Klicka på 'Acceptera alla cookies' för att godkänna användningen av cookies. För att avstå från icke-nödvändiga cookies, klicka på 'Endast nödvändiga cookies'.

Besök vår integritetspolicy för mer