Compartilhar via


Definir um perfil técnico de autenticação multifator da ID do Microsoft Entra em uma política personalizada do Azure AD B2C

Importante

A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais em nossas perguntas frequentes.

O Azure Active Directory B2C (Azure AD B2C) fornece suporte para verificar um número de telefone usando um código de verificação ou verificando um código TOTP (senha de uso único baseado em tempo).

Protocolo

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

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

O exemplo a seguir mostra um perfil técnico de autenticação multifator do Microsoft Entra ID:

<TechnicalProfile Id="AzureMfa-SendSms">
    <DisplayName>Send Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    ...

Verificar o modo de telefone

No modo de verificação de telefone, o perfil técnico gera e envia um código para um número de telefone e, em seguida, verifica o código. O perfil técnico de autenticação multifator do Microsoft Entra ID também pode retornar uma mensagem de erro. O perfil técnico de validação valida os dados fornecidos pelo usuário antes 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. O 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 de um controle de exibição como um perfil técnico de validação.
  • Usa o serviço de autenticação multifator do Microsoft Entra para gerar e enviar um código para um número de telefone e, em seguida, verifica o código.
  • Valida um número de telefone por meio de mensagens de texto.

O perfil técnico fornece métodos para enviar o código de verificação por mensagem de texto SMS e verificar o código. A captura de tela a seguir mostra o fluxo do verificador de telefone.

Captura de tela mostrando o fluxo TOTP

Enviar SMS

Para verificar um telefone, a primeira etapa gera um código e o envia para o número de telefone. As opções a seguir podem ser configuradas para esta etapa.

Declarações de entrada

O elemento InputClaims contém uma lista de declarações a serem enviadas para a autenticação multifator do Microsoft Entra. Você também pode mapear o nome de sua declaração para o nome definido no perfil técnico de MFA.

ReivindicaçãoReferênciaId Obrigatório Descrição
userPrincipalName Sim O identificador do usuário que possui o número de telefone.
phoneNumber Sim O número de telefone para o qual enviar um código SMS.
companyName Não O nome da empresa no SMS. Se não for fornecido, o nome do seu aplicativo será usado.
locale Não A localidade do SMS. Se não for fornecido, a localidade do navegador do usuário será usada.

Declarações de saída

O provedor de protocolo de autenticação multifator do Microsoft Entra não retorna nenhuma declaração de saída, portanto, não há necessidade de especificar declarações de saída.

Metadados

O elemento Metadata contém o atributo a seguir.

Atributo Obrigatório Descrição
Operation Sim Deve ser OneWaySMS.
Elementos da interface do usuário

Os metadados a seguir podem ser usados para configurar as mensagens de erro exibidas após a falha de 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
UserMessageIfCouldntSendSms Não Mensagem de erro do usuário se o número de telefone fornecido não aceitar SMS.
UserMessageIfInvalidFormat Não Mensagem de erro do usuário se o número de telefone fornecido não for um número de telefone válido.
UserMessageIfServerError Não Mensagem de erro do usuário se o servidor tiver encontrado um erro interno.
UserMessageIfThrottled Não Mensagem de erro do usuário se uma solicitação tiver sido limitada.

Exemplo: enviar um SMS

O exemplo a seguir mostra um perfil técnico de autenticação multifator do Microsoft Entra ID que é usado para enviar um código via SMS.

<TechnicalProfile Id="AzureMfa-SendSms">
  <DisplayName>Send Sms</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">OneWaySMS</Item>
  </Metadata>
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CombinePhoneAndCountryCode" />
    <InputClaimsTransformation ReferenceId="ConvertStringToPhoneNumber" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
    <InputClaim ClaimTypeReferenceId="fullPhoneNumber" PartnerClaimType="phoneNumber" />
  </InputClaims>
</TechnicalProfile>

Verificar o código

A etapa de verificação de código verifica um código enviado ao usuário. As opções a seguir podem ser configuradas para esta etapa.

Declarações de entrada

O elemento InputClaims contém uma lista de declarações a serem enviadas para a autenticação multifator do Microsoft Entra. Você também pode mapear o nome de sua declaração para o nome definido no perfil técnico de MFA.

ReivindicaçãoReferênciaId Obrigatório Descrição
phoneNumber Sim O mesmo número de telefone usado anteriormente para enviar um código. Ele também é usado para localizar uma sessão de verificação por telefone.
verificationCode Sim O código de verificação fornecido pelo usuário a ser verificado

Declarações de saída

O provedor de protocolo de autenticação multifator do Microsoft Entra não retorna nenhuma declaração de saída, portanto, não há necessidade de especificar declarações de saída.

Metadados

O elemento Metadata contém o atributo a seguir.

Atributo Obrigatório Descrição
Operation Sim Deve ser Verify.
Elementos da interface do usuário

Os metadados a seguir podem ser usados para configurar as mensagens de erro exibidas em caso de falha na 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
UserMessageIfMaxAllowedCodeRetryReached Não Mensagem de erro do usuário se o usuário tiver tentado um código de verificação muitas vezes.
UserMessageIfServerError Não Mensagem de erro do usuário se o servidor tiver encontrado um erro interno.
UserMessageIfThrottled Não Mensagem de erro do usuário se a solicitação for limitada.
UserMessageIfWrongCodeEntered Não Mensagem de erro do usuário se o código inserido para verificação estiver errado.

Exemplo: verificar um código

O exemplo a seguir mostra um perfil técnico de autenticação multifator da ID do Microsoft Entra usado para verificar o código.

<TechnicalProfile Id="AzureMfa-VerifySms">
    <DisplayName>Verify Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    <Metadata>
        <Item Key="Operation">Verify</Item>
    </Metadata>
    <InputClaims>
        <InputClaim ClaimTypeReferenceId="phoneNumber" PartnerClaimType="phoneNumber" />
        <InputClaim ClaimTypeReferenceId="verificationCode" />
    </InputClaims>
</TechnicalProfile>

Modo TOTP

Nesse modo, o usuário deve instalar qualquer aplicativo autenticador que dê suporte à verificação de senha de uso único baseada em tempo (TOTP), como o aplicativo Microsoft Authenticator, em um dispositivo de sua propriedade.

Durante a primeira inscrição ou login, o usuário digitaliza um código QR, abre um link direto ou insere o código manualmente usando o aplicativo autenticador. Para verificar o código TOTP, use o Begin verify OTP seguido por Verify TOTP validation profiles técnicos.

Para entradas subsequentes, use o método Obter dispositivos disponíveis para verificar se o usuário já registrou seu dispositivo. Se o número de dispositivos disponíveis for maior que zero, isso indica que o usuário já se inscreveu antes. Nesse caso, o usuário precisa digitar o código TOTP que aparece no aplicativo autenticador.

O 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 , com os controles de exibição TOTP.
  • Usa o serviço de autenticação multifator do Microsoft Entra para validar o código TOTP.
  • Verifica se um usuário já registrou seu dispositivo.

A captura de tela a seguir mostra um fluxo de inscrição e verificação TOTP. Ele começa verificando o número de dispositivos disponíveis. Se o número de dispositivos disponíveis for zero, o usuário passará pela etapa de orquestração de registro. Caso contrário, o usuário passa pela etapa de orquestração de verificação.

Captura de tela mostrando o fluxo TOTP.

Obtenha dispositivos disponíveis

O modo de dispositivo disponível verifica o número de dispositivos disponíveis para o usuário. Se o número de dispositivos disponíveis for zero, isso indica que o usuário ainda não se registrou.

Declarações de entrada

O elemento InputClaims contém uma lista de declarações a serem enviadas para a autenticação multifator do Microsoft Entra. Você também pode mapear o nome de sua declaração para o nome definido no perfil técnico de MFA.

ReivindicaçãoReferênciaId Obrigatório Descrição
userPrincipalName Sim Nome principal do usuário.

Declarações de saída

O elemento de declarações de saída contém uma lista de declarações a serem retornadas da autenticação multifator do Microsoft Entra. Você também pode mapear o nome de sua declaração para o nome definido no perfil técnico de MFA.

ReivindicaçãoReferênciaId Obrigatório Descrição
numberOfAvailableDevices Sim O número de dispositivos disponíveis para o usuário.

Metadados

O elemento Metadata contém o atributo a seguir.

Atributo Obrigatório Descrição
Operation Sim Deve ser GetAvailableDevices.

Exemplo: Obter dispositivos disponíveis

O exemplo a seguir mostra um perfil técnico de autenticação multifator do Microsoft Entra ID usado para obter o número de dispositivos disponíveis.

<TechnicalProfile Id="AzureMfa-GetAvailableDevices">
  <DisplayName>Get Available Devices</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">GetAvailableDevices</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="numberOfAvailableDevices" />
  </OutputClaims>
</TechnicalProfile>

Iniciar verificar TOTP

O TOTP de verificação inicial inicia o processo de verificação. Esse perfil técnico de validação é chamado a partir do perfil técnico autodeclarado que apresenta e verifica códigos TOTP. Esse perfil técnico de validação deve ser seguido por uma chamada para Verificar perfis técnicos de validação TOTP .

Declarações de entrada

O elemento InputClaims contém uma lista de declarações a serem enviadas para a autenticação multifator do Microsoft Entra. Você também pode mapear o nome de sua declaração para o nome definido no perfil técnico de MFA.

ReivindicaçãoReferênciaId Obrigatório Descrição
userPrincipalName Sim Nome principal do usuário.
objectId Sim A ID do objeto do usuário.
secretKey Sim A chave secreta do usuário. Essa chave é armazenada no perfil do usuário no diretório do Azure AD B2C e é compartilhada com o aplicativo autenticador. O aplicativo autenticador usa o segredo para gerar o código TOTP. Esse perfil técnico usa o segredo para verificar o código TOTP.

Declarações de saída

O provedor de protocolo de autenticação multifator do Microsoft Entra não retorna nenhuma declaração de saída, portanto, não há necessidade de especificar declarações de saída.

Metadados

O elemento Metadata contém o atributo a seguir.

Atributo Obrigatório Descrição
Operation Sim Deve ser BeginVerifyOTP.

Exemplo: Iniciar verificação do TOTP

O exemplo a seguir mostra um perfil técnico de autenticação multifator do Microsoft Entra ID usado para iniciar o processo de verificação TOTP.

<TechnicalProfile Id="AzureMfa-BeginVerifyOTP">
  <DisplayName>Begin verify TOTP"</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">BeginVerifyOTP</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="secretKey" />
    <InputClaim ClaimTypeReferenceId="objectId" />
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
  </InputClaims>
</TechnicalProfile>

Verificar TOTP

O método verify TOTP verifica um código TOTP. Esse perfil técnico de validação é chamado a partir do perfil técnico autodeclarado que apresenta e verifica códigos TOTP. Esse perfil técnico de validação deve ser precedido por uma chamada para os perfis técnicos de validação TOTP de verificação de início.

Declarações de entrada

O elemento InputClaims contém uma lista de declarações a serem enviadas para a autenticação multifator do Microsoft Entra. Você também pode mapear o nome de sua declaração para o nome definido no perfil técnico de MFA.

ReivindicaçãoReferênciaId Obrigatório Descrição
otpCode Sim O código TOTP fornecido pelo usuário.

Declarações de saída

O provedor de protocolo de autenticação multifator do Microsoft Entra não retorna nenhuma declaração de saída, portanto, não há necessidade de especificar declarações de saída.

Metadados

O elemento Metadata contém o atributo a seguir.

Atributo Obrigatório Descrição
Operation Sim Deve ser VerifyOTP.

Exemplo: Verificar TOTP

O exemplo a seguir mostra um perfil técnico de autenticação multifator da ID do Microsoft Entra usado para verificar um código TOTP.

<TechnicalProfile Id="AzureMfa-VerifyOTP">
  <DisplayName>Verify OTP</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyOTP</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="otpCode" />
  </InputClaims>
</TechnicalProfile>

Próximas etapas