Definiera en OpenID Connect-teknisk profil i en Azure Active Directory B2C anpassad principDefine an OpenID Connect technical profile in an Azure Active Directory B2C custom policy

Anteckning

I Azure Active Directory B2C är anpassade principer utformade främst för att hantera komplexa scenarier.In Azure Active Directory B2C, custom policies are designed primarily to address complex scenarios. I de flesta fall rekommenderar vi att du använder inbyggda användar flöden.For most scenarios, we recommend that you use built-in user flows.

Azure Active Directory B2C (Azure AD B2C) har stöd för OpenID Connect Protocol Identity Provider.Azure Active Directory B2C (Azure AD B2C) provides support for the OpenID Connect protocol identity provider. OpenID Connect 1,0 definierar ett identitets lager ovanpå OAuth 2,0 och representerar status för grafiken i moderna autentiseringsprotokoll.OpenID Connect 1.0 defines an identity layer on top of OAuth 2.0 and represents the state of the art in modern authentication protocols. Med en OpenID Connect-teknisk profil kan du federera med en OpenID Connect-baserad identitets leverantör, t. ex. Azure AD.With an OpenID Connect technical profile, you can federate with an OpenID Connect based identity provider, such as Azure AD. Genom att federera med en identitets leverantör kan användare logga in med sina befintliga sociala identiteter eller företags identiteter.Federating with an identity provider allows users to sign in with their existing social or enterprise identities.

ProtokollProtocol

Namnattributet för protokoll elementet måste anges till OpenIdConnect .The Name attribute of the Protocol element needs to be set to OpenIdConnect. Till exempel är protokollet för den tekniska profilen MSA-OIDC OpenIdConnect :For example, the protocol for the MSA-OIDC technical profile is OpenIdConnect:

<TechnicalProfile Id="MSA-OIDC">
  <DisplayName>Microsoft Account</DisplayName>
  <Protocol Name="OpenIdConnect" />
  ...

Inmatade anspråkInput claims

Elementen InputClaims och InputClaimsTransformations krävs inte.The InputClaims and InputClaimsTransformations elements are not required. Men du kanske vill skicka ytterligare parametrar till din identitets leverantör.But you may want to send additional parameters to your identity provider. I följande exempel lägger du till parametern domain_hint frågesträngparametern med värdet för contoso.com auktorisering av begäran.The following example adds the domain_hint query string parameter with the value of contoso.com to the authorization request.

<InputClaims>
  <InputClaim ClaimTypeReferenceId="domain_hint" DefaultValue="contoso.com" />
</InputClaims>

Utgående anspråkOutput claims

OutputClaims -elementet innehåller en lista över anspråk som returneras av OpenID Connect Identity Provider.The OutputClaims element contains a list of claims returned by the OpenID Connect identity provider. Du kan behöva mappa namnet på det anspråk som definierats i principen till det namn som definierats i identitets leverantören.You may need to map the name of the claim defined in your policy to the name defined in the identity provider. Du kan också inkludera anspråk som inte returneras av identitets leverantören, så länge du ställer in DefaultValue attributet.You can also include claims that aren't returned by the identity provider, as long as you set the DefaultValue attribute.

OutputClaimsTransformations -elementet kan innehålla en samling av OutputClaimsTransformation -element som används för att ändra de utgående anspråken eller skapa nya.The OutputClaimsTransformations element may contain a collection of OutputClaimsTransformation elements that are used to modify the output claims or generate new ones.

I följande exempel visas de anspråk som returneras av Microsoft-kontots identitets leverantör:The following example shows the claims returned by the Microsoft Account identity provider:

  • Det under anspråk som är mappat till issuerUserId -anspråket.The sub claim that is mapped to the issuerUserId claim.
  • Det namn anspråk som är mappat till anspråket DisplayName .The name claim that is mapped to the displayName claim.
  • E-postmeddelandet utan namn mappning.The email without name mapping.

Den tekniska profilen returnerar även anspråk som inte returneras av identitets leverantören:The technical profile also returns claims that aren't returned by the identity provider:

  • IdentityProvider -anspråket som innehåller namnet på identitets leverantören.The identityProvider claim that contains the name of the identity provider.
  • AuthenticationSource -anspråket med standardvärdet socialIdpAuthentication.The authenticationSource claim with a default value of 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>

MetadataMetadata

AttributAttribute KrävsRequired BeskrivningDescription
client_idclient_id JaYes Program identifieraren för identitets leverantören.The application identifier of the identity provider.
IdTokenAudienceIdTokenAudience IngaNo Id_tokenens mål grupp.The audience of the id_token. Om det här alternativet anges kontrollerar Azure AD B2C om aud anspråket i en token som returneras av identitets leverantören är lika med det som anges i IdTokenAudience metadata.If specified, Azure AD B2C checks whether the aud claim in a token returned by the identity provider is equal to the one specified in the IdTokenAudience metadata.
METADATATJÄNSTMETADATA JaYes En URL som pekar på ett konfigurations dokument för OpenID Connect Identity Provider, som även kallas OpenID-känd konfigurations slut punkt.A URL that points to an OpenID Connect identity provider configuration document, which is also known as OpenID well-known configuration endpoint. URL: en kan innehålla {tenant} uttrycket, som ersätts med klient namnet.The URL can contain the {tenant} expression, which is replaced with the tenant name.
authorization_endpointauthorization_endpoint IngaNo En URL som pekar på en OpenID ansluter till en slut punkt för konfigurering av identitets leverantör.A URL that points to an OpenID Connect identity provider configuration authorization endpoint. Värdet för authorization_endpoint metadata har företräde framför den som authorization_endpoint anges i den välkända konfigurations slut punkten för OpenID.The value of authorization_endpoint metadata takes precedence over the authorization_endpoint specified in the OpenID well-known configuration endpoint. URL: en kan innehålla {tenant} uttrycket, som ersätts med klient namnet.The URL can contain the {tenant} expression, which is replaced with the tenant name.
end_session_endpointend_session_endpoint IngaNo URL: en för slut sessionens slut punkt.The URL of the end session endpoint. Värdet för authorization_endpoint metadata har företräde framför den som end_session_endpoint anges i den välkända konfigurations slut punkten för OpenID.The value of authorization_endpoint metadata takes precedence over the end_session_endpoint specified in the OpenID well-known configuration endpoint.
utfärdareissuer IngaNo Den unika identifieraren för en OpenID Connect Identity Provider.The unique identifier of an OpenID Connect identity provider. Värdet för utfärdare metadata har företräde framför den som issuer anges i den välkända OpenID konfigurations slut punkten.The value of issuer metadata takes precedence over the issuer specified in the OpenID well-known configuration endpoint. Om det här alternativet anges kontrollerar Azure AD B2C om iss anspråket i en token som returneras av identitets leverantören är lika med det som anges i utfärdarens metadata.If specified, Azure AD B2C checks whether the iss claim in a token returned by the identity provider is equal to the one specified in the issuer metadata.
ProviderNameProviderName IngaNo Namnet på identitets leverantören.The name of the identity provider.
response_typesresponse_types IngaNo Svars typen enligt OpenID Connect core 1,0-specifikationen.The response type according to the OpenID Connect Core 1.0 specification. Möjliga värden: id_token , code , eller token .Possible values: id_token, code, or token.
response_moderesponse_mode IngaNo Metoden som identitets leverantören använder för att skicka tillbaka resultatet till Azure AD B2C.The method that the identity provider uses to send the result back to Azure AD B2C. Möjliga värden: query , form_post (standard) eller fragment .Possible values: query, form_post (default), or fragment.
omfångscope IngaNo Omfattningen av begäran som definieras enligt OpenID Connect core 1,0-specifikationen.The scope of the request that is defined according to the OpenID Connect Core 1.0 specification. Till exempel openid , profile och email .Such as openid, profile, and email.
HttpBindingHttpBinding IngaNo Den förväntade HTTP-bindningen till åtkomsttoken och slut punkter för anspråks-token.The expected HTTP binding to the access token and claims token endpoints. Möjliga värden: GET eller POST .Possible values: GET or POST.
ValidTokenIssuerPrefixesValidTokenIssuerPrefixes IngaNo En nyckel som kan användas för att logga in på varje klient organisation när du använder en identitets leverantör för flera innehavare, till exempel Azure Active Directory.A key that can be used to sign in to each of the tenants when using a multi-tenant identity provider such as Azure Active Directory.
UsePolicyInRedirectUriUsePolicyInRedirectUri IngaNo Anger om en princip ska användas vid konstruktion av omdirigerings-URI.Indicates whether to use a policy when constructing the redirect URI. När du konfigurerar ditt program i identitets leverantören måste du ange omdirigerings-URI: n.When you configure your application in the identity provider, you need to specify the redirect URI. Omdirigerings-URI: n pekar på Azure AD B2C, https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp .The redirect URI points to Azure AD B2C, https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp. Om du anger true måste du lägga till en omdirigerings-URI för varje princip som du använder.If you specify true, you need to add a redirect URI for each policy you use. Exempel: https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/authresp.For example: https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/authresp.
MarkAsFailureOnStatusCode5xxMarkAsFailureOnStatusCode5xx IngaNo Anger om en begäran till en extern tjänst ska markeras som ett haveri om HTTP-statuskoden finns i 5xx-intervallet.Indicates whether a request to an external service should be marked as a failure if the Http status code is in the 5xx range. Standardvärdet är false.The default is false.
DiscoverMetadataByTokenIssuerDiscoverMetadataByTokenIssuer IngaNo Anger om OIDC metadata ska identifieras med hjälp av utfärdaren i JWT-token.Indicates whether the OIDC metadata should be discovered by using the issuer in the JWT token.
IncludeClaimResolvingInClaimsHandlingIncludeClaimResolvingInClaimsHandling IngaNo För indata-och utgående anspråk anges om anspråks matchning ingår i den tekniska profilen.For input and output claims, specifies whether claims resolution is included in the technical profile. Möjliga värden: true , eller false (standard).Possible values: true, or false (default). Om du vill använda en anspråks lösare i den tekniska profilen ställer du in den på true .If you want to use a claims resolver in the technical profile, set this to true.
token_endpoint_auth_methodtoken_endpoint_auth_method IngaNo Anger hur Azure AD B2C skickar Authentication-huvudet till token-slutpunkten.Specifies how Azure AD B2C sends the authentication header to the token endpoint. Möjliga värden: client_secret_post (standard) och client_secret_basic (offentlig för hands version), private_key_jwt (offentlig för hands version).Possible values: client_secret_post (default), and client_secret_basic (public preview), private_key_jwt (public preview). Mer information finns i avsnittet OpenID Connect client Authentication.For more information, see OpenID Connect client authentication section.
token_signing_algorithmtoken_signing_algorithm IngaNo Anger signeringsalgoritmen som ska användas när token_endpoint_auth_method är inställd på private_key_jwt .Specifies the signing algorithm to use when token_endpoint_auth_method is set to private_key_jwt. Möjliga värden: RS256 (standard) eller RS512 .Possible values: RS256 (default) or RS512.
SingleLogoutEnabledSingleLogoutEnabled IngaNo Anger om den tekniska profilen under inloggningen försöker logga ut från federerade identitets leverantörer.Indicates whether during sign-in the technical profile attempts to sign out from federated identity providers. Mer information finns i Azure AD B2C-sessionen logga ut. Möjliga värden: true (standard) eller false .For more information, see Azure AD B2C session sign-out. Possible values: true (default), or false.
ReadBodyClaimsOnIdpRedirectReadBodyClaimsOnIdpRedirect IngaNo Ställ in för true att läsa anspråk från svars texten i omdirigeraren för identitetsprovider.Set to true to read claims from response body on identity provider redirect. Dessa metadata används med Apple-ID, där anspråk returneras i svarets nytto Last.This metadata is used with Apple ID, where claims return in the response payload.
<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>

Element för användargränssnittUI elements

Följande inställningar kan användas för att konfigurera fel meddelandet som visas vid fel.The following settings can be used to configure the error message displayed upon failure. Metadata ska konfigureras i den tekniska profilen OpenID Connect.The metadata should be configured in the OpenID Connect technical profile. Fel meddelandena kan lokaliseras.The error messages can be localized.

AttributAttribute KrävsRequired BeskrivningDescription
UserMessageIfClaimsPrincipalDoesNotExistUserMessageIfClaimsPrincipalDoesNotExist IngaNo Meddelandet som ska visas för användaren om ett konto med det angivna användar namnet inte hittades i katalogen.The message to display to the user if an account with the provided username not found in the directory.
UserMessageIfInvalidPasswordUserMessageIfInvalidPassword IngaNo Meddelandet som ska visas för användaren om lösen ordet är felaktigt.The message to display to the user if the password is incorrect.
UserMessageIfOldPasswordUsedUserMessageIfOldPasswordUsed IngaNo Meddelandet som ska visas för användaren om ett gammalt lösen ord används.The message to display to the user if an old password used.

Kryptografiska nycklarCryptographic keys

CryptographicKeys -elementet innehåller följande attribut:The CryptographicKeys element contains the following attribute:

AttributAttribute KrävsRequired BeskrivningDescription
client_secretclient_secret JaYes Klient hemligheten för Identity Provider-programmet.The client secret of the identity provider application. Den här kryptografiska nyckeln krävs endast om response_types metadata har angetts till code och token_endpoint_auth_method har angetts till client_secret_post eller client_secret_basic .This cryptographic key is required only if the response_types metadata is set to code and token_endpoint_auth_method is set to client_secret_post or client_secret_basic. I det här fallet gör Azure AD B2C ett annat anrop till Exchange-auktoriseringskod för en åtkomsttoken.In this case, Azure AD B2C makes another call to exchange the authorization code for an access token. Om metadata har angetts till id_token kan du utelämna den kryptografiska nyckeln.If the metadata is set to id_token you can omit the cryptographic key.
assertion_signing_keyassertion_signing_key JaYes Den privata RSA-nyckeln som ska användas för att signera klientens kontroll.The RSA private key which will be used to sign the client assertion. Den här kryptografiska nyckeln krävs endast om token_endpoint_auth_method metadata har angetts till private_key_jwt .This cryptographic key is required only if the token_endpoint_auth_method metadata is set to private_key_jwt.

Omdirigerings-URIRedirect Uri

När du konfigurerar en omdirigerings-URI för din identitetsprovider anger du https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp .When you configure the redirect URI of your identity provider, enter https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp. Se till att ersätta {your-tenant-name} med klient organisationens namn.Make sure to replace {your-tenant-name} with your tenant's name. Omdirigerings-URI: n måste vara i gemener.The redirect URI needs to be in all lowercase.

Exempel:Examples: