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.

Screenshot showing TOTP display controls enrollment flow

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:

  1. 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.
  2. Typ CreateIssuerprzekształcenia oświadczeń CreateStringClaim. Przekształcenie oświadczeń tworzy nazwę wystawcy TOTP. Nazwa wystawcy to Twoja nazwa dzierżawy, taka jak "Pokaz firmy Contoso".
  3. Typ CreateUriLabelprzekształ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ład Contoso demo:emily@fabrikam.com.
  4. Typ CreateUriStringprzekształ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ład otpauth://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.

Screenshot showing TOTP display controls verification flow

Następne kroki