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 är en relying party (RP) och FoxIDs fungerar som OpenID Provider (OP).

FoxIDs stöder OpenID Connect Discovery, så att din applikation kan upptäcka OpenID Provider.

FoxIDs stöder OpenID Connect authentication (login), RP initiated logout och front channel logout. En session skapas när användaren autentiseras. Session ID ingår i ID token. Sessionen ogiltigförklaras vid logout. FoxIDs kan, beroende på konfiguration, visa en logout-bekräftelsedialog och om ett ID token ingår i logout requesten eller inte.

Som standard utfärdas både ID token och access token med Client ID som audience. Default resource kan tas bort i access token i FoxIDs Control. Access tokens kan utfärdas med en lista av audiences och därmed till flera API:er som definieras som OAuth 2.0 resources i FoxIDs. Applikationen kan då anropa ett API och säkra anropet med access token enligt The OAuth 2.0 Authorization Framework: Bearer Token Usage.

FoxIDs stöder både client secret och Proof Key for Code Exchange (PKCE) och kräver PKCE som standard. Om en client både har PKCE och secret/key konfigurerat valideras båda. PKCE och client secret/key valideras inte i implicit flow.

Default client authentication method är client secret post och kan ändras till client secret basic eller private key JWT. Client authentication method none stöds med PKCE.

Det kan konfigureras högst 10 secrets och 4 keys per client.

FoxIDs stöder OpenID Connect UserInfo endpoint.

How to guides:

Det rekommenderas att använda OpenID Connect Authorization Code Flow med PKCE eftersom det anses vara ett säkert flöde.

Require multi-factor authentication (MFA)

OpenID Connect clienten kan kräva multi-factor authentication genom att ange värdet urn:foxids:mfa i parametern AcrValues.

Parametern AcrValues kan sättas i OnRedirectToIdentityProvider event i Startup.cs:

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

Mer kod i AspNetCoreOidcAuthorizationCodeSample och Startup.cs line 141.

Configuration

Så här konfigurerar du din applikation som OpenID Connect applikationsregistrering relying party (RP) / client.

FoxIDs discovery-dokument för clienten är https://foxids.com/tenant-x/environment-y/application-client1/.well-known/openid-configuration om clienten är konfigurerad i tenant tenant-x och environment environment-y med applikationsregistrering clientnamn application-client1.

En applikationsregistrering client kan stödja login via flera authentication methods genom att lägga till authentication method-namnet i URL:en. Ett authentication method-namn t.ex. login kan läggas till i discovery URL:en, t.ex. https://foxids.com/tenant-x/environment-y/application-client1(login)/.well-known/openid-configuration

Under RP initiated logout kan authentication method-namnet i URL:en utelämnas om ett ID token ingår i requesten.

Configure Authorization Code Flow for a confidential client

En confidential client kan vara en webbapplikation där säkerheten hanteras av webbservern, som också lagrar client secret.

  • Ange clientnamn i applikationsregistreringens namn.
  • Välj tillåtna authentication methods.
  • 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 confidential client, men rekommenderas för att motverka replay attacks.
  • Ange en secret.

Configure Authorization Code Flow

Configure Authorization Code Flow for a public client

En public client kan vara en webbläsarbaserad rich client, en Blazor client eller en mobilapp. Applikationen bör använda PKCE och inte ha client secret.

  • Ange clientnamn i applikationsregistreringens namn.
  • Välj tillåtna authentication methods.
  • Ange redirect URI:er.
  • Ange post logout redirect URI.
  • Välj code som response type.
  • Använd PKCE, aktiverat som standard.

Klicka "Show advanced" för att konfigurera allowed CORS origins.

Configure Authorization Code Flow with PKCE

Configure Implicit Code Flow for a public client

En public client kan vara en webbapplikation där säkerheten hanteras av webbservern, eller en webbläsarbaserad rich client. Applikationen använder varken PKCE eller client secret. Det rekommenderas inte att använda implicit code flow eftersom det är osäkert.

  • Ange clientnamn i applikationsregistreringens namn.
  • Välj tillåtna authentication methods.
  • Ange redirect URI:er.
  • Ange post logout redirect URI.
  • Välj token id_token som response type eller valfritt endast token.
  • Inaktivera PKCE.
  • Ange ingen secret.

Configure Implicit Code Flow with PKCE

Client and API

Det är möjligt att konfigurera både client och API (OAuth 2.0 resource) i samma OpenID Connect applikationsregistrering, där både client och API definieras med samma namn. Du kan även konfigurera resource scopes för API:et.

Client tab

Configure Client and API - Client

Resource tab

Configure Client and API - Resource

Resource and Scopes

Ett API definieras som en resource där scopes kan definieras. Sådana scopes definieras som resource name punkt scope, t.ex. application-api1.read1 eller application-api1.read2.

I client konfigurationsfliken definieras scopes under resource name-fältet.

Resource and scopes - Client

I resource konfigurationsfliken definieras scopes som en lista med scope-värden.

Resource and scopes - Resource

Scopes som konfigureras i clienten valideras om scopesen finns i API:et. När client och API konfigureras i samma applikationsregistrering läggs scopes automatiskt till i resource.

Scopes

Scopes kan konfigureras i client konfigurationsfliken. Det är möjligt att definiera nya scopes och en uppsättning claims som ska utfärdas för scopesen i listan Voluntary claims.

Du kan ändra claims och utföra claim tasks med Claim Transforms och Claim Tasks.

När du skapar ett nytt claim, lägg till claimet eller * i listan Issue claims eller lägg till claimet i listan Voluntary claims och begär scopet från applikationen.

En uppsättning default scopes läggs till i client konfigurationen, som sedan kan ändras eller tas bort.

Default scopes

Token lifetime

Token lifetime konfigureras för ID token, access token och refresh token.

Token lifetime

I detta exempel är varje refresh token giltigt i 36 000 sekunder. Applikationen kan fortsätta sessionen med refresh tokens tills den absoluta lifetime på 86 400 sekunder har nåtts.

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