إعداد تسجيل الدخول لمعرف Microsoft Entra متعدد المستأجرين باستخدام نهج مخصصة في Azure Active Directory B2C

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

هذه الميزة متاحة فقط للسياسات المخصصة. لخطوات الإعداد، حدد نهج مخصص في المحدد السابق.

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

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

إشعار

في هذه المقالة، افترض أن حزمة المبتدئين SocialAndLocalAccounts مستخدمة في الخطوات السابقة المذكورة في المتطلبات المسبقة.

تسجيل تطبيق Microsoft Entra

لتمكين تسجيل الدخول للمستخدمين الذين لديهم حساب Microsoft Entra في Azure Active Directory B2C (Azure AD B2C)، تحتاج إلى إنشاء تطبيق في مدخل Microsoft Azure. لمزيد من المعلومات، راجع تسجيل تطبيق في النظام الأساسي للهوية من Microsoft.

  1. سجل الدخول إلى مدخل Azure.

  2. إذا كان لديك حق الوصول إلى عدة مستأجرين، فحدد رمز الإعدادات في القائمة العلوية للتبديل إلى مستأجر معرف Microsoft Entra من قائمة الدلائل + الاشتراكات.

  3. اختر All services في الزاوية العلوية اليسرى من مدخل Azure، ثم ابحث عن App registrations وحددها.

  4. حدد تسجيل جديد.

  5. أدخل اسماً لتطبيقك. على سبيل المثال، Azure AD B2C App.

  6. حدد الحسابات في أي دليل تنظيمي (أي دليل Microsoft Entra - متعدد المستأجرين) لهذا التطبيق.

  7. للحصول على معرّف URI لإعادة التوجيه، اقبل قيمة الويب، وأدخل معرّف URL التالي بأحرف صغيرة، حيثما يتم استبدال your-B2C-tenant-name باسم مستأجر Azure AD B2C.

    https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp
    

    على سبيل المثال، https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp.

    إذا كنت تستخدم مجالاً مخصصاً، أدخل https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. استبدلyour-domain-name باسم المجال المخصص لك، وyour-tenant-nameباسم المستأجر لديك.

  8. حدد تسجيل. تسجيل معرف التطبيق (العميل) للاستخدام في خطوة لاحقة.

  9. حدد Certificates & secrets، ثم حدد New client secret.

  10. أدخل Description للسر، وحدد انتهاء الصلاحية، ثم حدد Add. سجل Value السر لاستخدامها في خطوة لاحقة.

تكوين المطالبات الاختيارية

إذا كنت ترغب في الحصول على family_nameالمطالبات و given_name من معرف Microsoft Entra، يمكنك تكوين مطالبات اختيارية لتطبيقك في واجهة مستخدم مدخل Microsoft Azure أو بيان التطبيق. لمزيد من المعلومات، راجع كيفية تقديم مطالبات اختيارية لتطبيق Microsoft Entra.

  1. سجل الدخول إلى مدخل Azure. ابحث عن Microsoft Entra ID وحدده.
  2. من قسم Manage، حدد App registrations.
  3. حدد التطبيق الذي تريد أن تكوّن المطالبات الاختيارية له في القائمة.
  4. من قسم Manage، حدد Token configuration.
  5. حدد إضافة مطالبة اختيارية.
  6. للتعرف على نوع الرمز المميز، حدّد المعرّف.
  7. حدد المطالبات الاختيارية المراد إضافتها وfamily_name وgiven_name.
  8. حدد إضافة. في حالة ظهور تشغيل إذن البريد الإلكتروني لـ Microsoft Graph (مطلوب لظهور المطالبات في رمز مميز)، قم بتمكينه، ثم حدد Add مرة أخرى.

[اختياري] تحقق من أصالة تطبيقك

تساعد ميزة التحقق من الناشر المستخدمين في فهم أصالة التطبيق الذي سجلته. يعني التطبيق الذي تم التحقق منه أن ناشر التطبيق قد تحقق من هويته باستخدام شبكة شركاء Microsoft (MPN). تعرف على كيفية وضع علامة على تطبيقك باعتباره ناشراً تم التحقق منه.

إنشاء مفتاح نهج

تحتاج إلى تخزين مفتاح التطبيق الذي قمت بإنشائه في مستأجر Microsoft Azure Active Directory B2C.

  1. إذا كان لديك حق الوصول إلى عدة مستأجرين، فحدد رمز الإعدادات في القائمة العلوية للتبديل إلى مستأجر Azure AD B2C من قائمة Directories + subscriptions.
  2. اختر كل الخدمات في الزاوية العلويةِ اليسرى من مدخل Microsoft Azure، ثم ابحث عن Azure AD B2Cوحدده.
  3. ضمن Policies، حدد Identity Experience Framework.
  4. حدد Policy keys ثم حدد Add.
  5. بالنسبة للخيارات، اختر Manual .
  6. أدخِل اسمًا لمفتاح النهج. على سبيل المثال، AADAppSecret. تتم إضافة البادئة B2C_1A_ تلقائياً إلى اسم مفتاحك عند إنشائه، لذا فإن مرجعها في XML في القسم التالي هو B2C_1A_AADAppSecret.
  7. في Secret، أدخل سر العميل الذي سجلته مسبقاً.
  8. بالنسبة إلى Key usage، حدد Signature.
  9. حدد إنشاء.

تكوين معرف Microsoft Entra كموفر هوية

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

يمكنك تعريف معرف Microsoft Entra كموفر مطالبات عن طريق إضافة معرف Microsoft Entra إلى عنصر ClaimsProvider في ملف ملحق النهج الخاص بك.

  1. افتح الملف SocialAndLocalAccounts/TrustFrameworkExtensions.xml (راجع الملفات التي استخدمتها في المتطلبات الأساسية).

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

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

    <ClaimsProvider>
      <Domain>commonaad</Domain>
      <DisplayName>Common AAD</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AADCommon-OpenIdConnect">
          <DisplayName>Multi-Tenant AAD</DisplayName>
          <Description>Login with your Contoso account</Description>
          <Protocol Name="OpenIdConnect"/>
          <Metadata>
            <Item Key="METADATA">https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration</Item>
            <!-- Update the Client ID below to the Application ID -->
            <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
            <!-- The key below allows you to specify each of the Azure AD tenants that can be used to sign in. Update the GUIDs below for each tenant. -->
            <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000,https://login.microsoftonline.com/11111111-1111-1111-1111-111111111111</Item>
            <!-- The commented key below specifies that users from any tenant can sign-in. Uncomment if you would like anyone with an Azure AD account to be able to sign in. -->
            <!-- <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/</Item> -->
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_AADAppSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/>
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. أسفل العنصر ClaimsProvider، قم بتحديث قيمة المجال إلى قيمة فريدة يمكن استخدامها لتمييزه عن غيره من موفري الهوية.

  5. ضمن عنصر TechnicalProfile، قم بتحديث قيمة DisplayName، على سبيل المثال، Multi-Tenant AAD. يتم عرض هذه القيمة على زر تسجيل الدخول في صفحة تسجيل الدخول الخاصة بك.

  6. قم بتعيين client_id إلى معرف التطبيق لتطبيق Microsoft Entra متعدد المستأجرين الذي قمت بتسجيله سابقا.

  7. ضمن مفاتيح التشفير، قم بتحديث قيمة StorageReferenceId إلى اسم مفتاح النهج الذي تم إنشاؤه مسبقاً. على سبيل المثال، B2C_1A_AADAppSecret.

تقييد الوصول

يسمح استخدام https://login.microsoftonline.com/ كقيمة ل ValidTokenIssuerPrefixes لجميع مستخدمي Microsoft Entra بتسجيل الدخول إلى التطبيق الخاص بك. قم بتحديث قائمة مصدري الرموز المميزة الصالحين وتقييد الوصول إلى قائمة معينة من مستخدمي مستأجر Microsoft Entra الذين يمكنهم تسجيل الدخول.

للحصول على القيم، انظر إلى بيانات تعريف اكتشاف OpenID الاتصال لكل مستأجر من مستأجري Microsoft Entra الذين ترغب في أن يسجل المستخدمون الدخول منهم. تنسيق عنوان URL لبيانات التعريف مشابه ل https://login.microsoftonline.com/your-tenant/v2.0/.well-known/openid-configuration، حيث your-tenant هو اسم مستأجر Microsoft Entra الخاص بك. على سبيل المثال:

https://login.microsoftonline.com/fabrikam.onmicrosoft.com/v2.0/.well-known/openid-configuration

نفذ هذه الخطوات لكل مستأجر Microsoft Entra يجب استخدامه لتسجيل الدخول:

  1. افتح المستعرض الخاص بك وانتقل إلى عنوان URL لبيانات تعريف OpenID Connect للمستأجر. ابحث عن عنصر issuer وسجل قيمته. يجب أن يبدو مشابهاً لـ https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0.
  2. انسخ القيمة والصقها في مفتاح ValidTokenIssuerPrefixes. افصل بين المصدرين المتعددين بفاصلة. يظهر مثال مع مُصدرين اثنين في نموذج XML ClaimsProvider السابق.

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

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

  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="AzureADCommonExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AzureADCommonExchange" TechnicalProfileReferenceId="AADCommon-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. من صفحة الاشتراك أو تسجيل الدخول، حدد Common Microsoft Entra ID لتسجيل الدخول باستخدام حساب Microsoft Entra.

لاختبار إمكانية تسجيل الدخول متعدد المستأجرين، قم بتنفيذ الخطوتين الأخيرتين باستخدام بيانات الاعتماد لمستخدم موجود مستأجر Microsoft Entra آخر. انسخ نقطة نهاية التشغيل الآن وافتحها في نافذة متصفح خاصة، على سبيل المثال، وضع التصفح المتخفي في Google Chrome أو نافذة InPrivate في Microsoft Edge. يتيح لك الفتح في نافذة مستعرض خاصة اختبار رحلة المستخدم الكاملة بعدم استخدام أي بيانات اعتماد Microsoft Entra مخزنة مؤقتا حاليا.

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

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