إعداد الاشتراك، وتسجيل الدخول باستخدام حساب Google باستخدام Azure Active Directory B2C

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

هام

بدءًا من 30 سبتمبر 2021، ستتوقف Google عن دعم التسجيل المضمّن في عروض الويب. إذا كانت تطبيقاتك تقوم بمصادقة المستخدمين مع عرض الويب المضمن، وكنت تستخدم اتحاد Google مع Azure AD B2C، فلن يتمكن مستخدمو Google Gmail من المصادقة. اعرف المزيد.

إشعار

في Azure Active Directory B2C، تم تصميم النُهج المخصصة بشكل أساسي لمعالجة السيناريوهات المعقدة. بالنسبة إلى معظم السيناريوهات، نوصي باستخدام تدفقات المستخدم المضمنة. إذا لم تقم بذلك، تعرف على حزمة بادئ النهج المخصصة في البدء باستخدام النهج المخصصة في Active Directory B2C.

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

إنشاء تطبيق جوجل

لتمكين تسجيل الدخول للمستخدمين الذين لديهم حساب Google في Azure Active Directory B2C (Azure AD B2C)، تحتاج إلى إنشاء تطبيق في وحدة تحكم مطوري Google. لمزيد من المعلومات، راجع إعداد OAuth 2.0. إذا لم يكن لديك حساب Google بالفعل، فيمكنك التسجيل في https://accounts.google.com/signup.

  1. سجل الدخول إلى وحدة تحكم مطوري Google باستخدام بيانات اعتماد حساب Google.
  2. في الزاوية العلوية اليمنى من الصفحة، حدد قائمة المشروع، ثم حدد مشروع جديد.
  3. أدخل اسم المشروع، وحدد إنشاء.
  4. تأكد من استخدام المشروع الجديد عن طريق تحديد القائمة المنسدلة للمشروع في أعلى يسار الشاشة. حدد مشروعك بالاسم، ثم حدد فتح.
  5. في القائمة اليسرى، حدد APIs and services ثم OAuth consent screen. حدد External ثم حدد Create.
    1. أدخل اسماً لتطبيقك.
    2. قم بتحديد بريد إلكتروني لدعم المستخدم.
    3. في قسم App domain، أدخل ارتباطاً تشعبياً إلى الصفحة الرئيسية للتطبيق، وارتباطاً تشعبياً إلى نهج خصوصية التطبيق، وارتباطاً تشعبياً إلى التطبيق الخاص بك شروط الخدمة.
    4. في قسم المجالات المعتمدة، أدخل b2clogin.com.
    5. في القسم معلومات الاتصال بمطوري البرامج، أدخل رسائل إلكترونية مفصولة بفواصل ل Google لإعلامك بأي تغييرات تطرأ على مشروعك.
    6. حدد حفظ.
  6. حدد Credentials في القائمة اليمنى، ثم حدد Create credentials>معرف عميل Oauth.
  7. ضمن "Application type"، حدد "Web application".
    1. أدخل اسماً لتطبيقك.
    2. في Authorized JavaScript origins، أدخل https://your-tenant-name.b2clogin.com. إذا كنت تستخدم مجالاً مخصصاً، أدخل https://your-domain-name.
    3. بالنسبة إلى Authorized redirect URIs، أدخل 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-domain-name باسم المجال المخصص لك، وyour-tenant-nameباسم المستأجر لديك. استخدم كل الأحرف الصغيرة عند إدخال اسم المستأجر حتى إذا تم تعريف المستأجر بأحرف كبيرة في Azure AD B2C.
  8. انقر فوق إنشاء.
  9. انسخ قيم معرف العميل وسر العميل. ستحتاج إلى كليهما لتكوين Google كمزود هوية في المستأجر. البيانات السرية للعميل هي بيانات اعتماد أمان هامة.

تكوين Google كموفر للهوية

  1. سجّل الدخول إلى مدخل Azure بصفتك المسؤول العام عن مستأجر Azure AD B2C.
  2. إذا كان لديك حق الوصول إلى عدة مستأجرين، فحدد رمز الإعدادات في القائمة العلوية للتبديل إلى مستأجر Azure AD B2C من قائمة Directories + subscriptions.
  3. اختر All services في الزاوية العلوية اليسرى من مدخل Microsoft Azure، ثم ابحث عن Azure AD B2C وحدده.
  4. حدد موفري الهوية، ثم حدد Google.
  5. أدخل اسمًا. على سبيل المثال، Google.
  6. بالنسبة إلى معرف العميل، أدخل معرف العميل لتطبيق Google الذي قمت بإنشائه سابقا.
  7. بالنسبة لـ سر العميل، أدخل البيانات السرية للعميل التي قمت بتسجيلها.
  8. حدد حفظ.

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

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

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

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

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

ستحتاج إلى تخزين بيانات العميل السرية التي سجلتها سابقًا في مستأجر Azure AD B2C.

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

تكوين Google كموفر للهوية

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

يمكنك تعريف حساب Google كموفر مطالبات عن طريق إضافته إلى عنصر ClaimsProviders في ملف الملحق لسياستك.

  1. افتح TrustFrameworkExtensions.xml.

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

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

    <ClaimsProvider>
      <Domain>google.com</Domain>
      <DisplayName>Google</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Google-OAuth2">
          <DisplayName>Google</DisplayName>
          <Protocol Name="OAuth2" />
          <Metadata>
            <Item Key="ProviderName">google</Item>
            <Item Key="authorization_endpoint">https://accounts.google.com/o/oauth2/auth</Item>
            <Item Key="AccessTokenEndpoint">https://accounts.google.com/o/oauth2/token</Item>
            <Item Key="ClaimsEndpoint">https://www.googleapis.com/oauth2/v1/userinfo</Item>
            <Item Key="scope">email profile</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="client_id">Your Google application ID</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_GoogleSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="id" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="google.com" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. قم بتعيين client_id إلى معرّف التطبيق من تسجيل التطبيق.

  5. احفظ الملف.

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

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

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

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="GoogleExchange" TechnicalProfileReferenceId="Google-OAuth2" />
  </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. من صفحة التسجيل أو تسجيل الدخول، حدّد Google لتسجيل الدخول باستخدام حساب Google.

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

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