عنصر تحكم عرض TOTP

استخدم عناصر التحكم في عرض كلمة المرور لمرة واحدة (TOTP) المستندة إلى الوقت لتمكين المصادقة متعددة العوامل باستخدام أسلوب TOTP. يحتاج المستخدمون النهائيون إلى استخدام تطبيق مصادقة يقوم بإنشاء رموز TOTP، مثل تطبيق Microsoft Authenticator أو أي تطبيق مصدّق آخر يدعم التحقق من TOTP.

لتمكين TOTP ضمن النهج المخصص الخاص بك، استخدم عناصر التحكم في العرض التالية:

  • totpQrCodeControl - تقديم رمز الاستجابة السريعة ورابط لمحتوى في تطبيق آخر. عندما يقوم المستخدم بمسح رمز الاستجابة السريعة أو يفتح الرابط العميق، يتم فتح تطبيق المصادقة حتى يتمكن المستخدم من إكمال عملية التسجيل.
  • AuthenticatorAppIconControl - تقديم رمز التطبيق Microsoft Authenticator مع وصلة لتحميل التطبيق إلى الجهاز المحمول للمستخدم.
  • AuthenticatorAppIconControl - تقديم مقدمة TOTP.

توضح لقطة الشاشة التالية صفحة التسجيل TOTP التي تعرض عناصر التحكم الثلاثة في العرض.

Screenshot showing TOTP display controls enrollment flow

تظهر قصاصة برمجية XML التالية عناصر التحكم الثلاثة للعرض:

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

يتم الرجوع إلى عناصر التحكم في العرض من ملف التعريف الفني المؤكد ذاتيًا. ويستخدم الملف التقني الذي يؤكد نفسه تحويل مطالبات المدخلات لإعداد المطالبات المطلوبة qrCodeContent وsecretKey المتعلقة بالمدخلات.

يجب استدعاء تحويلات مطالبات الإدخال بالترتيب التالي:

  1. CreateSecretنوع تحويل المطالبات من CreateOtpSecret. تحويل المطالبات بإنشاء مفتاح سري TOTP. يتم تخزين هذا المفتاح لاحقًا في ملف تعريف المستخدم في Azure AD لمتاجرة عمل-مستهلك ويتم مشاركته مع تطبيق المصدّق. يستخدم التطبيق المصدّق المفتاح لإنشاء تعليمة برمجية لـTOTP يحتاجها المستخدم للمرور عبر المصادقة متعددة العوامل. يستخدم النهج المخصص الخاص بك المفتاح للتحقق من صحة التعليمة البرمجية TOTP التي يوفرها المستخدم.
  2. CreateIssuerنوع تحويل المطالبات من CreateStringClaim. يقوم تحويل المطالبات بإنشاء اسم مُصدر TOTP. اسم المُصدر هو اسم المستأجر الخاص بك، مثل "عرض Contoso".
  3. CreateUriLabelنوع تحويل المطالبات من FormatStringMultipleClaims. يقوم تحويل المطالبات بإنشاء تسمية معرف موارد منتظم لـ TOTP. التسمية هي مزيج من المعرف الفريد للمستخدم، مثل عنوان البريد الإلكتروني واسم المصدر، على سبيل المثال.Contoso demo:emily@fabrikam.com
  4. CreateUriStringنوع تحويل المطالبات من BuildUri يقوم تحويل المطالبات بإنشاء سلسلة معرف موارد منتظم لـ TOTP. السلسلة هي مزيج من تسمية URI والمفتاح السري، على سبيل المثال. otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo يتم عرض تسمية URI هذه بواسطة عنصر تحكم العرض بتنسيق رمز الاستجابة السريعة ورابط لمحتوى في تطبيق آخر.

يظهر رمز XML التالي EnableOTPAuthenticationالملف التعريفي الفني المؤكد ذاتيًا مع تحويل مطالبات الإدخال الخاصة به ومطالبات الإدخال وعناصر التحكم في العرض.

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

تدفق التحقق

يتم إجراء التعليمة البرمجية لـ TOTP للتحقق من قبل ملف تعريف فني آخر مؤكد ذاتيًا يستخدم عرض المطالبات وملف تعريف فني للتحقق من الصحة. لمزيد من المعلومات، راجع تعريف ملف تعريف تقني للمصادقة متعددة العوامل لمعرف Microsoft Entra في نهج مخصص Azure AD B2C.

توضح لقطة الشاشة التالية صفحة التحقق من TOTP.

Screenshot showing TOTP display controls verification flow

الخطوات التالية