Controle de exibição TOTP
Use controles de exibição de senha única com base no tempo (TOTP) para habilitar a autenticação multifator usando o método TOTP. Os usuários finais precisam usar um aplicativo autenticador que gere códigos TOTP, como o aplicativo Microsoft Authenticator ou qualquer outro aplicativo autenticador que ofereça suporte à verificação TOTP.
Para habilitar o TOTP em sua política personalizada, use os seguintes controles de exibição:
- totpQrCodeControl - Renderize o código QR e um link profundo. Quando o usuário escaneia o código QR ou abre o deep link, o aplicativo autenticador é aberto para que o usuário possa concluir o processo de inscrição.
- AuthenticatorAppIconControl - Renderize o ícone do aplicativo Microsoft Authenticator com um link para baixar o aplicativo para o dispositivo móvel do usuário.
- AuthenticatorInfoControl - Renderize a introdução do TOTP.
A captura de tela a seguir ilustra a página de registro TOTP mostrando os três controles de exibição.
O trecho XML a seguir mostra os três controles de exibição:
<DisplayControls>
<!-- Render the QR code by taking the URI (qrCodeContent) input claim and rendering it as a QR code-->
<DisplayControl Id="totpQrCodeControl" UserInterfaceControlType="QrCodeControl">
<InputClaims>
<InputClaim ClaimTypeReferenceId="qrCodeContent" />
</InputClaims>
<DisplayClaims>
<DisplayClaim ClaimTypeReferenceId="qrCodeContent" ControlClaimType="QrCodeContent" />
</DisplayClaims>
</DisplayControl>
<!-- Render the TOTP information by taking the totpIdentifier and the secretKey input claims and rendering them in plain text-->
<DisplayControl Id="authenticatorInfoControl" UserInterfaceControlType="AuthenticatorInfoControl">
<InputClaims>
<InputClaim ClaimTypeReferenceId="totpIdentifier" />
<InputClaim ClaimTypeReferenceId="secretKey" />
</InputClaims>
<DisplayClaims>
<DisplayClaim ClaimTypeReferenceId="totpIdentifier" />
<DisplayClaim ClaimTypeReferenceId="secretKey" />
</DisplayClaims>
</DisplayControl>
<!-- Render the authenticator apps icon. -->
<DisplayControl Id="authenticatorAppIconControl" UserInterfaceControlType="AuthenticatorAppIconControl" />
</DisplayControls>
Os controles de exibição são referenciados a partir de um perfil técnico autoafirmado. O perfil técnico autoafirmado usa a transformação de declarações de entrada para preparar as declarações necessárias qrCodeContent
e secretKey
de entrada.
As transformações de declarações de entrada devem ser chamadas na seguinte ordem:
- O
CreateSecret
tipo de transformação de declarações de CreateOtpSecret. A transformação de declarações cria uma chave secreta TOTP. Essa chave é armazenada posteriormente no perfil do usuário no Azure AD B2C e é compartilhada com o aplicativo autenticador. O aplicativo autenticador usa a chave para gerar um código TOTP que o usuário precisa para passar pelo MFA. Sua política personalizada usa a chave para validar o código TOTP fornecido pelo usuário. - O
CreateIssuer
tipo de transformação de declarações de CreateStringClaim. A transformação de declarações cria o nome do emissor TOTP. O nome do emissor é o nome do locatário, como "Demonstração da Contoso". - O
CreateUriLabel
tipo de transformação de declarações de FormatStringMultipleClaims. A transformação de declarações cria o rótulo URI TOTP. O rótulo é uma combinação do identificador exclusivo do usuário, como endereço de e-mail, e o nome do emissor, por exemplo,Contoso demo:emily@fabrikam.com
. - O
CreateUriString
tipo de transformação de declarações de BuildUri. A transformação de declarações cria a cadeia de caracteres URI TOTP. A cadeia de caracteres é uma combinação do rótulo URI e da chave secreta, por exemplo,otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
. Esse rótulo de URI é processado pelo controle de exibição em um formato de código QR e um link profundo.
O código XML a seguir mostra o EnableOTPAuthentication
perfil técnico autodeclarado com sua transformação de declarações de entrada, declarações de entrada e controles de exibição.
<TechnicalProfile Id="EnableOTPAuthentication">
<DisplayName>Sign up with Authenticator app</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ContentDefinitionReferenceId">api.selfasserted.totp</Item>
<Item Key="language.button_continue">Continue</Item>
</Metadata>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
</CryptographicKeys>
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CreateSecret" />
<InputClaimsTransformation ReferenceId="CreateIssuer" />
<InputClaimsTransformation ReferenceId="CreateUriLabel" />
<InputClaimsTransformation ReferenceId="CreateUriString" />
</InputClaimsTransformations>
<InputClaims>
<InputClaim ClaimTypeReferenceId="qrCodeContent" />
<InputClaim ClaimTypeReferenceId="secretKey" />
</InputClaims>
<DisplayClaims>
<DisplayClaim DisplayControlReferenceId="authenticatorAppIconControl" />
<DisplayClaim ClaimTypeReferenceId="QrCodeScanInstruction" />
<DisplayClaim DisplayControlReferenceId="totpQrCodeControl" />
<DisplayClaim DisplayControlReferenceId="authenticatorInfoControl" />
</DisplayClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" />
<OutputClaim ClaimTypeReferenceId="secretKey" />
</OutputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-MFA-TOTP" />
</TechnicalProfile>
Fluxo de verificação
O código TOTP de verificação é feito por outro perfil técnico autodeclarado que usa declarações de exibição e um perfil técnico de validação. Para obter mais informações, consulte Definir um perfil técnico de autenticação multifator do Microsoft Entra ID em uma política personalizada do Azure AD B2C.
A captura de tela a seguir ilustra uma página de verificação TOTP.
Próximos passos
Saiba mais sobre a autenticação multifator em Habilitar autenticação multifator no Azure Ative Directory B2C
Saiba como validar um código TOTP em Definir um perfil técnico de autenticação multifator do Microsoft Entra ID.
Explore um exemplo de MFA do Azure AD B2C com TOTP usando qualquer política personalizada do aplicativo Authenticator no GitHub.