Definování technického profilu OpenID Connect ve vlastních zásadách Azure Active Directory B2C
Poznámka:
V Azure Active Directory B2C jsou vlastní zásady navržené především pro řešení složitých scénářů. Ve většině scénářů doporučujeme používat integrované toky uživatelů. Pokud jste to neudělali, přečtěte si informace o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami ve službě Active Directory B2C.
Azure Active Directory B2C (Azure AD B2C) poskytuje podporu pro zprostředkovatele identity protokolu OpenID Connect . OpenID Connect 1.0 definuje vrstvu identity nad OAuth 2.0 a představuje stav umění v moderních ověřovacích protokolech. S technickým profilem OpenID Connect můžete federovat pomocí zprostředkovatele identity založeného na OpenID Connect, jako je Například Microsoft Entra ID. Federování s zprostředkovatelem identity umožňuje uživatelům přihlásit se pomocí stávajících sociálních nebo podnikových identit.
Protokol
Atribut Name elementu Protocol musí být nastaven na OpenIdConnect
. Například protokol pro technický profil MSA-OIDC je OpenIdConnect
:
<TechnicalProfile Id="MSA-OIDC">
<DisplayName>Microsoft Account</DisplayName>
<Protocol Name="OpenIdConnect" />
...
Vstupní deklarace identity
Elementy InputClaims a InputClaimsTransformations nejsou vyžadovány . Můžete ale chtít odeslat další parametry zprostředkovateli identity. Následující příklad přidá parametr řetězce dotazu domain_hint s hodnotou contoso.com
do žádosti o autorizaci.
<InputClaims>
<InputClaim ClaimTypeReferenceId="domain_hint" DefaultValue="contoso.com" />
</InputClaims>
Výstupní deklarace identity
OutputClaims element obsahuje seznam deklarací identity vrácených zprostředkovatelem identity OpenID Connect. Možná budete muset namapovat název deklarace identity definované ve vaší zásadě na název definovaný ve zprostředkovateli identity. Můžete také zahrnout deklarace identity, které nevrátí zprostředkovatel identity, pokud nastavíte DefaultValue
atribut.
OutputClaimsTransformations element může obsahovat kolekci OutputClaimsTransformation elementů, které slouží k úpravě výstupních deklarací identity nebo generování nových.
Následující příklad ukazuje deklarace identity vrácené zprostředkovatelem identity účtu Microsoft:
- Dílčí deklarace identity, která je namapovaná na deklaraci identity issuerUserId.
- Deklarace názvu , která je namapovaná na deklaraci identity displayName .
- E-mail bez mapování jmen
Technický profil také vrací deklarace identity, které nevrací zprostředkovatel identity:
- Deklarace identityProvider , která obsahuje název zprostředkovatele identity.
- Deklarace identity authenticationSource s výchozí hodnotou socialIdpAuthentication.
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="live.com" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
<OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
<OutputClaim ClaimTypeReferenceId="email" />
</OutputClaims>
Metadata
Atribut | Požadováno | Popis |
---|---|---|
client_id | Ano | Identifikátor aplikace zprostředkovatele identity. |
IdTokenAudience | No | Cílová skupina id_token. Pokud je zadáno, Azure AD B2C zkontroluje, jestli aud se deklarace identity vrácená zprostředkovatelem identity rovná deklaraci identity zadané v metadatech IdTokenAudience. |
METADATA | Ano | Adresa URL odkazující na konfigurační dokument zprostředkovatele identity OpenID Connect, který se označuje také jako známý koncový bod konfigurace OpenID. Adresa URL může obsahovat {tenant} výraz, který je nahrazen názvem tenanta. |
authorization_endpoint | No | Adresa URL, která odkazuje na koncový bod autorizace zprostředkovatele identity OpenID Connect. Hodnota metadat authorization_endpoint má přednost před authorization_endpoint zadaným koncovým bodem konfigurace OpenID. Adresa URL může obsahovat {tenant} výraz, který je nahrazen názvem tenanta. |
end_session_endpoint | No | Adresa URL koncového bodu relace. Hodnota end_session_endpoint metadat má přednost před hodnotou zadanou end_session_endpoint v dobře známém koncovém bodu konfigurace OpenID. |
issuer | No | Jedinečný identifikátor zprostředkovatele identity OpenID Connect. Hodnota metadat vystavitele má přednost před issuer hodnotou zadanou v dobře známém koncovém bodu konfigurace OpenID. Pokud je zadáno, Azure AD B2C zkontroluje, jestli iss se deklarace identity vrácená zprostředkovatelem identity rovná deklaraci identity zadané v metadatech vystavitele. |
ProviderName | No | Název zprostředkovatele identity. |
response_types | No | Typ odpovědi podle specifikace OpenID Connect Core 1.0. Možné hodnoty: id_token , code nebo token . |
response_mode | No | Metoda, kterou zprostředkovatel identity používá k odeslání výsledku zpět do Azure AD B2C. Možné hodnoty: query , form_post (výchozí) nebo fragment . |
rozsah | No | Rozsah požadavku, který je definován podle specifikace OpenID Connect Core 1.0. openid Například , profile a email . |
HttpBinding | No | Očekávaná vazba HTTP na přístupový token a koncové body tokenů deklarací identity. Možné hodnoty: GET nebo POST . |
ValidTokenIssuerPrefixes | No | Klíč, který se dá použít k přihlášení ke každému tenantovi při použití zprostředkovatele identity s více tenanty, jako je ID Microsoft Entra. |
UsePolicyInRedirectUri | No | Určuje, zda se má při vytváření identifikátoru URI přesměrování použít zásada. Při konfiguraci aplikace ve zprostředkovateli identity musíte zadat identifikátor URI přesměrování. Identifikátor URI přesměrování odkazuje na Azure AD B2C. https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp Pokud zadáte true , musíte přidat identifikátor URI přesměrování pro každou zásadu, kterou používáte. Například: https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/authresp . |
MarkAsFailureOnStatusCode5xx | No | Označuje, zda má být požadavek na externí službu označen jako selhání, pokud je stavový kód HTTP v rozsahu 5xx. Výchozí hodnota je false . |
DiscoverMetadataByTokenIssuer | No | Určuje, jestli se mají metadata OIDC zjistit pomocí vystavitele v tokenu JWT. Pokud potřebujete vytvořit adresu URL koncového bodu metadat na základě vystavitele, nastavte ji na true hodnotu . |
IncludeClaimResolvingInClaimsHandling | No | U vstupních a výstupních deklarací identity určuje, jestli je řešení deklarací identity součástí technického profilu. Možné hodnoty: true nebo false (výchozí). Pokud chcete použít překladač deklarací identity v technickém profilu, nastavte ho na true hodnotu . |
token_endpoint_auth_method | No | Určuje, jak Azure AD B2C odesílá hlavičku ověřování do koncového bodu tokenu. Možné hodnoty: client_secret_post (výchozí) a client_secret_basic , private_key_jwt . Další informace najdete v části Ověřování klienta OpenID Connect. |
token_signing_algorithm | No | Určuje podpisový algoritmus, který se má použít, pokud token_endpoint_auth_method je nastaven na private_key_jwt hodnotu . Možné hodnoty: RS256 (výchozí) nebo RS512 . |
SingleLogoutEnabled | No | Označuje, jestli se během přihlášení technický profil pokusí odhlásit od zprostředkovatelů federovaných identit. Další informace najdete v tématu Odhlášení relace Azure AD B2C. Možné hodnoty: true (výchozí) nebo false . |
ReadBodyClaimsOnIdpRedirect | No | Nastavte na true čtení deklarací identity z textu odpovědi v přesměrování zprostředkovatele identity. Tato metadata se používají s Apple ID, kde deklarace identity vrací v datové části odpovědi. |
<Metadata>
<Item Key="ProviderName">https://login.live.com</Item>
<Item Key="METADATA">https://login.live.com/.well-known/openid-configuration</Item>
<Item Key="response_types">code</Item>
<Item Key="response_mode">form_post</Item>
<Item Key="scope">openid profile email</Item>
<Item Key="HttpBinding">POST</Item>
<Item Key="UsePolicyInRedirectUri">false</Item>
<Item Key="client_id">Your Microsoft application client ID</Item>
</Metadata>
Prvky uživatelského rozhraní
Následující nastavení lze použít ke konfiguraci chybové zprávy zobrazené při selhání. Metadata by měla být nakonfigurovaná v technickém profilu OpenID Connect. Chybové zprávy lze lokalizovat.
Atribut | Požadováno | Popis |
---|---|---|
UserMessageIfClaimsPrincipalDoesNotExist | No | Zpráva, která se má uživateli zobrazit, pokud účet s zadaným uživatelským jménem nebyl v adresáři nalezen. |
UserMessageIfInvalidPassword | No | Zpráva, která se uživateli zobrazí, pokud je heslo nesprávné. |
UserMessageIfOldPasswordUsed | No | Zpráva, která se má uživateli zobrazit, pokud se použilo staré heslo. |
Kryptografické klíče
Element CryptographicKeys obsahuje následující atribut:
Atribut | Požadováno | Popis |
---|---|---|
tajný klíč klienta | Ano | Tajný klíč klienta aplikace zprostředkovatele identity. Tento kryptografický klíč je vyžadován pouze v případě , že jsou metadata response_types nastavena code a token_endpoint_auth_method nastavena na client_secret_post nebo client_secret_basic . V tomto případě Azure AD B2C provede další volání pro výměnu autorizačního kódu pro přístupový token. Pokud jsou metadata nastavená na id_token hodnotu, můžete vynechat kryptografický klíč. |
assertion_signing_key | Ano | Privátní klíč RSA, který se použije k podepsání klientského kontrolního výrazu. Tento kryptografický klíč se vyžaduje pouze v případě , že je token_endpoint_auth_method metadata nastavena na private_key_jwt hodnotu . |
URI pro přesměrování
Při konfiguraci identifikátoru URI přesměrování vašeho zprostředkovatele identity zadejte https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp
. Nezapomeňte nahradit {your-tenant-name}
názvem vašeho tenanta. Identifikátor URI přesměrování musí být malými písmeny.
Příklady: