تكوين المصادقة في نموذج تطبيق iOS Swift باستخدام Azure AD B2C

تستخدم هذه المقالة نموذج تطبيق iOS Swift لتوضيح كيفية إضافة مصادقة Azure Active Directory B2C (Azure AD B2C) إلى تطبيقات الجوال.

نظرة عامة

OpenID Connect (OIDC) هو بروتوكول مصادقة مبني على OAuth 2.0. يمكنك استخدام OIDC لتسجيل دخول المستخدمين إلى أحد التطبيقات بشكل آمن. تستخدم عينة تطبيق سطح المكتب هذه منصة Microsoft Authentication Library (MSAL) من خلال تدفق OIDC القائم على استخدام ملحق Proof Key for Code Exchange (PKCE) لحماية رمز المصادقة. MSAL هي مكتبة توفرها Microsoft تعمل على تبسيط إضافة دعم المصادقة والترخيص لتطبيقات الأجهزة المحمولة.

يتضمن تدفق تسجيل الدخول الخطوات التالية:

  1. يفتح المستخدمون التطبيق ويحددون "تسجيل الدخول" .
  2. يفتح التطبيق متصفح نظام الجهاز المحمول ويبدأ طلب مصادقة إلى Microsoft Azure Active Directory B2C.
  3. يقوم المستخدمونبالتسجيل أو تسجيل الدخولأوإعادة ضبط كلمة المرورأو تسجيل الدخول باستخدامحساب اجتماعي.
  4. بعد أن ينجح المستخدمون في تسجيل الدخول، يعمل Microsoft Azure Active Directory B2C على إرجاع رمز التخويل إلى التطبيق.
  5. يقوم التطبيق بتنفيذ الإجراءات التالية:
    1. تبديل رمز المصادقة إلى رمز مميز للمعرّف ورمز مميز للوصول ورمز مميز للتحديث.
    2. يقرأ مطالبات الرمز المميز الخاص بالمعرف.
    3. يقوم بتخزين رمز التحديث في ذاكرة التخزين المؤقتة في الذاكرة لاستخدامه لاحقًا.

نظرة عامة على تسجيل التطبيق

لتمكين التطبيق الخاص بك لتسجيل الدخول باستخدام Azure AD B2C واستدعاء واجهة برمجة تطبيقات ويب، سجل تطبيقين في دليل Azure AD B2C:

  • يتيح تسجيل تطبيق الجوال للتطبيق تسجيل الدخول باستخدام Azure AD B2C. أثناء تسجيل التطبيق، حدد عنوان URI لإعادة التوجيه. URI إعادة توجيه هي نقطة النهاية التي يتم إعادة توجيه المستخدمين بواسطة Azure AD B2C بعد مصادقة مع Azure AD B2C. تنشئ عملية تسجيل التطبيق معرف التطبيق، المعروف أيضًا باسم معرف العميل، الذي يحدد بشكل فريد التطبيق المحمول الخاص بك (على سبيل المثال، معرف التطبيق: 1).

  • يتيح تسجيل واجهة برمجة تطبيقات الويب للتطبيق الاتصال بواجهة برمجة تطبيقات ويب محمية. يكشف التسجيل عن أذونات واجهة برمجة تطبيقات الويب (النطاقات). تنشئ عملية تسجيل التطبيق معرّف التطبيق، الذي يعرّف بشكل فريد واجهة برمجة تطبيقات الويب (على سبيل المثال، معرّف التطبيق: 2). امنح تطبيقك المحمول (معرف التطبيق: 1) أذونات لنطاقات واجهة برمجة تطبيقات الويب (معرف التطبيق: 2).

عملية تسجيل التطبيق وتصميمه موضحتان في الرسوم التخطيطية التالية:

رسم تخطيطي لتطبيق الجوال مع تسجيلات المكالمات والرموز المميزة لواجهة برمجة التطبيقات على الويب.

استدعاء ب API ويب

بعد اكتمال المصادقة، يتفاعل المستخدمون مع التطبيق، والذي يستدعي واجهة برمجة تطبيقات ويب محمية. تستخدم واجهة برمجة تطبيقات الويب مصادقة رمز الحامل المميز. رمز الحامل هو الرمز المميز للوصول الذي حصل عليه التطبيق من Microsoft Azure Active Directory B2C. يمرر التطبيق الرمز المميز في رأس التفويض لطلب HTTPS.

Authorization: Bearer <access token>

إذا كان نطاق الرمز المميز للوصول لا يطابق نطاقات واجهة برمجة تطبيقات الويب، تحصل مكتبة المصادقة على رمز مميز للوصول جديد مع النطاقات الصحيحة.

عملية تسجيل الخروج

يتضمن تدفق تسجيل الخروج الخطوات التالية:

  1. من التطبيق، يقوم المستخدمون بتسجيل الخروج.
  2. يمسح التطبيق عناصر الجلسة الخاصة به، وتقوم مكتبة المصادقة بمسح ذاكرة التخزين المؤقت للرمز.
  3. يأخذ التطبيق المستخدمين إلى نقطة نهاية تسجيل الخروج Microsoft Azure Active Directory B2C لإنهاء جلسة Microsoft Azure Active Directory B2C.
  4. يتم إعادة توجيه المستخدمين مرة أخرى إلى التطبيق.

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

جهاز كمبيوتر يعمل:

الخطوة 1: تكوين تدفق المستخدم الخاص بك

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

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

  • تسجيل الدخول المشتركة والاشتراك في تدفق المستخدم، مثل susi. يدعم تدفق المستخدم هذا أيضاً تجربة نسيت كلمة المرور الخاصة بك.
  • تدفق تحرير ملف تعريف المستخدم، مثل edit_profile.
  • تدفق إعادة تعيين كلمة مرور المستخدم، مثل reset_password.

يسبق Microsoft Azure Active Directory B2C B2C_1_اسم تدفق المستخدم. على سبيل المثال: ⁧susi⁩ becomes B2C_1_susi⁩.

الخطوة 2: تسجيل تطبيقات الهاتف المحمول

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

الخطوة 2.1: تسجيل تطبيق الويب API

لإنشاء تسجيل تطبيق واجهة برمجة تطبيقات الويب (App ID: 2)، اتبع الخطوات التالية:

  1. تسجيل الدخول إلى ⁧⁩مدخل Microsoft Azure⁧⁩.

  2. تأكد من استخدامك الدليل الذي يحتوي على مستأجر Azure AD B2C لديك. حدّد رمز Directories + subscriptions في شريط أدوات المدخل.

  3. في صفحة Portal settings | Directories + subscriptions ابحث عن دليل Azure AD B2C في قائمة Directory name ثم حدّد Switch.

  4. ابحث في مدخل Microsoft Azure عن Microsoft Azure Active Directory B2C وحدده.

  5. حدد App registrations، ثم حدد New registration.

  6. بالنسبة إلى Name، أدخل اسماً للتطبيق (على سبيل المثال، my-api 1). اترك القيم الافتراضية لـ إعادة توجيه URI وأنواع الحسابات المدعومة.

  7. اختر ⁧تسجيل⁧.

  8. بعد اكتمال تسجيل التطبيق، حدد نظرة عامة.

  9. سجل قيمة Application (client) ID لاستخدامه لاحقاً عند تكوين تطبيق الويب.

    لقطة شاشة توضح كيفية الحصول على معرف تطبيق واجهة برمجة تطبيقات الويب.

الخطوة 2.2: تكوين نطاقات تطبيقاتAPI على الويب

  1. حدد التطبيق my-api1 الذي أنشأته (App ID: 2) لفتح صفحة Overview الخاصة به.

  2. ضمن إدارة، حدد كشف واجهة برمجة تطبيقات.

  3. بجوار معرف التطبيق URI، حدد رابط تعيين. استبدل القيمة الافتراضية (GUID) باسم فريد (على سبيل المثال، features-api)، ثم حدد Save.

    عندما يطلب تطبيق الويب الخاص بك رمزاً مميزاً للوصول لواجهة برمجة تطبيقات الويب، يجب أن يضيف عنوان URI هذا كبادئة لكل نطاق تحدده لواجهة برمجة التطبيقات.

  4. ضمن النطاقات المعرفة من قبل واجهة برمجة التطبيقات API هذه، حدد إضافة نطاق.

  5. لإنشاء نطاق يحدد الوصول للقراءة إلى واجهة برمجة التطبيقات:

    1. بالنسبة إلى اسم النطاق، أدخل المهام.قراءة.
    2. بالنسبة إلى اسم عرض موافقة المسؤول، أدخل قراءة الوصول إلى واجهة برمجة تطبيقات المهام.
    3. بالنسبة إلى وصف موافقة المسؤول، أدخل السماح بالوصول للقراءة إلى واجهة برمجة تطبيقات المهام.
  6. حدد إضافة نطاق.

  7. حدد Add a scope، ثم أضف نطاقاً يحدد حق الوصول للكتابة إلى واجهة برمجة التطبيقات:

    1. بالنسبة إلى اسم النطاق، أدخل features.write.
    2. بالنسبة إلى اسم عرض موافقة المسؤول، أدخل واجهة برمجة تطبيقات الوصول للكتابة إلى المهام.
    3. بالنسبة إلى وصف موافقة المسؤول، أدخل السماح بالوصول للكتابة إلى واجهة برمجة تطبيقات المهام.
  8. حدد إضافة نطاق.

الخطوة 2.3: تسجيل تطبيق الأجهزة المحمولة

لإنشاء تسجيل تطبيق الأجهزة المحمولة، قم بما يلي:

  1. تسجيل الدخول إلى ⁧⁩مدخل Azure⁧⁩.
  2. حدد تسجيلات التطبيقات، ثم اختر تسجيل جديد.
  3. ضمن Name، أدخل اسمًا للتطبيق (على سبيل المثال، iOs-app1).
  4. من Supported account types، حدد Accounts in any identity provider or organizational directory (for authenticating users with user flows) .
  5. ضمن URI إعادة التوجيه، حدد العميل العام/الأصلي (الهاتف المحمول &سطح المكتب) ثم في مربع عنوان URL، أدخل msauth.com.microsoft.identitysample.MSALiOS://auth.
  6. اختر ⁧تسجيل⁧.
  7. بعد اكتمال تسجيل التطبيق، حدد نظرة عامة.
  8. سجّل معرف التطبيق (العميل) لاستخدامه لاحقًا، عند تكوين تطبيق الأجهزة المحمولة. لقطة شاشة تبرز معرف تطبيق المحمول.

الخطوة 2.4: منح أذونات تطبيق الأجهزة المحمولة API الويب

لمنح تطبيقك (App ID: 1) أذونات، اتبع الخطوات التالية:

  1. حدد App registrations، ثم حدد التطبيق الذي قمت بإنشائه (معرف التطبيق: 1).

  2. ضمن ⁧⁩Manage⁧⁩، حدد ⁧⁩API permissions⁧⁩.

  3. ضمن أذونات مكونة، حدد إضافة إذن.

  4. حدد علامة التبويب واجهات برمجة التطبيقات الخاصة بي.

  5. حدد واجهة برمجة التطبيقات (App ID: 2) التي يجب منح تطبيق الويب حق الوصول إليها. على سبيل المثال، أدخل my-api1.

  6. ضمن Permission، وسّع المهام، ثم حدد النطاقات التي حددتها سابقاً (على سبيل المثال، المهام.قراءة وكتابة المهام).

  7. حدد "Add permissions".

  8. حدد Grant admin consent for <اسم المستأجر الخاص بك>.

  9. حدد Yes.

  10. حدد Refresh، ثم تحقق من ظهور منح لـ ... ضمن Status لكلا النطاقين.

  11. من قائمة Configured permissions، حدد النطاق الخاص بك، ثم انسخ الاسم الكامل للنطاق.

    لقطة شاشة من جزء الأذونات المكونة، تظهر أنه يتم منح أذونات الوصول للقراءة فقط.

الخطوة 3: تكوين نموذج واجهة برمجة تطبيقات الويب

يكتسب هذا النموذج رمز وصول مع النطاقات ذات الصلة التي يمكن لتطبيق الجوال استخدامها لواجهة برمجة تطبيقات الويب. للاتصال API ويب من التعليمات البرمجية، قم بما يلي:

  1. استخدم واجهة برمجة تطبيقات الويب الحالية أو قم بإنشاء واجهة جديدة. لمزيد من المعلومات، انظرتمكين المصادقة في واجهة برمجة تطبيقات الويب باستخدام Microsoft Azure AD B2C.
  2. قم بتغيير نموذج التعليمات البرمجية لاستدعاء API ويب.
  3. بعد تكوين واجهة برمجة تطبيقات الويب، انسخ URI الخاص بنقطة نهاية الواجهة. ستستخدم نقطة نهاية واجهة برمجة تطبيقات الويب في الخطوات التالية.

تلميح

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

الخطوة 4: احصل على عينة تطبيق iOS للجوال

  1. قم بتحميل ملف .zip،أو استنساخ نموذج تطبيق الويب من مستودع GitHub.

    git clone https://github.com/Azure-Samples/active-directory-b2c-ios-swift-native-msal
    
  2. استخدم CocoaPods لتثبيت مكتبة MSAL. في نافذة المحطة الطرفية، انتقل إلى المجلد الجذر للمشروع. يحتوي هذا المجلد على ملف podfile. شغِّل الأمر التالي:

    pod install
    
  3. افتح مساحة العمل MSALiOS.xcworkspace باستخدام Xcode.

الخطوة 5: تكوين نموذج تطبيق الويب

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

تحديث أعضاء الفئة التالين:

المفتاح القيمة
kTenantName الاسم الكامل لمستأجر Microsoft Azure Active Directory B2C الخاص بك (على سبيل المثال،contoso.onmicrosoft.com).
kAuthorityHostName الجزء الأول من Microsoft Azure Active Directory B2C اسم مستأجر (على سبيل المثال،contoso.b2clogin.com).
kClientID معرف تطبيق الهاتف المحمول من الخطوة 2.3.
kRedirectUri URI إعادة توجيه تطبيق المحمول من الخطوة 2.3، msauth.com.microsoft.identitysample.MSALiOS://auth.
kSignupOrSigninPolicy يوجد تدفق المستخدمين للتسجيل أو تسجيل الدخول أو النهج المخصص الذي أنشأته في الخطوة 1.
kEditProfilePolicy تعديل تدفق مستخدم الملف الشخصي أو السياسة المخصصة التي أنشأتها في الخطوة 1.
kGraphURI (اختياري) نقطة نهاية واجهة برمجة تطبيقات الويب التي أنشأتها في الخطوة 3 (على سبيل المثال، https://contoso.azurewebsites.net/hello).
kScopes نطاقات واجهة برمجة تطبيقات الويب التي أنشأتها في الخطوة 2.4.

الخطوة 6: تشغيل واختبار تطبيق الجوال

  1. قم بإنشاء وتشغيل المشروع مع جهاز محاكاة لجهاز iOS متصل.

  2. حدد "Sign In" ثم قم بالتسجيل أو تسجيل الدخول باستخدام حسابك المحلي أو الاجتماعي في Azure AD B2C.

    لقطة شاشة تبرز كيفية بدء تدفق تسجيل الدخول.

  3. بعد المصادقة الناجحة، سترى اسم العرض الخاص بك في شريط التنقل.

    لقطة شاشة تبرز الرمز المميز للوصول ومعرّف المستخدم في Azure AD B2C.

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

ستتعرف على كيفية: