تكوين المصادقة في نموذج تطبيق Android باستخدام Microsoft Azure Active Directory B2C

تستخدم هذه المقالة عينة لتطبيق Android (Kotlin و Java) لتوضيح كيفية إضافة مصادقة خدمات مجال Microsoft Azure Active Directory B2C (Azure AD B2C) إلى تطبيقات الأجهزة المحمولة الخاصة بك.

نظرة عامة

OID الاتصال (OIDC) هو بروتوكول مصادقة مبني على OAuth 2.0. يمكنك استخدام OIDC لتسجيل دخول المستخدمين إلى أحد التطبيقات بشكل آمن. تستخدم عينة تطبيق الأجهزة المحمولة هذه مكتبة مصادقة Microsoft (MSAL) مع تدفق رمز مصادقة OIDC PKCE. MSAL هي مكتبة توفرها Microsoft تعمل على تبسيط إضافة دعم المصادقة والترخيص لتطبيقات الأجهزة المحمولة.

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

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

تسجيل ملكية التطبيق

لتمكين التطبيق الخاص بك لتسجيل الدخول باستخدام Microsoft Azure Active Directory B2C واستدعاء API ويب، سجل تطبيقين في دليل Microsoft Azure Active Directory B2C.

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

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

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

Diagram of the mobile app with web API call registrations and tokens.

استدعاء واجهة برمجة تطبيقات الويب

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

Authorization: Bearer <access token>

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

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

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

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

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

جهاز الكمبيوتر قيد التشغيل:

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

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

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

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

يسبق Microsoft Azure AD B2C B2C_1_اسم تدفق المستخدم. على سبيل المثال، يصبح susiB2C_1_susi.

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

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

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

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

  1. قم بتسجيل الدخول إلى بوابة Azure.

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

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

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

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

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

  7. حدد تسجيل.

  8. بعد اكتمال عملية تسجيل التطبيق، حدد "Overview".

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

    Screenshot that demonstrates how to get a web A P I application I D.

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

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

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

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

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

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

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

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

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

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

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

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

  1. قم بتسجيل الدخول إلى بوابة Azure.

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

  3. تحت الاسم، أدخل اسمًا للتطبيق (على سبيل المثال، android-app1).

  4. ضمن أنواع الحسابات المدعومة، حدد الحسابات في أي موفر هوية أو دليل تنظيمي (لمصادقة المستخدمين بعمليات سير عمل المستخدمين).

  5. ضمن عنوان URI لإعادة التوجيه ، حدد عميل عام / أصلي (للجوال وسطح المكتب) ثم في مربع عنوان URL، أدخل أحد عناوين URL التالية:

    • عينة Kotlin: msauth://com.azuresamples.msalandroidkotlinapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
    • عينة Java: msauth://com.azuresamples.msalandroidapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
  6. حدد تسجيل.

  7. بعد اكتمال عملية تسجيل التطبيق، حدد "Overview".

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

    Screenshot highlighting the Android application ID

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

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

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

  2. ضمن خانة الإدارة، اختر الأذونات الخاصة بواجهة برمجة التطبيقات.

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

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

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

  6. ضمن Permission، وسّع المهام، ثم حدد النطاقات التي حددتها سابقًا (على سبيل المثال، tasks.read وtasks.write).

  7. حدد إضافة أذونات.

  8. حدد «منح موافقة المسؤول لـ» <اسم المستأجر الخاص بك>.

  9. حدد نعم.

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

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

    Screenshot of the configured permissions pane, showing that read access permissions are granted.

الخطوة 3: احصل على عينة تطبيق Android للأجهزة المحمولة

قم بإجراء ما يلي:

  • قم بتنزيل أيًّا من هذه العينات:

    قم باستخراج نموذج ملف .zip إلى مجلد العمل الخاص بك.

  • استنسخ نموذج تطبيق Android للأجهزة المحمولة من GitHub.

    git clone https://github.com/Azure-Samples/ms-identity-android-kotlin
    

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

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

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

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

افتح عينة المشروع باستخدام Android Studio أو محرر تعليمات برمجية آخر، ثم افتح الملف /app/src/main/res/raw/auth_config_b2c.json.

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

تحديث خواص إعدادات التطبيق التالية:

مفتاح قيمة
معرف العميل معرف تطبيق الهاتف المحمول من الخطوة 2.3.
redirect_uri تطبيق الأجهزة المحمولة لإعادة توجيه URI من الخطوة 2.3.
السُّلطات المرجع هو عنوان URL يشير إلى دليل يمكن لـ MSAL طلب الرموز منه. استخدم النموذج التالي: https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-sign-in-sign-up-policy>. استبدل <your-tenant-name>باسم مستأجر متاجرة عمل-مستهلك في Azure Active Directory. ثم بالاستبدال <your-sign-in-sign-up-policy> بتدفقات المستخدم أو النهج المخصص الذي قمت بإنشائه في الخطوة 1.

قم بفتح B2CConfiguration الفئة، وتحديث أعضاء الفئة التالية:

مفتاح القيمة
السياسات قائمة تدفقات المستخدم أو النُّهج المخصصة التي أنشأتها في الخطوة 1 .
azureAdB2CHostName الجزء الأول من اسم مستأجر Microsoft Azure Active Directory B2C (على سبيل المثال، https://contoso.b2clogin.com).
الاسم الخاص بالمستأجر مستأجر خدمات مجال Microsoft Azure Active Directory B2C اسم المستأجر بالكامل (على سبيل المثال، contoso.onmicrosoft.com).
scopes نطاقات واجهة برمجة تطبيقات الويب التي أنشأتها في الخطوة 2.4.

الخطوة 6: تشغيل واختبار تطبيق الأجهزة المحمولة

  1. بناء وتشغيل المشروع.

  2. في أعلى اليسار، حدد رمز hamburger (الذي يسمى أيضًا رمز القائمة المطوية)، كما هو موضح هنا:

    Screenshot highlighting the hamburger, or collapsed menu, icon.

  3. في الجزء الأيسر حدد وضع B2C.

    Screenshot highlighting the

  4. قم بتحديد تشغيل Flow المستخدم.

    Screenshot highlighting the

  5. قم بالتسجيل أو تسجيل الدخول باستخدام حسابك المحلي أو الاجتماعي Microsoft Azure Active Directory B2C.

  6. بعد مصادقة ناجحة، سترى الاسم المعروض في جزء وضع B2C.

    Screenshot showing a successful authentication, with signed-in user and policy displayed.

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

تعلم كيف: