تمكين خيارات المصادقة في تطبيق ويب Python باستخدام متاجرة عمل-مستهلك عبر دليل Azure النشط

توضح هذه المقالة كيفية تمكين تجربة مصادقة متاجرة عمل-مستهلك عبر دليل Azure النشط وتخصيصها وتحسينها لتطبيق الويب Python الخاص بك.

قبل البدء، من المهم التعرف على كيفية تكوين المصادقة في نموذج تطبيق ويب Python باستخدام متاجرة عمل-مستهلك عبر دليل Azure النشط.

استخدام مجال مخصص

باستخدام custom domain، يمكنك وضع علامة تجارية كاملة على عنوان URL للمصادقة. من منظور المستخدم، يظل المستخدمون في المجال الخاص بك أثناء عملية المصادقة، بدلاً من إعادة توجيههم إلى اسم مجال Microsoft Azure Active Directory B2C b2clogin.com.

لإزالة كافة الإشارات إلى "b2c" في عنوان URL، يمكنك أيضاً استبدال اسم مستأجر B2C الخاص بك، contoso.onmicrosoft.com، في عنوان URL لطلب المصادقة مع معرف المستأجر GUID. على سبيل المثال، يمكن تغييرhttps://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/ إلىhttps://account.contosobank.co.uk/<tenant ID GUID>/.

لاستخدام مجال مخصص ومعرف المستأجر في عنوان URL للمصادقة:

  1. اتبع التوجيهات الواردة في تمكين المجالات المخصصة.
  2. في ملف app_config.py، قم بتحديث عضو الفئة authority_template مع المجال المخصص الخاص بك.

يُظهر رمز Python التالي إعدادات التطبيق قبل التغيير:

authority_template = "https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{user_flow}"

يُظهر رمز Python التالي إعدادات التطبيق بعد التغيير:

authority_template = "https://custom.domain.com/00000000-0000-0000-0000-000000000000/{user_flow}" 

ملء اسم تسجيل الدخول مسبقًا

أثناء قيام المستخدم بتسجيل الدخول، قد يستهدف تطبيقك مستخدماً معيناً. عندما يستهدف أحد التطبيقات مستخدماً، يمكنه تحديد معلمة طلب البحث login_hint في طلب التفويض باسم تسجيل دخول المستخدم. يملأ Microsoft Azure Active Directory B2C اسم تسجيل الدخول تلقائياً، ويحتاج المستخدم إلى توفير كلمة المرور فقط.

من أجل ملء اسم تسجيل الدخول مسبقًا، قم بما يلي:

  1. لو كنت تستخدم نهجًا مخصصًا، فأضف مطالبة الإدخال المطلوبة، كما هو موضح في إعداد تسجيل الدخول المباشر.
  2. ابحث عن أسلوب initiate_auth_code_flow ثم أضف المعلمة login_hint مع اسم المجال موفر الهوية (على سبيل المثال، facebook.com).
def _build_auth_code_flow(authority=None, scopes=None):
    return _build_msal_app(authority=authority).initiate_auth_code_flow(
        scopes or [],
        redirect_uri=url_for("authorized", _external=True),
        login_hint="bob@contoso.com")

حدد موفر الهوية مسبقًا

إذا قمت بتكوين رحلة «sign-in» لتطبيقك من أجل تضمين الحسابات الاجتماعية، مثل Facebook أو LinkedIn أو Google، يمكنك تحديد المعلمة domain_hint. توفر معلمة الاستعلام تلميح إلى Azure AD B2C حول موفر الهوية الاجتماعية التي يجب استخدامها لـ «sign-in». على سبيل المثال، إذا حدد التطبيق domain_hint=facebook.com، ينتقل تدفق تسجيل الدخول مباشرة إلى صفحة تسجيل الدخول إلى Facebook.

لإعادة توجيه المستخدمين إلى موفر هوية خارجي، قم بما يلي:

  1. تحقق من اسم المجال لموفر الهوية الخارجي الخاص بك. لمزيد من المعلومات، راجع إعادة توجيه تسجيل الدخول إلى موفر الخدمة الاجتماعي.

  2. ابحث عن أسلوب initiate_auth_code_flow، ثم أضف المعلمة domain_hint مع تلميح تسجيل الدخول.

    def _build_auth_code_flow(authority=None, scopes=None):
        return _build_msal_app(authority=authority).initiate_auth_code_flow(
            scopes or [],
            redirect_uri=url_for("authorized", _external=True),
            domain_hint="facebook.com")
    

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