Share via


TOTP-weergave besturingselement

Gebruik weergavebesturingselementen voor eenmalige wachtwoorden (TOTP) op basis van tijd om meervoudige verificatie in te schakelen met behulp van de TOTP-methode. Eindgebruikers moeten een authenticator-app gebruiken waarmee TOTP-codes worden gegenereerd, zoals de Microsoft Authenticator-app of een andere authenticator-app die ondersteuning biedt voor TOTP-verificatie.

Gebruik de volgende weergave besturingselementen om TOTP in te schakelen in uw aangepaste beleid:

  • totpQrCodeControl - De QR-code en een dieptekoppeling weergeven. Wanneer de gebruiker de QR-code scant of de dieptekoppeling opent, wordt de authenticator-app geopend, zodat de gebruiker het registratieproces kan voltooien.
  • AuthenticatorAppIconControl - Het pictogram van de Microsoft Authenticator-app weergeven met een koppeling om de app te downloaden naar het mobiele apparaat van de gebruiker.
  • AuthenticatorInfoControl - De TOTP-inleiding weergeven.

In de volgende schermopname ziet u de PAGINA TOTP-inschrijving met de drie weergave besturingselementen.

Screenshot showing TOTP display controls enrollment flow

Het volgende XML-fragment geeft de drie weergave besturingselementen weer:

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

Er wordt naar de weergave besturingselementen verwezen vanuit een zelf-gecontroleerd technisch profiel. Het zelf-gecontroleerde technische profiel gebruikt de transformatie van invoerclaims om de vereiste qrCodeContent en secretKey invoerclaims voor te bereiden.

De transformaties van invoerclaims moeten in de volgende volgorde worden aangeroepen:

  1. Het CreateSecret type claimtransformatie van CreateOtpSecret. De claimtransformatie maakt een TOTP-geheime sleutel. Deze sleutel wordt later opgeslagen in het profiel van de gebruiker in Azure AD B2C en wordt gedeeld met de authenticator-app. De authenticator-app gebruikt de sleutel om TOTP-codes te genereren wanneer de gebruiker MFA moet uitvoeren. Uw beleid gebruikt de sleutel om de TOTP-code van de gebruiker te valideren.
  2. Het CreateIssuer type claimtransformatie van CreateOtpSecret. Met de claimtransformatie wordt de naam van de TOTP-verlener gemaakt. De naam van de verlener is de naam van uw tenant, zoals 'Contoso demo'.
  3. Het CreateUriLabel type claimtransformatie van FormatStringMultipleClaims. De claimtransformatie maakt het TOTP URI-label. Het label is een combinatie van de unieke id van de gebruiker, zoals het e-mailadres en de naam van de verlener, Contoso demo:emily@fabrikam.combijvoorbeeld.
  4. Het CreateUriString type claimtransformatie van BuildUri. De claimtransformatie maakt het TOTP URI-label. De tekenreeks is een combinatie van het URI-label en de geheime sleutel, bijvoorbeeld otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo. Dit URI-label wordt weergegeven door het weergave besturingselement in een QR-code-indeling en een dieptekoppeling.

De volgende XML-code toont het EnableOTPAuthentication zelf-gecontroleerde technische profiel met de transformatie van invoerclaims, invoerclaims en weergave besturingselementen.

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

Verificatiestroom

De TOTP-verificatiecode wordt uitgevoerd door een ander zelf-gecontroleerd technisch profiel dat weergaveclaims en een technisch validatieprofiel gebruikt. Zie Een technisch profiel voor meervoudige verificatie voor Microsoft Entra ID definiƫren in een aangepast Azure AD B2C-beleid voor meer informatie.

In de volgende schermopname ziet u een TOTP-verificatiepagina.

Screenshot showing TOTP display controls verification flow

Volgende stappen