Controllo di visualizzazione TOTP
Usare i controlli di visualizzazione TOTP (One-Time Password) basati sul tempo per abilitare l'autenticazione a più fattori usando il metodo TOTP. Gli utenti finali devono usare un'app di autenticazione che genera codici TOTP, ad esempio l'app Microsoft Authenticator o qualsiasi altra app di autenticazione che supporta la verifica TOTP.
Per abilitare TOTP all'interno dei criteri personalizzati, usare i controlli di visualizzazione seguenti:
- totpQrCodeControl : eseguire il rendering del codice a matrice e di un collegamento diretto. Quando l'utente analizza il codice a matrice o apre il collegamento diretto, l'app di autenticazione viene aperta in modo che l'utente possa completare il processo di registrazione.
- AuthenticatorAppIconControl : eseguire il rendering dell'icona dell'app Microsoft Authenticator con un collegamento per scaricare l'app nel dispositivo mobile dell'utente.
- AuthenticatorInfoControl : eseguire il rendering dell'introduzione a TOTP.
Lo screenshot seguente illustra la pagina di registrazione TOTP che mostra i tre controlli di visualizzazione.
Il frammento XML seguente mostra i tre controlli di visualizzazione:
<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>
I controlli di visualizzazione vengono a cui viene fatto riferimento da un profilo tecnico autocertificato. Il profilo tecnico autocertificato usa la trasformazione delle attestazioni di input per preparare le attestazioni richieste e secretKey
di input necessarieqrCodeContent
.
Le trasformazioni delle attestazioni di input devono essere chiamate nell'ordine seguente:
- Tipo
CreateSecret
di trasformazione delle attestazioni di CreateOtpSecret. La trasformazione delle attestazioni crea una chiave privata TOTP. Questa chiave viene archiviata successivamente nel profilo dell'utente in Azure AD B2C e viene condivisa con l'app di autenticazione. L'app di autenticazione usa la chiave per generare un codice TOTP che l'utente deve passare tramite MFA. I criteri personalizzati usano la chiave per convalidare il codice TOTP fornito dall'utente. - Tipo
CreateIssuer
di trasformazione delle attestazioni di CreateStringClaim. La trasformazione delle attestazioni crea il nome dell'autorità emittente TOTP. Il nome dell'autorità emittente è il nome del tenant, ad esempio "Contoso demo". - Tipo
CreateUriLabel
di trasformazione delle attestazioni di FormatStringMultipleClaims. La trasformazione delle attestazioni crea l'etichetta URI TOTP. L'etichetta è una combinazione dell'identificatore univoco dell'utente, ad esempio l'indirizzo di posta elettronica e il nome dell'autorità emittente,Contoso demo:emily@fabrikam.com
ad esempio . - Tipo
CreateUriString
di trasformazione delle attestazioni di BuildUri. La trasformazione delle attestazioni crea la stringa URI TOTP. La stringa è una combinazione dell'etichetta URI e della chiave privata,otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
ad esempio . Il rendering di questa etichetta URI viene eseguito dal controllo display in formato di codice a matrice e da un collegamento diretto.
Il codice XML seguente mostra il EnableOTPAuthentication
profilo tecnico autocertificato con la trasformazione delle attestazioni di input, le attestazioni di input e i controlli di visualizzazione.
<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>
Flusso di verifica
Il codice TOTP di verifica viene eseguito da un altro profilo tecnico autocertificato che usa attestazioni di visualizzazione e un profilo tecnico di convalida. Per altre informazioni, vedere Definire un profilo tecnico di autenticazione a più fattori di Microsoft Entra ID in un criterio personalizzato di Azure AD B2C.
Lo screenshot seguente illustra una pagina di verifica TOTP.
Passaggi successivi
Altre informazioni sull'autenticazione a più fattori in Abilitare l'autenticazione a più fattori in Azure Active Directory B2C
Informazioni su come convalidare un codice TOTP in Definire un profilo tecnico di autenticazione a più fattori di Microsoft Entra ID.
Esplorare un esempio di Azure AD B2C MFA con TOTP usando qualsiasi criterio personalizzato dell'app Authenticator in GitHub.