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

يستخدم هذا المقال عينة تطبيق ويب ASP.NET لشرح كيفية إضافة مصادقة Microsoft Azure Active Directory B2C (Azure AD B2C) إلى تطبيقات الويب.

هام

لا يمكن استخدام نموذج تطبيق الويب ASP.NET المشار إليه في هذه المقالة لاستدعاء REST API؛ لأنه يرجع رمز معرف، وليس رمز وصول. للحصول على تطبيق ويب يمكنه استدعاء واجهة برمجة تطبيقات REST، راجع تأمين واجهة برمجة تطبيقات الويب التي تم إنشاؤها باستخدام ASP.NET Core باستخدام Azure AD B2C.

نظرة عامة

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

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

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

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

تسجيل الخروج

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

  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: سجل تطبيق ويب

لتمكين التطبيق الخاص بك لتسجيل الدخول باستخدام Microsoft Azure AD B2C، قم بتسجيل التطبيق في دليل Microsoft Azure AD B2C. تسجيل التطبيق الخاص بك يؤسس علاقة ثقة بين التطبيق ومتاجرة عمل-مستهلك AAD (دليل Azure النشط).

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

لإنشاء تسجيل تطبيق الويب، استخدم الخطوات التالية:

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

  2. إذا كان لديك حق الوصول إلى عدة مستأجرين، فحدد رمز الإعدادات في القائمة العلوية للتبديل إلى مستأجر Azure AD B2C من قائمة Directories + subscriptions.

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

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

  5. ضمنالاسم، أدخل اسمًا للتطبيق (على سبيل المثال، webapp1).

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

  7. بمقتضىRedirect URI، حددويب، ثم أدخلhttps://localhost:44316/signin-oidcفي المربع النصي لعنوان URL.

  8. ضمن المصادقة، انتقل إلى المنح الضمنية والتدفقات المختلطة، وحدد خانة الاختيار رموز المعرف المميزة (المستخدمة للتدفقات الضمنية والمختلطة).

  9. ضمنأذونات الوصول، حدد مربع الاختيارلمنح موافقة المسؤول لفتح أذونات دخول والوصول عند عدم الاتصال بالإنترنت.

  10. حدد تسجيل.

  11. حدد نظرة عامة.

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

    Screenshot of the web app Overview page for recording your web application ID.

الخطوة 3: احصل على نموذج تطبيق الويب

تنزيل ملف zipأو نسخ عينة تطبيق الويب من GitHub.

git clone https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2

استخراج عينة الملف إلى مجلد حيث الطول الإجمالي للمسار هو 260 حرفًا أو أقل.

الخطوة 4: تكوين عينة تطبيق ويب

في مجلد العينة، ضمن المجلد 1-WebApp-OIDC/1-5-B2C/، افتح مشروع WebApp-OpenID الاتصال-DotNet.csproj مع Visual Studio أو Visual Studio Code.

ضمن المجلد الجذر للمشروع، افتح ملف appsettings.json. يحتوي هذا الملف على معلومات حول موفر الهوية Microsoft Azure AD B2C. تحديث خواص إعدادات التطبيق التالية:

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

ينبغي أن يبدو ملف التكوين النهائي مثل JSON التالي:

"AzureAdB2C": {
  "Instance": "https://contoso.b2clogin.com",
  "Domain": "contoso.onmicrosoft.com",
  "ClientId": "<web-app-application-id>",
  "SignedOutCallbackPath": "/signout/<your-sign-up-in-policy>",
  "SignUpSignInPolicyId": "<your-sign-up-in-policy>"
}

الخطوة 5: تشغيل عينة تطبيق الويب

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

  2. انتقل إلى https://localhost:44316.

  3. حدد التسجيل/الدخول.

    Screenshot of the sign in and sign up button on the project Welcome page.

  4. أكمل عملية التسجيل أو تسجيل الدخول.

بعد المصادقة الناجحة، سترى اسم العرض في شريط التنقل. لعرض المطالبات التي يعمل Microsoft Azure AD B2C على إرجاعها إلى التطبيق، حدد Claims.

Screenshot of the web app token claims.

نشر تطبيقك

في التطبيق المنتج، يكون عنوان URI لإعادة توجيه تسجيل التطبيق عادةً نقطة نهاية يمكن الوصول إليها بشكل عام حيث يتم تشغيل التطبيق، مثلhttps://contoso.com/signin-oidc.

يمكنك إضافة وتعديل عناوين "URI" لإعادة التوجيه في تطبيقاتك المسجلة في أي وقت. تنطبق القيود التالية على إعادة توجيه عناوين "URI":

  • يجب أن يبدأ عنوان URL للرد بنظام https.
  • يكون عنوان "URL" للرد حساسًا لحالة الأحرف. يجب أن تتطابق حالته مع حالة مسار عنوان "URL" للتطبيق قيد التشغيل.

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