Kontrolka wyświetlania TOTP
Użyj kontrolek wyświetlania hasła jednorazowego (TOTP) opartego na czasie, aby włączyć uwierzytelnianie wieloskładnikowe przy użyciu metody TOTP. Użytkownicy końcowi muszą używać aplikacji wystawcy uwierzytelniającego, która generuje kody TOTP, takie jak aplikacja Microsoft Authenticator lub inna aplikacja wystawcy uwierzytelniania, która obsługuje weryfikację TOTP.
Aby włączyć funkcję TOTP w ramach zasad niestandardowych, użyj następujących kontrolek wyświetlania:
- totpQrCodeControl — renderuj kod QR i link bezpośredni. Gdy użytkownik skanuje kod QR lub otwiera link bezpośredni, zostanie otwarta aplikacja authenticator, aby użytkownik mógł ukończyć proces rejestracji.
- AuthenticatorAppIconControl — renderuj ikonę aplikacji Microsoft Authenticator za pomocą linku, aby pobrać aplikację na urządzenie przenośne użytkownika.
- AuthenticatorInfoControl — renderuj wprowadzenie DOTP.
Poniższy zrzut ekranu przedstawia stronę rejestracji TOTP z trzema kontrolkami wyświetlania.
Poniższy fragment kodu XML przedstawia trzy kontrolki wyświetlania:
<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>
Kontrolki wyświetlania są przywoływane z własnego profilu technicznego. Własny profil techniczny używa transformacji oświadczeń wejściowych w celu przygotowania wymaganych qrCodeContent
i secretKey
wejściowych oświadczeń.
Przekształcenia oświadczeń wejściowych muszą być wywoływane w następującej kolejności:
CreateSecret
Typ przekształcenia oświadczeń CreateOtpSecret. Przekształcenie oświadczeń tworzy klucz tajny TOTP. Ten klucz jest później przechowywany w profilu użytkownika w usłudze Azure AD B2C i jest udostępniany aplikacji authenticator. Aplikacja authenticator używa klucza do wygenerowania kodu TOTP, który użytkownik musi przejść przez uwierzytelnianie wieloskładnikowe. Zasady niestandardowe używają klucza do weryfikowania kodu TOTP dostarczonego przez użytkownika.- Typ
CreateIssuer
przekształcenia oświadczeń CreateStringClaim. Przekształcenie oświadczeń tworzy nazwę wystawcy TOTP. Nazwa wystawcy to Twoja nazwa dzierżawy, taka jak "Pokaz firmy Contoso". - Typ
CreateUriLabel
przekształcenia oświadczeń FormatStringMultipleClaims. Przekształcenie oświadczeń tworzy etykietę identyfikatora URI TOTP. Etykieta jest kombinacją unikatowego identyfikatora użytkownika, takiego jak adres e-mail i nazwa wystawcy, na przykładContoso demo:emily@fabrikam.com
. - Typ
CreateUriString
przekształcenia oświadczeń BuildUri. Przekształcenie oświadczeń tworzy ciąg identyfikatora URI TOTP. Ciąg jest kombinacją etykiety identyfikatora URI i klucza tajnego, na przykładotpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
. Ta etykieta identyfikatora URI jest renderowana przez kontrolkę wyświetlania w formacie kodu QR i link bezpośredni.
Poniższy kod XML przedstawia EnableOTPAuthentication
własny profil techniczny z transformacją oświadczeń wejściowych, oświadczeniami wejściowymi i kontrolkami wyświetlania.
<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>
Przepływ weryfikacji
Kod WERYFIKACJi TOTP jest wykonywany przez inny własny profil techniczny, który używa wyświetlania oświadczeń i profilu technicznego weryfikacji. Aby uzyskać więcej informacji, zobacz Definiowanie profilu technicznego uwierzytelniania wieloskładnikowego identyfikatora firmy Microsoft w zasadach niestandardowych usługi Azure AD B2C.
Poniższy zrzut ekranu przedstawia stronę weryfikacji TOTP.
Następne kroki
Dowiedz się więcej o uwierzytelnianiu wieloskładnikowym w artykule Włączanie uwierzytelniania wieloskładnikowego w usłudze Azure Active Directory B2C
Dowiedz się, jak zweryfikować kod TOTP w artykule Definiowanie profilu technicznego uwierzytelniania wieloskładnikowego identyfikatora firmy Microsoft.
Zapoznaj się z przykładową usługą Azure AD B2C MFA z usługą TOTP przy użyciu dowolnych niestandardowych zasad aplikacji Authenticator w usłudze GitHub.