Definir um perfil técnico de autenticação multifator do Microsoft Entra ID em uma política personalizada do Azure AD B2C
O Azure Ative 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 (One-time Password - Senha de Uso Único) baseada no tempo.
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.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 a jornada 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 a partir de um perfil técnico autodeclarado ou um controle de exibição como um perfil técnico de validação.
- Usa o serviço de autenticação multifator 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 através de mensagens de texto.
O perfil técnico fornece métodos para enviar o código de verificação via mensagem de texto SMS e verificar o código. A captura de tela a seguir mostra o fluxo do verificador do telefone.
Enviar SMS
Para verificar um telefone, o primeiro passo gera um código e envia-o 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 à autenticação multifator do Microsoft Entra. Você também pode mapear o nome da sua reivindicação para o nome definido no perfil técnico do MFA.
ClaimReferenceId | Obrigatório | Descrição |
---|---|---|
userPrincipalName |
Sim | O identificador do usuário proprietário do 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 fornecida, a localidade do navegador do usuário será usada. |
Declarações de saída
O provedor de protocolo de autenticação multifator 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 seguinte atributo.
Atributo | Obrigatório | Descrição |
---|---|---|
Operation |
Sim | Deve ser OneWaySMS . |
Elementos da IU
Os metadados a seguir podem ser usados para configurar as mensagens de erro exibidas após o envio de falha de SMS. Os metadados devem ser configurados no perfil técnico autodeclarado . As mensagens de erro podem ser localizadas.
Atributo | Obrigatório | Description |
---|---|---|
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 utilizador 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 encontrou 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 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 à autenticação multifator do Microsoft Entra. Você também pode mapear o nome da sua reivindicação para o nome definido no perfil técnico do MFA.
ClaimReferenceId | 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 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 seguinte atributo.
Atributo | Obrigatório | Descrição |
---|---|---|
Operation |
Sim | Deve ser Verify . |
Elementos da IU
Os metadados a seguir podem ser usados para configurar as mensagens de erro exibidas após falha na verificação de código. Os metadados devem ser configurados no perfil técnico autodeclarado . As mensagens de erro podem ser localizadas.
Atributo | Obrigatório | Description |
---|---|---|
UserMessageIfMaxAllowedCodeRetryReached |
Não | Mensagem de erro do usuário se o usuário tentou um código de verificação muitas vezes. |
UserMessageIfServerError |
Não | Mensagem de erro do usuário se o servidor encontrou um erro interno. |
UserMessageIfThrottled |
Não | Mensagem de erro do usuário se a solicitação estiver limitada. |
UserMessageIfWrongCodeEntered |
Não | Mensagem de erro do utilizador se o código introduzido para verificação estiver errado. |
Exemplo: verificar um código
O exemplo a seguir mostra um perfil técnico de autenticação multifator do Microsoft Entra ID 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 ofereça suporte à verificação de senha única baseada no tempo (TOTP), como o aplicativo Microsoft Authenticator, em um dispositivo de sua propriedade.
Durante a primeira inscrição ou login, o usuário escaneia 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 Begin verify OTP seguido de Verify TOTP validation technical profiles.
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 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 a partir de um perfil técnico autodeclarado , com os controles de exibição TOTP.
- Usa o serviço de autenticação multifator 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 registro e verificação do TOTP. Começa por verificar 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.
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 inscreveu.
Declarações de entrada
O elemento InputClaims contém uma lista de declarações a serem enviadas à autenticação multifator do Microsoft Entra. Você também pode mapear o nome da sua reivindicação para o nome definido no perfil técnico do MFA.
ClaimReferenceId | Obrigatório | Descrição |
---|---|---|
userPrincipalName |
Sim | O 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 da sua reivindicação para o nome definido no perfil técnico do MFA.
ClaimReferenceId | Obrigatório | Descrição |
---|---|---|
numberOfAvailableDevices |
Sim | O número de dispositivos disponíveis para o usuário. |
Metadados
O elemento Metadata contém o seguinte atributo.
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>
Comece a verificar o TOTP
O TOTP start verify inicia o processo de verificação. Este perfil técnico de validação é chamado a partir do perfil técnico autoafirmado que apresenta e verifica os códigos TOTP. Este 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 à autenticação multifator do Microsoft Entra. Você também pode mapear o nome da sua reivindicação para o nome definido no perfil técnico do MFA.
ClaimReferenceId | Obrigatório | Descrição |
---|---|---|
userPrincipalName |
Sim | O nome principal do usuário. |
objectId |
Sim | O 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. Este 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 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 seguinte atributo.
Atributo | Obrigatório | Descrição |
---|---|---|
Operation |
Sim | Deve ser BeginVerifyOTP . |
Exemplo: Começar a verificar o 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. Este perfil técnico de validação é chamado a partir do perfil técnico autoafirmado que apresenta e verifica os códigos TOTP. Este perfil técnico de validação deve ser precedido por uma chamada para os perfis técnicos de validação Begin verify TOTP .
Declarações de entrada
O elemento InputClaims contém uma lista de declarações a serem enviadas à autenticação multifator do Microsoft Entra. Você também pode mapear o nome da sua reivindicação para o nome definido no perfil técnico do MFA.
ClaimReferenceId | 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 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 seguinte atributo.
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 do Microsoft Entra ID 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>