TOTP-visningskontroll
Använd visningskontroller för tidsbaserade engångslösenord (TOTP) för att aktivera multifaktorautentisering med hjälp av TOTP-metoden. Slutanvändare måste använda en autentiseringsapp som genererar TOTP-koder, till exempel Microsoft Authenticator-appen eller någon annan autentiseringsapp som stöder TOTP-verifiering.
Om du vill aktivera TOTP i din anpassade princip använder du följande visningskontroller:
- totpQrCodeControl – Rendera QR-koden och en djuplänk. När användaren söker igenom QR-koden eller öppnar den djupa länken öppnas autentiseringsappen så att användaren kan slutföra registreringsprocessen.
- AuthenticatorAppIconControl – Rendera appikonen för Microsoft Authenticator med en länk för att ladda ned appen till användarens mobila enhet.
- AuthenticatorInfoControl – Rendera TOTP-introduktionen.
Följande skärmbild visar sidan TOTP-registrering som visar de tre visningskontrollerna.
Följande XML-kodfragment visar de tre visningskontrollerna:
<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>
Visningskontrollerna refereras från en självkontrollerad teknisk profil. Den självsäkra tekniska profilen använder transformering av indataanspråk för att förbereda nödvändiga qrCodeContent
och secretKey
indataanspråk.
Omvandlingar av indataanspråk måste anropas i följande ordning:
- Anspråkstransformeringstypen
CreateSecret
CreateOtpSecret. Anspråkstransformeringen skapar en TOTP-hemlighetsnyckel. Den här nyckeln lagras senare i användarens profil i Azure AD B2C och delas med autentiseringsappen. Autentiseringsappen använder nyckeln för att generera en TOTP-kod som användaren behöver gå igenom MFA. Din anpassade princip använder nyckeln för att verifiera TOTP-koden som tillhandahålls av användaren. - Anspråkstransformeringstypen
CreateIssuer
CreateStringClaim. Anspråkstransformeringen skapar TOTP-utfärdarnamnet. Utfärdarnamnet är ditt klientnamn, till exempel "Contoso demo". - Anspråkstransformeringstypen
CreateUriLabel
FormatStringMultipleClaims. Anspråkstransformeringen skapar TOTP-URI-etiketten. Etiketten är en kombination av användarens unika identifierare, till exempel e-postadress och utfärdarnamnet,Contoso demo:emily@fabrikam.com
till exempel . - Anspråkstransformeringstypen
CreateUriString
för BuildUri. Anspråkstransformeringen skapar TOTP-URI-strängen. Strängen är en kombination av URI-etiketten och den hemliga nyckeln,otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
till exempel . Den här URI-etiketten återges av visningskontrollen i ett QR-kodformat och en djuplänk.
Följande XML-kod visar den EnableOTPAuthentication
självsäkra tekniska profilen med dess transformering av indataanspråk, indataanspråk och visningskontroller.
<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>
Verifieringsflöde
Verifieringens TOTP-kod görs av en annan självkontrollerad teknisk profil som använder visningsanspråk och en teknisk valideringsprofil. Mer information finns i Definiera en teknisk profil för Microsoft Entra-ID för multifaktorautentisering i en anpassad Azure AD B2C-princip.
Följande skärmbild visar en TOTP-verifieringssida.
Nästa steg
Läs mer om multifaktorautentisering i Aktivera multifaktorautentisering i Azure Active Directory B2C
Lär dig hur du verifierar en TOTP-kod i Definiera en teknisk profil för Microsoft Entra-ID för multifaktorautentisering.
Utforska ett exempel på Azure AD B2C MFA med TOTP med hjälp av en anpassad princip för Authenticator-appar i GitHub.