تعيين ملف تعريف فني لكلمة مرور لمرة واحدة في نهج مخصص لـ Azure AD B2C
ملاحظة
في Azure Active Directory B2C، تم تصميم النُهج المخصصة بشكل أساسي لمعالجة السيناريوهات المعقدة. بالنسبة إلى معظم السيناريوهات، نوصي باستخدام تدفقات المستخدم المضمنة. إذا لم تقم بذلك، تعرف على حزمة بادئ النهج المخصصة في البدء باستخدام النهج المخصصة في Active Directory B2C.
يوفر Azure Active Directory B2C (Azure AD B2C) الدعم اللازم لإنشاء كلمة مرور لمرة واحدة والتحقق منها. استخدم ملف تعريف فنيًا لإنشاء رمز ثم تحقق من هذه التعليمة البرمجية لاحقًا.
يمكن كذلك أن يرجع الملف التعريفي التقني لكلمة المرور لمرة واحدة لرسالة خطأ في أثناء التحقق من التعليمات البرمجية. تصميم التكامل مع كلمة المرور لمرة واحدة باستخدام ملف تعريف فني التحقق من الصحة. يحلل ملف تعريف فني التحقق من صحة التشكيل الجانبي التقني لكلمة المرور لمرة واحدة للتحقق من التعليمات البرمجية. يتحقق ملف التعريف الفني من صحة البيانات التي يوفرها المستخدم قبل متابعة رحلة المستخدم. مع ملف التعريف التقني للتحقق من الصحة، يتم عرض رسالة خطأ على صفحة ذاتية التأكيد.
البروتوكول
يجب تعيين سمة اسم عنصر البروتوكول على Proprietary
. يجب أن تحتوي سمة المعالج على الاسم المؤهل بالكامل لتجميع معالج البروتوكول المستخدم من قِبل Azure AD B2C:
Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
يظهر المثال التالي ملف تعريف فني لكلمة مرور لمرة واحدة:
<TechnicalProfile Id="VerifyCode">
<DisplayName>Validate user input verification code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
...
إنشاء التعليمات البرمجية
الوضع الأول من هذا الملف التقني هو إنشاء تعليمات برمجية. فيما يلي الخيارات التي يمكن تكوينها لهذا الوضع. يتم تعقب التعليمات البرمجية التي تم إنشاؤها والمحاولات داخل الجلسة.
مطالبات الإدخال
يحتوي عنصر مطالبات الإدخال على قائمة المطالبات المطلوبة لإرسالها إلى موفر بروتوكول كلمة المرور لمرة واحدة. يمكنك أيضًا تعيين اسم مطالبتك بالاسم المحدد أدناه.
معرف المطالبة | مطلوب | الوصف |
---|---|---|
معرف | نعم | المعرف لتعريف المستخدم الذي يحتاج إلى التحقق من التعليمات البرمجية لاحقًا. ويستخدم عادة كمعرف للوجهة التي يتم تسليم التعليمات البرمجية إليها، على سبيل المثال عنوان البريد الإلكتروني أو رقم الهاتف. |
قد يحتوي عنصر تحويلات مطالبات الإدخال على مجموعة من عناصر تحويلات مطالبات الإدخال التي تستخدم لتعديل مطالبات الإدخال أو إنشاء مطالبات جديدة قبل إرسالها إلى موفر بروتوكول كلمة المرور لمرة واحدة.
مطالبات الإدخال
يحتوي عنصر مطالبات الإدخال على قائمة المطالبات المطلوبة لإرسالها إلى موفر بروتوكول كلمة المرور لمرة واحدة. يمكنك أيضًا تعيين اسم مطالبتك بالاسم المحدد أدناه.
معرف المطالبة | مطلوب | الوصف |
---|---|---|
غير متجانسة | نعم | التعليمات البرمجية التي تم إنشاؤها، والتي تتم إدارة جلسة العمل الخاصة بها بواسطة Azure AD B2C. |
قد يحتوي عنصر OutputClaimsTransformations على مجموعة من عناصر OutputClaimsTransformation التي تستخدم لتعديل مطالبات الإخراج أو إنشاء مطالبات جديدة.
بيانات التعريف
يمكن استخدام الإعدادات التالية لتكوين وضع إنشاء التعليمات البرمجية:
السمة | مطلوب | الوصف |
---|---|---|
التشغيل | نعم | العملية المطلوب تنفيذها. القيم المحتملة: GenerateCode . |
شرح التعليمات البرمجية في ثانية | لا | الوقت بالثواني حتى انتهاء صلاحية التعليمات البرمجية. الحد الأدنى: 60 ؛ الحد الأقصى: 1200 ؛ الافتراضي: 600 . في كل مرة يتم توفير تعليمات برمجية (نفس التعليمات البرمجية باستخدام ReuseSameCode ، أو تعليمات برمجية جديد) ، ويتم تمديد انتهاء صلاحية التعليمات البرمجية. يتم استخدام هذه المرة أيضًا لتعيين مهلة إعادة المحاولة (بمجرد الوصول إلى أقصى المحاولات، يتم تأمين المستخدم من محاولة الحصول على تعليمات برمجية جديدة حتى انتهاء صلاحية هذا الوقت) |
طول التعليمات البرمجية | لا | طول التعليمات البرمجية. القيمة الافتراضية هي 6 . |
مجموعة الأحرف | لا | مجموعة الأحرف للتعليمات البرمجية، منسقة للاستخدام في تعبير عادي. على سبيل المثال، a-z0-9A-Z . القيمة الافتراضية هي 0-9 . يجب أن تتضمن مجموعة الأحرف 10 أحرف مختلفة كحد أدنى في المجموعة المحددة. |
عدد عمليات إعادة المحاولة | لا | عدد محاولات التحقق قبل اعتبار التعليمات البرمجية غير صالحة. القيمة الافتراضية هي 5 . على سبيل المثال، إذا قمت بتعيين NumRetryAttempts إلى 2 فإنه سيسمح لك فقط 2 محاولات في المجموع (أولاً + 1 إعادة المحاولة). للمحاولة الثالثة سوف يتم الوصول إلى أقصى محاولات الوصول بصرف النظر عما إذا كان الرمز هو الصحيح أم لا. |
الحد الأدنى من محاولات إنشاء التعليمات البرمجية | لا | عدد محاولات إنشاء التعليمات البرمجية القصوى لكل معرف. القيمة الافتراضية إذا 10 لم يتم تحديدها. |
إعادة استخدام نفس التعليمات البرمجية | لا | ما إذا كان يجب إعطاء نفس التعليمات البرمجية بدلاً من إنشاء رمز جديد عند إعطاء تعليمات البرمجية لم تنته صلاحيتها ولا تزال صالحة. القيمة الافتراضية هي false . |
مثال
يستخدم المثال التالي TechnicalProfile
لإنشاء التعليمات برمجية:
<TechnicalProfile Id="GenerateCode">
<DisplayName>Generate Code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">GenerateCode</Item>
<Item Key="CodeExpirationInSeconds">600</Item>
<Item Key="CodeLength">6</Item>
<Item Key="CharacterSet">0-9</Item>
<Item Key="NumRetryAttempts">5</Item>
<Item Key="NumCodeGenerationAttempts">10</Item>
<Item Key="ReuseSameCode">false</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="identifier" PartnerClaimType="identifier" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="otpGenerated" PartnerClaimType="otpGenerated" />
</OutputClaims>
</TechnicalProfile>
التحقق من الرمز
الوضع الثاني من هذا التشكيل الجانبي التقني هو التحقق من التعليمات البرمجية. فيما يلي الخيارات التي يمكن تكوينها لهذا الوضع.
مطالبات الإدخال
يحتوي عنصر مطالبات الإدخال على قائمة المطالبات المطلوبة لإرسالها إلى موفر بروتوكول كلمة المرور لمرة واحدة. يمكنك أيضًا تعيين اسم مطالبتك بالاسم المحدد أدناه.
معرف المطالبة | مطلوب | الوصف |
---|---|---|
معرف | نعم | المعرف لتعريف المستخدم الذي قام بإنشاء التعليمات البرمجية مسبقًا. ويستخدم عادة كمعرف للوجهة التي يتم تسليم التعليمات البرمجية إليها، على سبيل المثال عنوان البريد الإلكتروني أو رقم الهاتف. |
otp للتحقيق | نعم | رمز التحقق الذي يقدمه المستخدم. |
قد يحتوي عنصر تحويلات مطالبات الإدخال على مجموعة من عناصر تحويلات مطالبات الإدخال التي تستخدم لتعديل مطالبات الإدخال أو إنشاء مطالبات جديدة قبل إرسالها إلى موفر بروتوكول كلمة المرور لمرة واحدة.
مطالبات الإدخال
لا توجد مطالبات إخراج المقدمة في أثناء التحقق من التعليمات البرمجية من موفر البروتوكول هذا.
قد يحتوي عنصر OutputClaimsTransformations على مجموعة من عناصر OutputClaimsTransformation التي تستخدم لتعديل مطالبات الإخراج أو إنشاء مطالبات جديدة.
بيانات التعريف
يمكن استخدام الإعدادات التالية لوضع التحقق من التعليمات البرمجية:
السمة | مطلوب | الوصف |
---|---|---|
التشغيل | نعم | العملية المطلوب تنفيذها. القيمة الممكنة: VerifyCode |
عناصر واجهة المستخدم
يمكن استخدام بيانات التعريف التالية لتكوين رسائل الخطأ المعروضة عند فشل التحقق من الرموز. ينبغي تكوين بيانات التعريف في ملف التعريف التقني المؤكد ذاتياً. يمكن ترجمة رسائل الخطأ.
السمة | مطلوب | الوصف |
---|---|---|
رسالة للمستخدم في حالة عدم توافر الجلسة (UserMessageIfSessionDoesNotExist) | لا | الرسالة التي سيتم عرضها للمستخدم إذا انتهت صلاحية جلسة التحقق من الرمز. إما أن يكون الرمز قد انتهت صلاحيته أو لم يتم إنشاء الرمز لمعرف معين. |
رسالة للمستخدم في حالة تخطي الحد الأقصى من مرات إعادة المحاولة | لا | الرسالة التي سيتم عرضها للمستخدم إذا تجاوز الحد الأقصى المسموح به لمحاولات التحقق. |
رسالة للمستخدم إذا تم إنشاء أقصى عدد من الرموز (UserMessageIfMaxNumberOfCodeGenerated) | لا | الرسالة التي سيتم عرضها للمستخدم إذا تجاوز إنشاء الرمز الحد الأقصى لعدد المحاولات المسموح بها. |
رسالة للمستخدم في حالة رمز غير صالح (UserMessageIfInvalidCode) | لا | الرسالة التي سيتم عرضها للمستخدم إذا قام بتوفير رمز غير صالح. |
رسالة للمستخدم في حالة فشل التحقق والسماح بإعادة المحاولة (UserMessageIfVerificationFailedRetryAllowed) | لا | الرسالة التي سيتم عرضها للمستخدم إذا قام بتوفير رمز غير صالح، ويسمح للمستخدم بتوفير الرمز الصحيح. |
رسالة للمستخدم إذا كان هناك تعارض في الجلسة (UserMessageIfSessionConflict) | لا | الرسالة التي سيتم عرضها للمستخدم إذا تعذر التحقق من التعليمات البرمجية. |
مثال
يستخدم المثال التالي TechnicalProfile
لإنشاء التعليمات البرمجية:
<TechnicalProfile Id="VerifyCode">
<DisplayName>Verify Code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">VerifyCode</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="identifier" PartnerClaimType="identifier" />
<InputClaim ClaimTypeReferenceId="otpGenerated" PartnerClaimType="otpToVerify" />
</InputClaims>
</TechnicalProfile>
الخطوات التالية
راجع المقالة التالية، على سبيل المثال من لاستخدام الملف التقني كلمة المرور لمرة واحدة مع التحقق من البريد الإلكتروني المخصص: