مصادقة تطبيقات الويب الثابتة وتخويلها

توفر Azure Static Web Apps تجربة مصادقة مبسطة، حيث لا يلزم تكوين إضافي لاستخدام GitHub ومعرف Microsoft Entra للمصادقة.

في هذه المقالة، تعرف على السلوك الافتراضي، وكيفية إعداد تسجيل الدخول والخروج، وكيفية حظر موفر المصادقة، والمزيد.

يمكنك تسجيل موفر مخصص، والذي يعطل جميع الموفرين الذين تم تكوينهم مسبقا.

تحذير

نظرا للتغييرات في نهج واجهة برمجة التطبيقات X (المعروف سابقا باسم Twitter)، لا يتوفر الدعم كجزء من الموفرين الذين تم تكوينهم مسبقا لتطبيقك. إذا كنت تريد الاستمرار في استخدام X (المعروف سابقا باسم Twitter) للمصادقة/التخويل مع تطبيقك، فقم بتحديث تكوين التطبيق لتسجيل موفر مخصص.

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

كن على دراية بالإعدادات الافتراضية والموارد التالية للمصادقة والتخويل باستخدام Azure Static Web Apps.

افتراضيات:

  • يمكن لأي مستخدم المصادقة مع موفر تم تكوينه مسبقا
    • GitHub
    • Microsoft Entra ID
    • لتقييد موفر مصادقة، قم بحظر الوصول باستخدام قاعدة توجيه مخصصة
  • بعد تسجيل الدخول، ينتمي المستخدمون إلى anonymous الأدوار و authenticated . لمزيد من المعلومات حول الأدوار، راجع إدارة الأدوار

موارد:

  • تعريف القواعد في ملف staticwebapp.config.json للمستخدمين المعتمدين للوصول إلى المسارات المقيدة
  • تعيين أدوار مخصصة للمستخدمين باستخدام نظام الدعوات المضمن
  • تعيين أدوار مخصصة للمستخدمين برمجيا عند تسجيل الدخول باستخدام وظيفة واجهة برمجة التطبيقات
  • فهم أن المصادقة والتخويل يتداخلان بشكل كبير مع مفاهيم التوجيه، والتي يتم تفصيلها في دليل تكوين التطبيق
  • تقييد تسجيل الدخول إلى مستأجر معرف Microsoft Entra معين عن طريق تكوين موفر معرف Microsoft Entra مخصص. يسمح موفر معرف Microsoft Entra الذي تم تكوينه مسبقا لأي حساب Microsoft بتسجيل الدخول.

إعداد تسجيل الدخول

تستخدم /.auth Azure Static Web Apps مجلد النظام لتوفير الوصول إلى واجهات برمجة التطبيقات المتعلقة بالتخويل. بدلا من عرض أي من المسارات الموجودة ضمن /.auth المجلد مباشرة للمستخدمين النهائيين، قم بإنشاء قواعد توجيه لعناوين URL المألوفة.

استخدم الجدول التالي للعثور على المسار الخاص بالموفر.

موفر التخويل مسار تسجيل الدخول
Microsoft Entra ID /.auth/login/aad
GitHub /.auth/login/github

على سبيل المثال، لتسجيل الدخول باستخدام GitHub، يمكنك استخدام عنوان URL مشابه للمثال التالي.

<a href="/.auth/login/github">Login</a>

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

{
  "route": "/login",
  "redirect": "/.auth/login/github"
}

إعداد إعادة توجيه ما بعد تسجيل الدخول

يمكنك إرجاع مستخدم إلى صفحة معينة بعد تسجيل الدخول عن طريق توفير عنوان URL مؤهل بالكامل في معلمة post_login_redirect_uri سلسلة الاستعلام.

<a href="/.auth/login/github?post_login_redirect_uri=https://zealous-water.azurestaticapps.net/success">Login</a>

You can also redirect unauthenticated users back to the referring page after they sign in. To add this redirect, create a response override rule that sets post_login_redirect_uri to .referrer, like in the following example.

{
  "responseOverrides": {
    "401": {
      "redirect": "/.auth/login/github?post_login_redirect_uri=.referrer",
      "statusCode": 302
    }
  }
}

إعداد تسجيل الخروج

يقوم /.auth/logout المسار بتسجيل خروج المستخدمين من موقع الويب. يمكنك إضافة ارتباط إلى التنقل في الموقع للسماح للمستخدم بتسجيل الخروج، كما في المثال التالي.

<a href="/.auth/logout">Log out</a>

استخدم قاعدة توجيه لتعيين مسار مألوف مثل /logout.

{
  "route": "/logout",
  "redirect": "/.auth/logout"
}

إعداد إعادة توجيه ما بعد تسجيل الخروج

لإرجاع مستخدم إلى صفحة معينة بعد تسجيل الخروج، قم بتوفير عنوان URL في post_logout_redirect_uri معلمة سلسلة الاستعلام.

حظر موفر مصادقة

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

لحظر موفر، قم بإنشاء قاعدة توجيه لإرجاع 404 رمز حالة للطلبات إلى المسار الخاص بالموفر المحظور. على سبيل المثال، لتقييد X (المعروف سابقا باسم Twitter) كموفر، أضف قاعدة المسار التالية.

{
  "route": "/.auth/login/twitter",
  "statusCode": 404
}

إزالة البيانات الشخصية

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

يحتاج المستخدمون النهائيون إلى الاتصال بمسؤولي تطبيقات الويب الفردية لإبطال هذه المعلومات من أنظمتهم.

لإزالة البيانات الشخصية من النظام الأساسي ل Azure Static Web Apps، ومنع النظام الأساسي من توفير هذه المعلومات حول الطلبات المستقبلية، أرسل طلبا باستخدام عنوان URL التالي:

https://identity.azurestaticapps.net/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

To prevent the platform from providing this information on future requests to individual apps, submit a request using the following URL:

https://<WEB_APP_DOMAIN_NAME>/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

If you're using Microsoft Entra ID, use aad as the value for the <AUTHENTICATION_PROVIDER_NAME> placeholder.

Tip

For information about general restrictions and limitations, see Quotas.

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