المصادقة المخصصة في Azure Static Web Apps

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

إشعار

تتوفر المصادقة المخصصة فقط في خطة Azure Static Web Apps Standard.

تكوين موفر هوية مخصص

يتم تكوين موفري الهوية المخصصين في auth قسم من ملف التكوين.

لتجنب وضع الأسرار في التحكم بالمصادر، يبحث التكوين في إعدادات التطبيق لاسم مطابق في ملف التكوين. يمكنك أيضا اختيار تخزين أسرارك في Azure Key Vault.

لإنشاء التسجيل، ابدأ بإنشاء إعدادات التطبيق التالية:

اسم الإعداد القيمة‬
AZURE_CLIENT_ID معرف التطبيق (العميل) لتسجيل تطبيق Microsoft Entra.
AZURE_CLIENT_SECRET سر العميل لتسجيل تطبيق Microsoft Entra.

بعد ذلك، استخدم النموذج التالي لتكوين الموفر في ملف التكوين.

يتوفر موفرو Microsoft Entra في إصدارين مختلفين. يحدد userDetailsClaimالإصدار 1 بشكل صريح ، والذي يسمح للحمولة بإعادة معلومات المستخدم. وعلى النقيض من ذلك، يقوم الإصدار 2 بإرجاع معلومات المستخدم بشكل افتراضي، ويتم تعيينه بواسطة v2.0 في openIdIssuer عنوان URL.

Microsoft Entra الإصدار 1

{
  "auth": {
    "identityProviders": {
      "azureActiveDirectory": {
        "userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
        "registration": {
          "openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>",
          "clientIdSettingName": "AZURE_CLIENT_ID",
          "clientSecretSettingName": "AZURE_CLIENT_SECRET"
        }
      }
    }
  }
}

تأكد من استبدال <TENANT_ID> بمعرف مستأجر Microsoft Entra.

Microsoft Entra الإصدار 2

{
  "auth": {
    "identityProviders": {
      "azureActiveDirectory": {
        "registration": {
          "openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>/v2.0",
          "clientIdSettingName": "AZURE_CLIENT_ID",
          "clientSecretSettingName": "AZURE_CLIENT_SECRET"
        }
      }
    }
  }
}

تأكد من استبدال <TENANT_ID> بمعرف مستأجر Microsoft Entra.

لمزيد من المعلومات حول كيفية تكوين معرف Microsoft Entra، راجع وثائق مصادقة/تخويل خدمة التطبيقات حول استخدام تسجيل موجود.

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

إشعار

بينما قسم التكوين لمعرف Microsoft Entra هو azureActiveDirectory، فإن النظام الأساسي يسمي هذا aad في عنوان URL لتسجيل الدخول وتسجيل الخروج وإزالة معلومات المستخدم. راجع قسم المصادقة والتخويل للحصول على مزيد من المعلومات.

عمليات رد اتصال المصادقة

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

النوع نمط عنوان URL
تسجيل الدخول https://<YOUR_SITE>/.auth/login/<PROVIDER_NAME_IN_CONFIG>/callback
تسجيل الخروج https://<YOUR_SITE>/.auth/logout/<PROVIDER_NAME_IN_CONFIG>/callback

إذا كنت تستخدم معرف Microsoft Entra، فاستخدم aad كقيمة <PROVIDER_NAME_IN_CONFIG> العنصر النائب.

إشعار

يتم توفير عناوين URL هذه بواسطة Azure Static Web Apps لتلقي الاستجابة من موفر المصادقة، لا تحتاج إلى إنشاء صفحات في هذه المسارات.

تفاصيل تسجيل الدخول وتسجيل الخروج والمستخدم

لاستخدام موفر هوية مخصص، استخدم أنماط URL التالية.

الإجراء النمط
تسجيل الدخول /.auth/login/<PROVIDER_NAME_IN_CONFIG>
تسجيل الخروج /.auth/logout
تفاصيل المستخدم /.auth/me
إزالة تفاصيل المستخدم /.auth/purge/<PROVIDER_NAME_IN_CONFIG>

إذا كنت تستخدم معرف Microsoft Entra، فاستخدم aad كقيمة <PROVIDER_NAME_IN_CONFIG> العنصر النائب.

إدارة الأدوار

ينتمي كل مستخدم يصل إلى تطبيق ويب ثابت إلى دور واحد أو أكثر. هناك دوران مضمنان يمكن للمستخدمين الانتماء إلىهما:

  • مجهول: ينتمي جميع المستخدمين تلقائيا إلى الدور المجهول .
  • مصادق عليه: ينتمي جميع المستخدمين الذين سجلوا الدخول إلى الدور المصادق عليه .

بالإضافة إلى الأدوار المضمنة، يمكنك تعيين أدوار مخصصة للمستخدمين، والإشارة إليها في ملف staticwebapp.config.json .

إضافة مستخدم إلى دور

لإضافة مستخدم إلى دور، يمكنك إنشاء دعوات تسمح لك بربط المستخدمين بأدوار محددة. يتم تعريف الأدوار وصيانتها في ملف staticwebapp.config.json .

قم بإنشاء دعوة

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

موفر التخويل يعرض
Microsoft Entra ID عنوان البريد الإلكتروني
GitHub اسم المستخدم
موقع Twitter اسم المستخدم

قم بالخطوات التالية لإنشاء دعوة.

  1. انتقل إلى مورد Static Web Apps في مدخل Microsoft Azure.
  2. ضمن الإعدادات، حدد إدارة الأدوار.
  3. حدِّد دعوة.
  4. حدد موفر تخويل من قائمة الخيارات.
  5. أضف اسم المستخدم أو عنوان البريد الإلكتروني للمستلم في مربع تفاصيل المدعو.
    • بالنسبة إلى GitHub وTwitter، أدخل اسم المستخدم. بالنسبة لجميع الآخرين، أدخل عنوان البريد الإلكتروني للمستلم.
  6. حدد مجال موقعك الثابت من القائمة المنسدلة المجال .
    • المجال الذي تحدده هو المجال الذي يظهر في الدعوة. إذا كان لديك مجال مخصص مقترن بموقعك، فاختر المجال المخصص.
  7. أضف قائمة بأسماء الأدوار مفصولة بفواصل في المربع دور .
  8. أدخل الحد الأقصى لعدد الساعات التي تريد أن تظل فيها الدعوة صالحة.
    • الحد الأقصى الممكن هو 168 ساعة، وهو سبعة أيام.
  9. حدد إنشاء.
  10. انسخ الارتباط من مربع الارتباط دعوة.
  11. أرسل ارتباط الدعوة بالبريد الإلكتروني إلى المستخدم الذي تمنح حق الوصول إليه.

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

تنبيه

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

تحديث تعيينات الأدوار

  1. انتقل إلى مورد Static Web Apps في مدخل Microsoft Azure.
  2. ضمن الإعدادات، حدد إدارة الأدوار.
  3. حدد المستخدم في القائمة.
  4. قم بتحرير قائمة الأدوار في مربع الدور .
  5. حدد تحديث.

إزالة المستخدم

  1. انتقل إلى مورد Static Web Apps في مدخل Microsoft Azure.
  2. ضمن الإعدادات، حدد إدارة الأدوار.
  3. حدد موقع المستخدم في القائمة.
  4. حدد خانة الاختيار في صف المستخدم.
  5. حدد حذف.

أثناء إزالة مستخدم، ضع في اعتبارك العناصر التالية:

  • تؤدي إزالة مستخدم إلى إبطال أذوناته.
  • قد يستغرق الانتشار في جميع أنحاء العالم بضع دقائق.
  • إذا تمت إضافة المستخدم مرة أخرى إلى التطبيق، يتغيرuserId.

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