Definir um perfil técnico da SSPR do Microsoft Entra ID em uma política personalizada do Azure AD B2C

Observação

No Azure Active Directory B2C, as políticas personalizadas são projetadas principalmente para tratar de cenários complexos. Para a maioria dos cenários, recomendamos que você use fluxos de usuários predefinidos. Se você ainda não fez isso, saiba mais sobre o pacote de início de política personalizado em Introdução às políticas personalizadas no Active Directory B2C.

O Azure AD B2C (Azure Active Directory B2C) fornece suporte para verificar um endereço de email quanto à SSPR (redefinição de senha self-service). Use o perfil técnico da SSPR do Microsoft Entra ID para gerar e enviar um código para um endereço de email, em seguida, verifique esse código. O perfil técnico da SSPR do Microsoft Entra ID também pode retornar uma mensagem de erro. O perfil técnico de validação valida os dados fornecido pelo usuário para que o percurso do usuário continue. Com o perfil técnico de validação, uma mensagem de erro é exibida em uma página autodeclarada.

Este perfil técnico:

  • Não fornece uma interface para interagir com o usuário. Em vez disso, a interface do usuário é chamada de um perfil técnico autodeclarado ou um controle de exibição como um perfil técnico de validação.
  • Usa o serviço SSPR do Microsoft Entra para gerar e enviar um código para um endereço de email, em seguida, verifica esse código.
  • Valida um endereço de email por meio de um código de verificação.

Protocolo

O atributo Name do elemento Protocol precisa ser definido como Proprietary. O atributo handler deve conter o nome totalmente qualificado do assembly do manipulador de protocolo usado pelo Azure AD B2C:

Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

O exemplo a seguir mostra um perfil técnico do SSPR do Microsoft Entra ID:

<TechnicalProfile Id="AadSspr-SendCode">
  <DisplayName>Send Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    ...

Enviar email

O primeiro modo deste perfil técnico é a geração e o envio de um código. As seguintes opções podem ser configuradas para esse modo.

Declarações de entrada

O elemento InputClaims contém uma lista de declarações a enviar à SSPR do Microsoft Entra. Também é possível mapear o nome da declaração para o nome definido no perfil técnico do SSPR.

ClaimReferenceId Obrigatório Descrição
emailAddress Sim O identificador do usuário proprietário do endereço de email. A propriedade PartnerClaimType da declaração de entrada deve ser definida como emailAddress.

O elemento InputClaimsTransformations pode conter uma coleção de elementos InputClaimsTransformation usados para modificar as declarações de entrada ou gerar novas antes do envio ao serviço SSPR do Microsoft Entra.

Declarações de saída

O provedor do protocolo da SSPR do Microsoft Entra não retorna nenhuma OutputClaims, portanto, não é necessário especificar declarações de saída. No entanto, você pode incluir declarações que não são retornadas pelo provedor de protocolo da SSPR do Microsoft Entra, desde que defina o atributo DefaultValue.

O elemento OutputClaimsTransformations pode conter uma coleção de elementos OutputClaimsTransformation usados para modificar as declarações de saída ou gerar novas declarações.

Metadados

Atributo Obrigatório Descrição
Operação Sim Deve ser SendCode.

Elementos da interface do usuário

Os metadados a seguir podem ser usados para configurar as mensagens de erro exibidas após a falha do envio do SMS. Os metadados devem ser configurados no perfil técnico autodeclarado. A mensagem de erro pode ser localizada.

Atributo Obrigatório Descrição
UserMessageIfInternalError Não Mensagem de erro do usuário se o servidor encontrar um erro interno.
UserMessageIfThrottled Não Mensagem de erro do usuário se uma solicitação for limitada.

Exemplo: enviar um email

O exemplo a seguir mostra um perfil técnico da SSPR do Microsoft Entra ID que é usado para enviar um código via email.

<TechnicalProfile Id="AadSspr-SendCode">
  <DisplayName>Send Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">SendCode</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
  </InputClaims>
</TechnicalProfile>

Verificar o código

O segundo modo desse perfil técnico é a verificação de um código. As seguintes opções podem ser configuradas para ele.

Declarações de entrada

O elemento InputClaims contém uma lista de declarações a enviar à SSPR do Microsoft Entra. Também é possível mapear o nome da declaração para o nome definido no perfil técnico do SSPR.

ClaimReferenceId Obrigatório Descrição
emailAddress Sim Mesmo endereço de email usado anteriormente para enviar um código. Ele também é usado para localizar uma sessão de verificação de email. A propriedade PartnerClaimType da declaração de entrada deve ser definida como emailAddress.
verificationCode Sim O código de verificação fornecido pelo usuário a ser verificado. A propriedade PartnerClaimType da declaração de entrada deve ser definida como verificationCode.

O elemento InputClaimsTransformations pode conter uma coleção de elementos InputClaimsTransformation usados para modificar as declarações de entrada ou gerar novas antes de chamar o serviço SSPR do Microsoft Entra.

Declarações de saída

O provedor do protocolo da SSPR do Microsoft Entra não retorna nenhuma OutputClaims, portanto, não é necessário especificar declarações de saída. No entanto, você pode incluir declarações que não são retornadas pelo provedor de protocolo da SSPR do Microsoft Entra, desde que defina o atributo DefaultValue.

O elemento OutputClaimsTransformations pode conter uma coleção de elementos OutputClaimsTransformation usados para modificar as declarações de saída ou gerar novas declarações.

Metadados

Atributo Obrigatório Descrição
Operação Sim Deve ser VerifyCode

Elementos da interface do usuário

Os metadados a seguir podem ser usados para configurar as mensagens de erro exibidas após a falha da verificação do código. Os metadados devem ser configurados no perfil técnico autodeclarado. A mensagem de erro pode ser localizada.

Atributo Obrigatório Descrição
UserMessageIfChallengeExpired A mensagem a ser exibida ao usuário se a sessão de verificação de código expirar. O código expirou ou nunca foi gerado para um determinado identificador.
UserMessageIfInternalError Mensagem de erro do usuário se o servidor encontrar um erro interno.
UserMessageIfThrottled Mensagem de erro do usuário se uma solicitação for limitada.
UserMessageIfVerificationFailedNoRetry A mensagem a ser exibida ao usuário se ele tiver fornecido um código inválido e não tiver permissão para fornecer o correto.
UserMessageIfVerificationFailedRetryAllowed A mensagem a ser exibida ao usuário se ele tiver fornecido um código inválido e não tiver permissão para fornecer o correto.

Exemplo: verificar um código

O exemplo a seguir mostra um perfil técnico da SSPR do Microsoft Entra ID usado para verificar o código.

<TechnicalProfile Id="AadSspr-VerifyCode">
  <DisplayName>Verify Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyCode</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="verificationCode" PartnerClaimType="verificationCode" />
    <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
  </InputClaims>
</TechnicalProfile>