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

تحذير

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

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

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

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

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

كن على دراية بالإعدادات الافتراضية والموارد التالية للمصادقة والتخويل باستخدام 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، يمكنك تضمين شيء مشابه للارتباط التالي.

<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 configure this behavior, 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 للطلبات إلى المسار الخاص بالموفر المحظور. على سبيل المثال، لتقييد 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.

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