Ovládací prvek zobrazení TOTP

K povolení vícefaktorového ověřování pomocí metody TOTP použijte ovládací prvky zobrazení jednorázového hesla (TOTP). Koncoví uživatelé musí používat ověřovací aplikaci, která generuje kódy TOTP, jako je aplikace Microsoft Authenticator nebo jakákoli jiná ověřovací aplikace, která podporuje ověření TOTP.

Pokud chcete povolit toTP v rámci vlastních zásad, použijte následující ovládací prvky zobrazení:

  • totpQrCodeControl – vykreslí kód QR a přímý odkaz. Když uživatel naskenuje kód QR nebo otevře přímý odkaz, otevře se ověřovací aplikace, aby uživatel mohl dokončit proces registrace.
  • AuthenticatorAppIconControl – Vykreslí ikonu aplikace Microsoft Authenticator s odkazem ke stažení aplikace do mobilního zařízení uživatele.
  • AuthenticatorInfoControl – Vykreslení úvodu KTP

Následující snímek obrazovky znázorňuje stránku registrace TOTP zobrazující tři ovládací prvky zobrazení.

Screenshot showing TOTP display controls enrollment flow

Následující fragment kódu XML ukazuje tři ovládací prvky zobrazení:

  <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>

Na ovládací prvky zobrazení se odkazuje z technického profilu s vlastním kontrolním výrazem. Technický profil s vlastním uplatněním používá k přípravě požadovaných qrCodeContent a secretKey vstupních deklarací identity vstupní transformace deklarací identity.

Vstupní transformace deklarací identity musí být volány v následujícím pořadí:

  1. Typ CreateSecrettransformace deklarací identity CreateOtpSecret. Transformace deklarací identity vytvoří tajný klíč TOTP. Tento klíč se později uloží do profilu uživatele v Azure AD B2C a sdílí se s ověřovací aplikací. Ověřovací aplikace používá klíč k vygenerování kódu TOTP, který uživatel potřebuje projít vícefaktorovým ověřováním. Vaše vlastní zásada používá klíč k ověření kódu TOTP poskytnutého uživatelem.
  2. Typ CreateIssuertransformace deklarací identity CreateStringClaim. Transformace deklarací identity vytvoří název vystavitele TOTP. Název vystavitele je název vašeho tenanta, například "Contoso demo".
  3. Typ CreateUriLabeltransformace deklarací identity FormatStringMultipleClaims. Transformace deklarací identity vytvoří popisek identifikátoru URI TOTP. Popisek je kombinací jedinečného identifikátoru uživatele, například e-mailové adresy, a názvu vystavitele, Contoso demo:emily@fabrikam.comnapříklad .
  4. Typ CreateUriString transformace deklarací identity identifikátoru BuildUri. Transformace deklarací identity vytvoří řetězec identifikátoru URI TOTP. Řetězec je kombinací popisku identifikátoru URI a tajného klíče, otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demonapříklad . Tento popisek identifikátoru URI vykresluje ovládací prvek zobrazení ve formátu kódu QR a přímý odkaz.

Následující kód XML ukazuje EnableOTPAuthentication technický profil s vlastním asserted technickým profilem se vstupní transformací deklarací identity, vstupními deklaracemi a ovládacími prvky zobrazení.

<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>

Tok ověření

Ověřovací kód TOTP provádí jiný technický profil, který používá zobrazované deklarace identity a technický profil ověření. Další informace najdete v tématu Definování technického profilu vícefaktorového ověřování Microsoft Entra ID ve vlastních zásadách Azure AD B2C.

Následující snímek obrazovky znázorňuje stránku ověření totp.

Screenshot showing TOTP display controls verification flow

Další kroky