Controle de exibição TOTP
Use os controles de exibição de senha única baseada em 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 de suporte à verificação de TOTP.
Para habilitar o TOTP em sua política personalizada, use os seguintes controles de exibição:
- totpQrCodeControl - Renderizar o código QR e um link profundo. Quando o usuário examina o código QR ou abre o link profundo, o aplicativo autenticador é aberto para que o usuário possa concluir o processo de registro.
- AuthenticatorAppIconControl - Renderizar o ícone do aplicativo Microsoft Authenticator com um link para baixar o aplicativo no dispositivo móvel do usuário.
- AuthenticatorInfoControl - Renderizar 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 snippet 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 por um perfil técnico autodeclarado. O perfil técnico autodeclarado usa a transformação de declarações de entrada para preparar as declarações de entrada qrCodeContent
e secretKey
necessárias.
As transformações de declarações de entrada devem ser chamadas na seguinte ordem:
- O tipo de transformação de declarações
CreateSecret
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 pela MFA. Sua política personalizada usa a chave para validar o código TOTP fornecido pelo usuário. - O tipo de transformação de declarações
CreateIssuer
de CreateStringClaim. A transformação de declarações cria o nome do emissor da TOTP. O nome do emissor é o nome do locatário, como "Demonstração da Contoso". - O tipo de transformação de declarações
CreateUriLabel
de FormatStringMultipleClaims. A transformação de declarações cria o rótulo do URI de TOTP. O rótulo é uma combinação do identificador exclusivo do usuário, como o endereço de email, com o nome do emissor, por exemplo,Contoso demo:emily@fabrikam.com
. - O tipo de transformação de declarações
CreateUriString
de BuildUri. A transformação de declarações cria a cadeia de caracteres do URI de TOTP. A cadeia de caracteres é uma combinação do rótulo do URI e da chave secreta, por exemplo,otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
. Esse rótulo do URI é renderizado pelo controle de exibição em um formato de código QR e um link profundo.
O código XML a seguir mostra o perfil técnico autodeclarado EnableOTPAuthentication
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 de TOTP.
Próximas etapas
Saiba mais sobre a autenticação multifator em Habilitar autenticação multifator no Azure Active 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 com TOTP do Azure AD B2C usando qualquer política personalizada do aplicativo Authenticator no GitHub.