Defina um perfil técnico OpenID Connect numa política personalizada do Azure Ative Directory B2CDefine an OpenID Connect technical profile in an Azure Active Directory B2C custom policy

Nota

No Azure Ative Directory B2C, as políticas personalizadas são projetadas principalmente para abordar cenários complexos.In Azure Active Directory B2C, custom policies are designed primarily to address complex scenarios. Para a maioria dos cenários, recomendamos que utilize fluxos de utilizador incorporados.For most scenarios, we recommend that you use built-in user flows.

O Azure Ative Directory B2C (Azure AD B2C) fornece suporte para o fornecedor de identidade do protocolo OpenID Connect.Azure Active Directory B2C (Azure AD B2C) provides support for the OpenID Connect protocol identity provider. O OpenID Connect 1.0 define uma camada de identidade em cima do OAuth 2.0 e representa o estado da arte nos protocolos modernos de autenticação.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. Com um perfil técnico OpenID Connect, pode federar com um fornecedor de identidade baseado em OpenID Connect, como a Azure AD.With an OpenID Connect technical profile, you can federate with an OpenID Connect based identity provider, such as Azure AD. A federação com um fornecedor de identidade permite que os utilizadores assinem com as suas identidades sociais ou empresariais existentes.Federating with an identity provider allows users to sign in with their existing social or enterprise identities.

ProtocoloProtocol

O atributo nome do elemento Protocolo tem de ser definido para OpenIdConnect .The Name attribute of the Protocol element needs to be set to OpenIdConnect. Por exemplo, o protocolo para o perfil técnico 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" />
  ...

Reclamações de entradaInput claims

Os elementos InputClaims e InputClaimsTransformations não são necessários.The InputClaims and InputClaimsTransformations elements are not required. Mas pode querer enviar parâmetros adicionais ao seu fornecedor de identidade.But you may want to send additional parameters to your identity provider. O exemplo a seguir adiciona o parâmetro de cadeia de consulta domain_hint com o valor do pedido de contoso.com autorização.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>

Reclamações de saídaOutput claims

O elemento OutputClaims contém uma lista de reclamações devolvidas pelo fornecedor de identidade OpenID Connect.The OutputClaims element contains a list of claims returned by the OpenID Connect identity provider. Poderá ser necessário mapear o nome da reclamação definida na sua política para o nome definido no fornecedor de identidade.You may need to map the name of the claim defined in your policy to the name defined in the identity provider. Também pode incluir reclamações que não são devolvidas pelo fornecedor de identidade, desde que desagressem o DefaultValue atributo.You can also include claims that aren't returned by the identity provider, as long as you set the DefaultValue attribute.

O elemento OutputClaimsTransformations pode conter uma coleção de elementos de saídaClaimsTransformation que são utilizados para modificar as alegações de saída ou gerar novos.The OutputClaimsTransformations element may contain a collection of OutputClaimsTransformation elements that are used to modify the output claims or generate new ones.

O exemplo a seguir mostra as reclamações devolvidas pelo fornecedor de identidade da Conta Microsoft:The following example shows the claims returned by the Microsoft Account identity provider:

  • A sub-alegação que está mapeada para a reivindicação da EmitenteUS.The sub claim that is mapped to the issuerUserId claim.
  • A alegação do nome que está mapeada para a alegação do nome de exibição.The name claim that is mapped to the displayName claim.
  • O e-mail sem mapeamento de nome.The email without name mapping.

O perfil técnico também devolve alegações que não são devolvidas pelo fornecedor de identidade:The technical profile also returns claims that aren't returned by the identity provider:

  • A identidadeProvider afirma que contém o nome do fornecedor de identidade.The identityProvider claim that contains the name of the identity provider.
  • A autenticaçãoProvação com um valor predefinido de 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>

MetadadosMetadata

AtributoAttribute ObrigatórioRequired DescriçãoDescription
client_idclient_id YesYes O identificador de aplicação do fornecedor de identidade.The application identifier of the identity provider.
IdTokenAudienceIdTokenAudience NoNo O público do id_token.The audience of the id_token. Se especificado, a Azure AD B2C verifica se a aud reclamação num token devolvido pelo fornecedor de identidade é igual à especificada nos metadados IdTokenAudience.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.
METADADOSMETADATA YesYes Um URL que aponta para um documento de configuração do fornecedor de identidade OpenID Connect, que também é conhecido como ponto final de configuração bem conhecido do OpenID.A URL that points to an OpenID Connect identity provider configuration document, which is also known as OpenID well-known configuration endpoint. O URL pode conter a {tenant} expressão, que é substituída pelo nome do inquilino.The URL can contain the {tenant} expression, which is replaced with the tenant name.
authorization_endpointauthorization_endpoint NoNo Um URL que aponta para um ponto final de autorização de configuração do fornecedor de identidade OpenID Connect.A URL that points to an OpenID Connect identity provider configuration authorization endpoint. O valor dos metadados authorization_endpoint prevalece sobre o authorization_endpoint especificado no ponto final de configuração bem conhecido do OpenID.The value of authorization_endpoint metadata takes precedence over the authorization_endpoint specified in the OpenID well-known configuration endpoint. O URL pode conter a {tenant} expressão, que é substituída pelo nome do inquilino.The URL can contain the {tenant} expression, which is replaced with the tenant name.
end_session_endpointend_session_endpoint NoNo O URL do ponto final da sessão final.The URL of the end session endpoint. O valor dos metadados authorization_endpoint prevalece sobre o end_session_endpoint especificado no ponto final de configuração bem conhecido do OpenID.The value of authorization_endpoint metadata takes precedence over the end_session_endpoint specified in the OpenID well-known configuration endpoint.
issuerissuer NoNo O identificador único de um fornecedor de identidade OpenID Connect.The unique identifier of an OpenID Connect identity provider. O valor dos metadados emitentes tem precedência sobre o issuer especificado no ponto final de configuração bem conhecido do OpenID.The value of issuer metadata takes precedence over the issuer specified in the OpenID well-known configuration endpoint. Se especificado, a Azure AD B2C verifica se a iss reclamação num token devolvido pelo fornecedor de identidade é igual à especificada nos metadados emitentes.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 NoNo O nome do fornecedor de identidade.The name of the identity provider.
response_typesresponse_types NoNo O tipo de resposta de acordo com a especificação OpenID Connect Core 1.0.The response type according to the OpenID Connect Core 1.0 specification. Valores possíveis: id_token code , ou . token .Possible values: id_token, code, or token.
response_moderesponse_mode NoNo O método que o fornecedor de identidade utiliza para enviar o resultado de volta para Azure AD B2C.The method that the identity provider uses to send the result back to Azure AD B2C. Valores possíveis: query form_post (padrão), ou fragment .Possible values: query, form_post (default), or fragment.
scopescope NoNo O âmbito do pedido que é definido de acordo com a especificação OpenID Connect Core 1.0.The scope of the request that is defined according to the OpenID Connect Core 1.0 specification. Como, openid profile email e.Such as openid, profile, and email.
HttpBindingHttpBinding NoNo A ligação HTTP esperada ao token de acesso e reclama pontos finais simbólicos.The expected HTTP binding to the access token and claims token endpoints. Valores possíveis: GET ou POST .Possible values: GET or POST.
ValidTokenIssuerPrefixesValidTokenIssuerPrefixes NoNo Uma chave que pode ser usada para iniciar sedutar a cada um dos inquilinos quando se utiliza um fornecedor de identidade multi-inquilino, como o Azure Ative 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 NoNo Indica se deve utilizar uma política ao construir o URI de redirecionamento.Indicates whether to use a policy when constructing the redirect URI. Ao configurar a sua aplicação no fornecedor de identidade, tem de especificar o URI de redirecionamento.When you configure your application in the identity provider, you need to specify the redirect URI. O redirecionamento URI aponta para 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. Se true especificar, tem de adicionar um URI de redirecionamento para cada apólice que utilizar.If you specify true, you need to add a redirect URI for each policy you use. Por exemplo: 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 NoNo Indica se um pedido a um serviço externo deve ser marcado como uma falha se o código de estado http estiver na gama 5xx.Indicates whether a request to an external service should be marked as a failure if the Http status code is in the 5xx range. A predefinição é false.The default is false.
DiscoverMetadataByTokenIssuerDiscoverMetadataByTokenIssuer NoNo Indica se os metadados OIDC devem ser descobertos utilizando o emitente no token JWT.Indicates whether the OIDC metadata should be discovered by using the issuer in the JWT token.
IncluirClaimResolvingInClaimsHandlingIncludeClaimResolvingInClaimsHandling NoNo Para pedidos de entradas e saídas, especifica se a resolução de sinistros está incluída no perfil técnico.For input and output claims, specifies whether claims resolution is included in the technical profile. Valores possíveis: true , ou false (predefinição).Possible values: true, or false (default). Se pretender utilizar uma reclamação no perfil técnico, desa um pouco true para .If you want to use a claims resolver in the technical profile, set this to true.
token_endpoint_auth_methodtoken_endpoint_auth_method NoNo Especifica como a Azure AD B2C envia o cabeçalho de autenticação para o ponto final simbólico.Specifies how Azure AD B2C sends the authentication header to the token endpoint. Valores possíveis: client_secret_post (padrão) e client_secret_basic (visualização pública), private_key_jwt (visualização pública).Possible values: client_secret_post (default), and client_secret_basic (public preview), private_key_jwt (public preview). Para mais informações, consulte a secção de autenticação do cliente OpenID Connect.For more information, see OpenID Connect client authentication section.
token_signing_algorithmtoken_signing_algorithm NoNo Especifica o algoritmo de assinatura para utilizar quando token_endpoint_auth_method estiver definido para private_key_jwt .Specifies the signing algorithm to use when token_endpoint_auth_method is set to private_key_jwt. Valores possíveis: RS256 (padrão) ou RS512 . .Possible values: RS256 (default) or RS512.
SingleLogoutEnabledSingleLogoutEnabled NoNo Indica se durante a entrada no perfil técnico tenta-se assinar dos fornecedores de identidade federados.Indicates whether during sign-in the technical profile attempts to sign out from federated identity providers. Para mais informações, consulte a sessão de Sessão Azure AD B2C. Valores possíveis: true (padrão), ou false .For more information, see Azure AD B2C session sign-out. Possible values: true (default), or false.
ReadBodyClaimsOnIdpRedirectReadBodyClaimsOnIdpRedirect NoNo Definir true para ler reclamações do organismo de resposta no redirecionamento do fornecedor de identidade.Set to true to read claims from response body on identity provider redirect. Estes metadados são utilizados com o Apple ID,onde as reclamações regressam na carga útil da resposta.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>

Elementos da IUUI elements

As seguintes definições podem ser utilizadas para configurar a mensagem de erro exibida após a falha.The following settings can be used to configure the error message displayed upon failure. Os metadados devem ser configurados no perfil técnico OpenID Connect.The metadata should be configured in the OpenID Connect technical profile. As mensagens de erro podem ser localizadas.The error messages can be localized.

AtributoAttribute ObrigatórioRequired DescriçãoDescription
UserMessageIfClaimsPrincipalDoesNotExistUserMessageIfClaimsPrincipalDoesNotExist NoNo A mensagem a apresentar ao utilizador se uma conta com o nome de utilizador fornecido não for encontrada no diretório.The message to display to the user if an account with the provided username not found in the directory.
UserMessageIfInvalidPasswordUserMessageIfInvalidPassword NoNo A mensagem a apresentar ao utilizador se a palavra-passe estiver incorreta.The message to display to the user if the password is incorrect.
UserMessageIfOldPasswordUsedUserMessageIfOldPasswordUsed NoNo A mensagem a apresentar ao utilizador se for utilizada uma senha antiga.The message to display to the user if an old password used.

Chaves criptográficasCryptographic keys

O elemento CryptographicKeys contém o seguinte atributo:The CryptographicKeys element contains the following attribute:

AtributoAttribute ObrigatórioRequired DescriçãoDescription
client_secretclient_secret YesYes O segredo do cliente da aplicação do fornecedor de identidade.The client secret of the identity provider application. Esta chave criptográfica só é necessária se os metadados response_types estiverem definidos code e token_endpoint_auth_method estiver definido para client_secret_post ou 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. Neste caso, a Azure AD B2C faz outra chamada para trocar o código de autorização por um token de acesso.In this case, Azure AD B2C makes another call to exchange the authorization code for an access token. Se os metadados estiverem definidos, id_token pode omitir a tecla criptográfica.If the metadata is set to id_token you can omit the cryptographic key.
assertion_signing_keyassertion_signing_key YesYes A chave privada RSA que será usada para assinar a afirmação do cliente.The RSA private key which will be used to sign the client assertion. Esta chave criptográfica só é necessária se os metadados token_endpoint_auth_method estiverem definidos para private_key_jwt .This cryptographic key is required only if the token_endpoint_auth_method metadata is set to private_key_jwt.

Redirecionar UriRedirect Uri

Quando configurar o URI de redirecionamento do seu fornecedor de identidade, insira 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. Certifique-se de substituir {your-tenant-name} pelo nome do seu inquilino.Make sure to replace {your-tenant-name} with your tenant's name. O URI de redirecionamento tem de estar em todas as minúsculas.The redirect URI needs to be in all lowercase.

Exemplos:Examples: