إعداد التسجيل وتسجيل الدخول باستخدام Apple ID من Azure Active Directory B2C

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

إشعار

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

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

إنشاء تطبيق Apple ID

لتمكين تسجيل الدخول للمستخدمين الذين لديهم Apple ID فيAzure Active Directory B2C (Azure AD B2C)، تحتاج إلى إنشاء تطبيق في https://developer.apple.com. راجع تسجيل الدخول باستخدام PowerShell للحصول على مزيدٍ من المعلومات. إذا لم يكن لديك حساب مطور بالفعل Apple، يمكنك الاشتراك في برنامج مطوري Apple.

  1. سجّل الدخول إلى مدخل Microsoft Azure باستخدام بيانات اعتماد حساب Azure الخاص بك.
  2. من القائمة، حدد الشهادات والمعرفات و& ملفات التعريف، ثم حدد (+).
  3. لتسجيل معرف جديد، حدد معرفات التطبيق، ثم حدد متابعة.
  4. لتحديد نوع، حدد تطبيق، ثم حدد متابعة.
  5. لتسجيل معرف التطبيق:
    1. إدخال وصف
    2. أدخل معرف الحزمة، مثل com.contoso.azure-ad-b2c.
    3. بالنسبة للإمكانات، حدد تسجيل الدخول باستخدام Apple من قائمة الإمكانات.
    4. لاحظ معرف الفريق الخاص بك (بادئة معرف التطبيق) من هذه الخطوة. سوف تحتاجها لاحقًا.
    5. حدد متابعة ثم قم بالتسجيل.
  6. من القائمة، حدد الشهادات والمعرفات و& ملفات التعريف، ثم حدد (+).
  7. لتسجيل معرف جديد، حدد معرفات التطبيق، ثم حدد متابعة.
  8. لتسجيل معرف الخدمات:
    1. أدخِل الوصف. يظهر الوصف للمستخدم على شاشة الموافقة.
    2. أدخل المعرف، مثل com.consoto.azure-ad-b2c-service. قم بتدوين معرف الخدمة الخاص بك. المعرف هو معرف العميل الخاص بك لتدفق الاتصال OpenID.
    3. حدد متابعة ثم قم بالتسجيل.
  9. من المعرفات، حدد المعرف الذي أنشأته.
  10. حدد تسجيل الدخول باستخدام Apple، ثم حدد تكوين.
    1. حدد معرف التطبيق الأساسي الذي تريد تكوين تسجيل الدخول باستخدام Apple به.
    2. في المجالات والنطاقات الفرعية، أدخل your-tenant-name.b2clogin.com. استبدل اسم المستأجر الخاص بك باسم المستأجر الخاص بك. إذا كنت تستخدم مجالاً مخصصاً، أدخل https://your-domain-name.
    3. في عناوين URL للإرجاع، أدخل 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وبمجالك المخصص. يجب أن يكون عنوان URL للعودة بأحرف صغيرة.
    4. حدد التالي، ثم حدد تم.
    5. عند إغلاق النافذة المنبثقة، حدد متابعة، ثم حدد حفظ.

إنشاء سر عميل Apple

  1. من القائمة مدخل مطور Apple، حدد مفاتيح، ثم حدد (+).
  2. لتسجيل مفتاح جديد:
    1. اكتب اسم مفتاح.
    2. حدد تسجيل الدخول باستخدام Apple، ثم حدد تكوين.
    3. بالنسبة إلى معرف التطبيق الأساسي، حدد التطبيق الذي أنشأته سابقا، وحدد حفظ.
    4. حدد تكوين، ثم حدد تسجيل لإنهاء عملية تسجيل المفاتيح. دَوّن قيمة معرف المفتاح. هذا المفتاح مطلوب عند تكوين تدفقات المستخدم.
  3. لتنزيل المفتاح ،حدد تنزيل لتنزيل ملف .p8 الذي يحتوي على المفتاح.

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

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

هام

  • يتطلب تسجيل الدخول مع Apple من المشرف تجديد سر العميل كل 6 أشهر.
  • سيتم تجديد سر عميل Apple تلقائيا عند انتهاء صلاحيته. إذا كنت بحاجة إلى تجديد السر يدويا، افتح Azure AD B2C في بوابة Azure، ثم انتقل إلى موفري الهوية>Apple، وحدد تجديد السرية.
  • اتبع الإرشادات حول كيفية تقديم تسجيل الدخول باستخدام Apple.

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

لتمكين المستخدمين من تسجيل الدخول باستخدام Apple ID، تحتاج إلى إضافة موفر هوية Apple إلى تدفق المستخدم. يمكن تكوين تسجيل الدخول باستخدام Apple فقط للإصدار الموصى به من تدفقات المستخدمين. لإضافة موفر هوية Apple إلى تدفق المستخدم:

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

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

توقيع سر العميل

استخدم الملف .p8 الذي قمت بتنزيله مسبقا لتوقيع سر العميل في رمز JWT المميز. هناك العديد من المكتبات التي يمكن إنشاء وتوقيع JWT بالنسبة لك. استخدم الدالة Azure التي تنشئ رمزاً مميزاً لك.

  1. إنشاء Azure دالة.

  2. ضمن المطور، حدد رمز + اختبار.

  3. نسخ محتوى الملف run.csx ولصقه في المحرر.

  4. حدد حفظ.

  5. أجْر طلبًا لـ POST HTTP، وقدم المعلومات التالية:

    • appleTeamId: معرف فريق مطوري Apple الخاص بك
    • appleServiceId: معرف خدمة Apple (معرف العميل)
    • appleKeyId: معرف مفتاح الهوية المكون من 10 أرقام المخزن في رأس JWT (مطلوب من قبل Apple)
    • p8key: مفتاح تنسيق PEM. يمكنك الحصول على هذا عن طريق فتح الملف.p8 في محرر نص ونسخ كل شيء بين -----BEGIN PRIVATE KEY-----و-----END PRIVATE KEY----- بدون فواصل الأسطر.

يعد json التالي مثالاً لاستدعاء دالة Azure:

{
    "appleTeamId": "ABC123DEFG",
    "appleServiceId": "com.yourcompany.app1",
    "appleKeyId": "URKEYID001",
    "p8key": "MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQg+s07NiAcuGEu8rxsJBG7ttupF6FRe3bXdHxEipuyK82gCgYIKoZIzj0DAQehRANCAAQnR1W/KbbaihTQayXH3tuAXA8Aei7u7Ij5OdRy6clOgBeRBPy1miObKYVx3ki1msjjG2uGqRbrc1LvjLHINWRD"
}

تستجيب الدالة Azure مع عميل منسقة بشكل صحيح وموقعة سر JWT في استجابة، على سبيل المثال:

{
    "token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjb20ueW91cmNvbXBhbnkuYXBwMSIsIm5iZiI6MTU2MDI2OTY3NSwiZXhwIjoxNTYwMzU2MDc1LCJpc3MiOiJBQkMxMjNERUZHIiwiYXVkIjoiaHR0cHM6Ly9hcHBsZWlkLmFwcGxlLmNvbSJ9.Dt9qA9NmJ_mk6tOqbsuTmfBrQLFqc9BnSVKR6A-bf9TcTft2XmhWaVODr7Q9w1PP3QOYShFXAnNql5OdNebB4g"
}

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

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

  1. سجل الدخول إلى مدخل Azure.
  2. إذا كان لديك حق الوصول إلى عدة مستأجرين، فحدد رمز الإعدادات في القائمة العلوية للتبديل إلى مستأجر Azure AD B2C من قائمة Directories + subscriptions.
  3. من خدمات Azure، حدد Azure AD B2C. أو استخدم مربع البحث للبحث عن Azure AD B2Cوتحديده.
  4. في صفحة النظرة العامة، ضمن السياسات، حدد إطار عمل تجربة الهوية.
  5. حدد مفاتيح النهج ثم حدد إضافة.
  6. بالنسبة إلىالخيارات، اختريدوي.
  7. أدخِل اسمًا لمفتاح النهج. على سبيل المثال، "AppleSecret". تتم إضافة البادئة "B2C_1A_" تلقائيا إلى اسم المفتاح.
  8. في سر، أدخل قيمة الرمز المميز الذي تم إرجاعه بواسطة الدالة Azure (رمز JWT المميز).
  9. لاستخدام المفتاح ، حدد التوقيع .
  10. حدد إنشاء.

هام

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

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

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

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

  1. افتح TrustFrameworkExtensions.xml.

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

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

    <ClaimsProvider>
      <Domain>apple.com</Domain>
      <DisplayName>Apple</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Apple-OIDC">
          <DisplayName>Sign in with Apple</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="ProviderName">apple</Item>
            <Item Key="authorization_endpoint">https://appleid.apple.com/auth/authorize</Item>
            <Item Key="AccessTokenEndpoint">https://appleid.apple.com/auth/token</Item>
            <Item Key="JWKS">https://appleid.apple.com/auth/keys</Item>
            <Item Key="issuer">https://appleid.apple.com</Item>
            <Item Key="scope">name email openid</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="response_types">code</Item>
            <Item Key="external_user_identity_claim_id">sub</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="ReadBodyClaimsOnIdpRedirect">user.name.firstName user.name.lastName user.email</Item>
            <Item Key="client_id">You Apple ID</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_AppleSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="https://appleid.apple.com" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="user.name.firstName"/>
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="user.name.lastName"/>
            <OutputClaim ClaimTypeReferenceId="email" />
          </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 إلى معرف الخدمة. على سبيل المثال، com.consoto.azure-ad-b2c-service.

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

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

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

تخصيص واجهة المستخدم

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

للتوافق مع إرشادات واجهة مستخدم Apple: