Sdílet prostřednictvím


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, codenebo 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. openidNapříklad , profilea 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 truehodnotu .
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: truenebo false (výchozí). Pokud chcete použít překladač deklarací identity v technickém profilu, nastavte ho na truehodnotu .
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_jwthodnotu . 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_jwthodnotu .

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: