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é primárně tak, aby řešily složité scénáře. U většiny scénářů doporučujeme používat předdefinované toky uživatelů. Pokud jste to ještě neudělali, přečtěte si o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami v 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 identit nad OAuth 2.0 a představuje stav techniky v moderních protokolech ověřování. S technickým profilem OpenID Connect můžete federovat pomocí zprostředkovatele identity založeného na OpenID Connect, jako je Microsoft Entra ID. Federování pomocí zprostředkovatele 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
hodnotu . 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 povinné. Možná ale budete chtít zprostředkovateli identity odeslat další parametry. 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
Element OutputClaims 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é nevrací zprostředkovatel identity, pokud nastavíte DefaultValue
atribut.
OutputClaimsTransformations element může obsahovat kolekci OutputClaimsTransformation elementů, které se používají 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 | Povinné | Popis |
---|---|---|
client_id | Yes | Identifikátor aplikace zprostředkovatele identity. |
IdTokenAudience | No | Cílová skupina id_token. Pokud je zadáno, Azure AD B2C zkontroluje, jestli aud je deklarace identity v tokenu vrácená zprostředkovatelem identity rovna deklarací identity zadané v metadatech IdTokenAudience. |
METADATA | Yes | Adresa URL, která odkazuje na dokument konfigurace 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ý se nahradí názvem tenanta. |
authorization_endpoint | No | Adresa URL, která odkazuje na koncový bod autorizace konfigurace zprostředkovatele identity OpenID Connect. Hodnota authorization_endpoint metadata má přednost před hodnotou zadanou authorization_endpoint v dobře známém koncovém bodu konfigurace OpenID. Adresa URL může obsahovat {tenant} výraz, který se nahradí 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 hodnotou zadanou issuer v dobře známém koncovém bodu konfigurace OpenID. Pokud je tato hodnota zadána, Azure AD B2C zkontroluje, jestli iss se deklarace identity v tokenu vrácená zprostředkovatelem identity rovná deklarací 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 . |
scope | 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 tokenu 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 Microsoft Entra ID. |
UsePolicyInRedirectUri | No | Určuje, jestli se při vytváření identifikátoru URI pro přesměrování mají použít zásady. Když konfigurujete aplikaci 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. Pří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í formát 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 . |
IncludeClaimResolvingInClaimsHandling | No | U vstupních a výstupních deklarací identity určuje, jestli je řešení deklarací identity zahrnuto v technickém 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 . |
token_endpoint_auth_method | No | Určuje, jak Azure AD B2C odešle ověřovací hlavičku koncovému 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, když token_endpoint_auth_method je nastavená na private_key_jwt hodnotu . Možné hodnoty: RS256 (výchozí) nebo RS512 . |
SingleLogoutEnabled | No | Určuje, jestli se technický profil během přihlašování pokusí odhlásit od zprostředkovatelů federované identity. Další informace najdete v tématu Azure AD odhlášení z relace B2C. Možné hodnoty: true (výchozí) nebo false . |
ReadBodyClaimsOnIdpRedirect | No | Pokud chcete číst deklarace identity z textu odpovědi při přesměrování zprostředkovatele identity, nastavte na true hodnotu . 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, která se zobrazí při selhání. Metadata by měla být nakonfigurovaná v technickém profilu OpenID Connect. Chybové zprávy lze lokalizovat.
Atribut | Povinné | Popis |
---|---|---|
UserMessageIfClaimsPrincipalDoesNotExist | No | Zpráva, která se zobrazí uživateli, pokud se v adresáři nenachází účet se zadaným uživatelským jménem. |
UserMessageIfInvalidPassword | No | Zpráva, která se zobrazí uživateli v případě nesprávného hesla. |
UserMessageIfOldPasswordUsed | No | Zpráva, která se zobrazí uživateli, pokud se použije staré heslo. |
Kryptografické klíče
Element CryptographicKeys obsahuje následující atribut:
Atribut | Povinné | Popis |
---|---|---|
client_secret | Yes | Tajný klíč klienta aplikace zprostředkovatele identity. Tento kryptografický klíč je vyžadován pouze v případě, že je metadata response_types nastavena na code hodnotu a token_endpoint_auth_method nastavena na client_secret_post hodnotu nebo client_secret_basic . V tomto případě Azure AD B2C provede další volání pro výměnu autorizačního kódu za přístupový token. Pokud jsou metadata nastavená na id_token , můžete kryptografický klíč vynechat. |
assertion_signing_key | Yes | Privátní klíč RSA, který se použije k podepsání kontrolního výrazu klienta. Tento kryptografický klíč je vyžadován pouze v případě, že je metadata token_endpoint_auth_method nastavena na private_key_jwt hodnotu . |
Identifikátor 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: