المصادقة المخصصة في 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_APP_SETTING_NAME اسم إعداد التطبيق الذي يحتوي على سر العميل لتسجيل تطبيق 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_APP_SETTING_NAME"
        }
      }
    }
  }
}

تأكد من استبدال <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_APP_SETTING_NAME"
        }
      }
    }
  }
}

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

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

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

إشعار

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

شهادة مخصصة

استخدم الخطوات التالية لإضافة شهادة مخصصة إلى تسجيل تطبيق Microsoft Entra ID.

  1. إذا لم تكن موجودة بالفعل، فحمل شهادتك إلى Microsoft Key Vault.

  2. أضف هوية مدارة على تطبيق الويب الثابت.

    بالنسبة للهويات المدارة المعينة من قبل المستخدم، قم بتعيين keyVaultReferenceIdentity الخاصية على كائن الموقع الثابت إلى resourceId الهوية المدارة المعينة من قبل المستخدم.

    تخطي هذه الخطوة إذا تم تعيين النظام لهويتك المدارة.

  3. امنح الهوية المدارة نهج الوصول التالية:

    • البيانات السرية: الحصول على/قائمة
    • الشهادات: الحصول على/قائمة
  4. تحديث قسم تكوين المصادقة في azureActiveDirectory قسم التكوين بقيمة clientSecretCertificateKeyVaultReference كما هو موضح في المثال التالي:

    {
      "auth": {
        "rolesSource": "/api/GetRoles",
        "identityProviders": {
          "azureActiveDirectory": {
            "userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
            "registration": {
              "openIdIssuer": "https://login.microsoftonline.com/common/v2.0",
              "clientIdSettingName": "AZURE_CLIENT_ID",
              "clientSecretCertificateKeyVaultReference": "@Microsoft.KeyVault(SecretUri=https://<KEY_VAULT_NAME>.azure.net/certificates/<CERTIFICATE_NAME>/<CERTIFICATE_VERSION_ID>)",
              "clientSecretCertificateThumbprint": "*"
            }
          }
        }
      }
    }
    

    تأكد من استبدال القيم الخاصة بك في للعناصر النائبة محاطة ب <>.

    في URI السري، حدد اسم مخزن المفاتيح واسم الشهادة. إذا كنت تريد تثبيت إصدار، فقم بتضمين إصدار الشهادة، وإلا فاحذف الإصدار للسماح لوقت التشغيل بتحديد أحدث إصدار من الشهادة.

    تعيين clientSecretCertificateThumbprint يساوي * لسحب أحدث إصدار من بصمة الإبهام للشهادات دائما.

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

يتطلب موفرو الهوية عنوان 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 اسم المستخدم
س اسم المستخدم

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

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

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

تنبيه

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

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

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

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

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

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

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

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