أضف AD FS كموفر هوية OpenID Connect باستخدام نهج مخصص في Azure Active Directory B2C

قبل أن تبدأ استخدم اختر نوع النهجالمحدد لاختيار نوع النهج التي تقوم بإعدادها. يوفر Azure Active Directory B2C طريقتين لتحديد كيفية تفاعل المستخدمين مع تطبيقاتك: من خلال تدفقات محددة مسبقا للمستخدمين أو من خلال سياسات مخصصة قابلة للتكوين بشكل كامل. تختلف الخطوات المطلوبة في هذه المقالة لكل أسلوب.

المتطلبات الأساسية

أنشئ تطبيق AD FS

لتمكين تسجيل الدخول للمستخدمين الذين لديهم حساب AD FS في Azure Active Directory B2C (Azure AD B2C)، أنشئ مجموعة تطبيقات في AD FS. لمزيد من المعلومات، راجعإنشاء تطبيق ويب باستخدام OpenID Connect with AD FS 2016 والإصدارات الأحدث

لإنشاء مجموعة تطبيقات، اتبع الخطوات التالية:

  1. في إدارة الخادم، حدد أدوات، ثم حدد إدارة AD FS.
  2. في إدارة AD FS، انقر بزر الماوس الأيمن على مجموعات التطبيقات وحدد إضافة مجموعة التطبيقات.
  3. على شاشة الترحيب معالج مجموعة التطبيقات:
    1. أدخل اسم التطبيق. على سبيل المثال، تطبيق Azure AD B2C.
    2. ضمن تطبيقات Client-Server، حدد مستعرض ويب الذي يصل إلى قالب تطبيق ويب.
    3. حدد التالي.
  4. على شاشة التطبيق الأصلي لمعالج مجموعة التطبيقات:
    1. انسخ قيمة معرف العميل. معرف العميل هو معرف تطبيقAD FS الخاص بك. ستحتاج إلى معرف التطبيق لاحقاً في هذه المقالة.
    2. في إعادة توجيه عنوان URI، أدخل https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp، ثم إضافة. إذا كنت تستخدم مجالاً مخصصاً، أدخل https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. استبدال your-tenant-nameباسم المستأجر الخاص بك، your-domain-nameوبمجالك المخصص.
    3. حدد التالي، ثم التالي ثم التالي مجددًا لإكمال معالج تسجيل التطبيق.
    4. حدد إغلاق.

تكوين مطالبات التطبيق

في هذه الخطوة، قم بتكوين مطالبات إرجاع تطبيق AD FS إلى Azure AD B2C.

  1. في مجموعات التطبيقات، حدد التطبيق الذي تم إنشاؤه.

  2. في إطار خصائص التطبيق، ضمن التطبيقات، حدد تطبيق ويب. ثم حدد Edit Screenshot that shows how to edit a web application.

  3. حدد علامة التبويب قواعد تحويل الإصدار. ثم حدد إضافة قاعدة.

  4. في قالب قاعدة المطالبة، حدد إرسال سمات LDAP كمطالبات، ثم التالي.

  5. توفير اسم قاعدة المطالبة. بالنسبة إلى مخزن السمة، حدد Active Directory، وأضِف المطالبات التالية.

    سمة LDAP نوع المطالبة الصادرة
    اسم المستخدم الأساسي upn
    اللقب اسم اللقب
    given_name الاسم_المحدد
    اسم العرض الاسم

    ملاحظة: لن يتم عرض بعض الأسماء في القائمة المنسدلة نوع المطالبة الصادرة. تحتاج إلى كتابتها يدويًا في (المنسدلة قابلة للتحرير).

  6. حدد إنهاء.

  7. حدد تطبيق ثم موافق.

  8. حدد موافق مرة أخرى للإنهاء.

كوّن AD FS كموفر هوية

  1. سجّل الدخول إلى مدخل Azure بصفتك المسؤول العام عن مستأجر Azure AD B2C.

  2. إذا كان لديك حق الوصول إلى عدة مستأجرين، فحدد رمز الإعدادات في القائمة العلوية للتبديل إلى مستأجر Azure AD B2C من قائمة Directories + subscriptions.

  3. اختر كل الخدمات في الزاوية العلويةِ اليسرى من مدخل Microsoft Azure، ثم ابحث عن Azure AD B2Cوحدده.

  4. حدّد Identity providers، ثم حدّد موفر OpenID Connect جديد.

  5. أدخل اسمًا. على سبيل المثال، Contoso.

  6. بالنسبة إلى رابط بيانات التعريف، أدخل عنوان URL مستند تكوين AD FS OpenID Connect. على سبيل المثال:

    https://adfs.contoso.com/adfs/.well-known/openid-configuration 
    
  7. بالنسبة إلى معرف العميل، أدخل معرف التطبيق الذي قمت بتسجيله مسبقا.

  8. بالنسبة إلى النطاق، أدخل openid.

  9. بالنسبة إلىنوع الاستجابة، حدد id_token. لذلك، ليست هناك حاجة إلى قيمة سر العميل. تعرف على المزيد حول استخدام معرف العميل والسري عند إضافة موفر هوية OpenID Connect.

  10. (اختياري) للتعرف على تلميح المجال، أدخل contoso.com. للمزيد من المعلومات، راجع إعداد تسجيل الدخول المباشر باستخدام Azure Active Directory B2C.

  11. ضمن تعيين مطالبات موفر الهوية، حدّد المطالبات التالية:

    • معرف المستخدم: upn
    • اسم العرض: unique_name
    • الاسم المعطى: given_name
    • اللقب: family_name
  12. حدد حفظ.

أضف موفر هوية AD FS إلى تدفق المستخدم

في هذه المرحلة، تم إعداد موفر هوية AD FS (Contoso)، لكنه غير متاح بعد في أي من صفحات تسجيل الدخول. لإضافة موفر هوية AD FS إلى تدفق المستخدم:

  1. في مستأجر Azure AD B2C، حدّد User flows.
  2. حدد تدفق المستخدم الذي تريد إضافة موفر هوية AD FS (شركة Contoso).
  3. ضمن موفري الهوية الاجتماعية، حدد Contoso.
  4. حدد حفظ.
  5. لاختبار سياستك، حدّد "Run user flow".
  6. للتطبيق، حدد تطبيق الويب المسمى testapp1 الذي قمت بتسجيله مسبقًا. عنوان URL الرد يجب أن يعرض https://jwt.ms.
  7. حدّد الزر تشغيل تدفق المستخدم.
  8. من صفحة التسجيل أو تسجيل الدخول، حدّد Contoso لتسجيل الدخول باستخدام حساب Contoso.

إذا نجحت عملية تسجيل الدخول، فستتم إعادة توجيه المستعرض الخاص بك إلى، https://jwt.ms، والذي يعرض محتويات الرمز المميز الذي تم إرجاعه بواسطة Azure AD B2C.

كوّن AD FS كموفر هوية

لتمكين المستخدمين من تسجيل الدخول باستخدام حساب AD FS، تحتاج إلى تعريف AD FS كموفر مطالبات يمكن لـ Azure AD B2C التواصل معه من خلال نقطة نهاية.

  1. افتح TrustFrameworkExtensions.xml.

  2. ابحث عن عنصر ClaimsProviders. إذا لم يكن موجودًا، فقم بإضافته تحت عنصر الجذر.

  3. قم بإضافة ClaimsProvider جديد على النحو التالي:

    <ClaimsProvider>
      <Domain>contoso.com</Domain>
      <DisplayName>Contoso</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Contoso-OpenIdConnect">
          <DisplayName>Contoso</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="METADATA">https://your-adfs-domain/adfs/.well-known/openid-configuration</Item>
            <Item Key="response_types">id_token</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="scope">openid</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">0</Item>
            <!-- Update the Client ID below to the Application ID -->
            <Item Key="client_id">Your AD FS application ID</Item>
          </Metadata>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="upn" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="unique_name" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss"  />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. بالنسبة إلى رابط بيانات التعريف، أدخل عنوان URL مستند تكوين AD FS OpenID Connect. على سبيل المثال:

    https://adfs.contoso.com/adfs/.well-known/openid-configuration 
    
  5. قم بتعيين client_id إلى معرّف التطبيق من تسجيل التطبيق.

  6. احفظ الملف.

إضافة الرحلة الخاصة بالمستخدم

عند هذه النقطة، تم إعداد موفر الهوية، ولكنه غير متوفر بعد في أي من صفحات تسجيل الدخول. إذا لم تكن لديك رحلة مستخدم مخصصة خاصة بك، فقم بإنشاء نسخة مكررة من رحلة المستخدم لقالب موجود، وإلا تابع إلى الخطوة التالية.

  1. من حزمة البداية، افتح المَلف TrustFrameworkBase.xml.
  2. ابحث عن المحتويات الكاملة لعنصر UserJourney الذي يتضمن Id="SignUpOrSignIn" وانسخها.
  3. افتح TrustFrameworkExtensions.xml وابحث عن عنصر UserJourneys. إذا لم يكن العنصر موجودًا، فأضف عنصرًا.
  4. الصق المحتوى الكامل لعنصر UserJourney الذي نسخته كعنصر تابع لعنصر UserJourneys.
  5. أعِد تسمية المعرف الخاص بالرحلة. على سبيل المثال، Id="CustomSignUpSignIn".

إضافة موفر الهوية إلى الرحلة

الآن بعد أن أصبحت لديك رحلة مستخدم، أضف موفر الهوية الجديد إلى رحلة المستخدم. تضيف أولاً الزر الخاص بتسجيل الدخول، ثم تربط الزر بإجراءٍ ما. الإجراء هو ملف التعريف الفني الذي قمت بإنشائه مسبقًا.

  1. ابحث عن عنصر خطوة التنسيق الذي يتضمن Type="CombinedSignInAndSignUp"، أو Type="ClaimsProviderSelection" في الرحلة. عادةَ ما تكون الخطوة الأولى للتزامن. يحتوي عنصر ClaimsProviderSelections على قائمة موفري الهوية التي يمكن للمستخدم تسجيل الدخول من خلالها. يتحكم ترتيب العناصر في ترتيب أزرار تسجيل الدخول التي يتم عرضها للمستخدم. أضف عنصر XML ClaimsProviderSelection. تعيين قيمة TargetClaimsExchangeId إلى اسم مألوف.

  2. في خطوة التنسيق التالية، أضف عنصر ClaimsExchange . قم بتعيين المعرف إلى قيمة معرف تبادل المطالبات الهدف. وقم بتحديث قيمة TechnicalProfileReferenceId لمعرف ملف التعريف الفني الذي أنشأته مسبقاً.

يوضح XML التالي أول خطوتين للتنسيق لرحلة المستخدم من خلال موفر الهوية:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="ContosoExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-OpenIdConnect" />
  </ClaimsExchanges>
</OrchestrationStep>

تكوين نهج جهة الاعتماد

يحدد نهج جهة الاعتماد، على سبيل المثال SignUpSignIn.xml، رحلة المستخدم التي سيقوم Azure AD B2C بتنفيذها. ابحث عن العنصر DefaultUserJourney ضمن جهة الاعتماد. قم بتحديث ReferenceId ليطابق معرّف رحلة المستخدم، الذي أضفت فيه موفر الهوية.

في المثال التالي، بالنسبة إلى CustomSignUpSignInرحلة المستخدم، تم تعيين ReferenceId إلى CustomSignUpSignIn:

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

تحميل النهج المخصص

  1. سجل الدخول إلى مدخل Azure.
  2. حدد مرشح «الدليل+الاشتراك»في القائمة العلوية، ثم حدد الدليل الذي يحتوي على مستأجر Azure AD B2C.
  3. في مدخل Microsoft Azure، ابحث عن Azure AD B2C وحددها.
  4. ضمن Policies، حدد Identity Experience Framework.
  5. حدّد Upload Custom Policy، ثم قم بتحميل ملفي النهج اللذين قمت بتغييرهما بالترتيب التالي: نهج التوسيع، على سبيل المثال TrustFrameworkExtensions.xml، ثم نهج جهة الاعتماد، مثل SignUpSignIn.xml.

اختبار النهج المخصص لديك

  1. حدد نهج جهة الاعتماد، على سبيل المثالB2C_1A_signup_signin.
  2. للوصول إلى التطبيق، حدّد تطبيق الويب الذي قمت بتسجيله مسبقاً. عنوان URL الرد يجب أن يعرض https://jwt.ms.
  3. حدّدالتشغيل الآن الزر.
  4. من صفحة التسجيل أو تسجيل الدخول، حدّد Contoso لتسجيل الدخول باستخدام حساب Contoso.

إذا نجحت عملية تسجيل الدخول، فستتم إعادة توجيه المستعرض الخاص بك إلى، https://jwt.ms، والذي يعرض محتويات الرمز المميز الذي تم إرجاعه بواسطة Azure AD B2C.

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

تعرف على كيفية تمرير رمز AD-FS إلى تطبيقك.