المصادقة المخصصة في Azure Static Web Apps
توفر Azure Static Web Apps مصادقة مدارة تستخدم تسجيلات الموفر التي تديرها Azure. لتمكين المزيد من المرونة على التسجيل، يمكنك تجاوز الإعدادات الافتراضية بتسجيل مخصص.
تسمح لك المصادقة المخصصة أيضا بتكوين موفرين مخصصين يدعمون OpenID Connect. يسمح هذا التكوين بتسجيل موفرين خارجيين متعددين.
يؤدي استخدام أي تسجيلات مخصصة إلى تعطيل جميع الموفرين الذين تم تكوينهم مسبقا.
إشعار
تتوفر المصادقة المخصصة فقط في خطة 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.
إذا لم تكن موجودة بالفعل، فحمل شهادتك إلى Microsoft Key Vault.
أضف هوية مدارة على تطبيق الويب الثابت.
بالنسبة للهويات المدارة المعينة من قبل المستخدم، قم بتعيين
keyVaultReferenceIdentity
الخاصية على كائن الموقع الثابت إلىresourceId
الهوية المدارة المعينة من قبل المستخدم.تخطي هذه الخطوة إذا تم تعيين النظام لهويتك المدارة.
امنح الهوية المدارة نهج الوصول التالية:
- البيانات السرية: الحصول على/قائمة
- الشهادات: الحصول على/قائمة
تحديث قسم تكوين المصادقة في
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 | اسم المستخدم |
س | اسم المستخدم |
استخدم الخطوات التالية لإنشاء دعوة.
- انتقل إلى مورد Static Web Apps في مدخل Microsoft Azure.
- ضمن Settings، حدد Role Management.
- حدد دعوة.
- حدد موفر تخويل من قائمة الخيارات.
- أضف اسم المستخدم أو عنوان البريد الإلكتروني للمستلم في مربع تفاصيل المدعو.
- بالنسبة إلى GitHub وX، أدخل اسم المستخدم. بالنسبة لجميع الآخرين، أدخل عنوان البريد الإلكتروني للمستلم.
- حدد مجال موقعك الثابت من القائمة المنسدلة المجال .
- المجال الذي تحدده هو المجال الذي يظهر في الدعوة. إذا كان لديك مجال مخصص مقترن بموقعك، فاختر المجال المخصص.
- أضف قائمة بأسماء الأدوار مفصولة بفواصل في المربع دور .
- أدخل الحد الأقصى لعدد الساعات التي تريد أن تظل فيها الدعوة صالحة.
- الحد الأقصى الممكن هو 168 ساعة، وهو سبعة أيام.
- حدد إنشاء.
- انسخ الارتباط من مربع الارتباط دعوة.
- أرسل ارتباط الدعوة بالبريد الإلكتروني إلى المستخدم الذي تمنح حق الوصول إليه.
عندما يحدد المستخدم الارتباط في الدعوة، تتم مطالبته بتسجيل الدخول باستخدام حسابه المقابل. بمجرد تسجيل الدخول بنجاح، يتم إقران المستخدم بالأدوار المحددة.
تنبيه
تأكد من أن قواعد المسار الخاصة بك لا تتعارض مع موفري المصادقة المحددين. يؤدي حظر موفر باستخدام قاعدة توجيه إلى منع المستخدمين من قبول الدعوات.
تحديث تعيينات الأدوار
- انتقل إلى مورد Static Web Apps في مدخل Microsoft Azure.
- ضمن Settings، حدد Role Management.
- حدد المستخدم في القائمة.
- قم بتحرير قائمة الأدوار في مربع الدور .
- حدد تحديث.
إزالة المستخدم
- انتقل إلى مورد Static Web Apps في مدخل Microsoft Azure.
- ضمن Settings، حدد Role Management.
- حدد موقع المستخدم في القائمة.
- حدد خانة الاختيار في صف المستخدم.
- حدد حذف.
أثناء إزالة مستخدم، ضع في اعتبارك العناصر التالية:
- تؤدي إزالة مستخدم إلى إبطال أذوناته.
- قد يستغرق الانتشار في جميع أنحاء العالم بضع دقائق.
- إذا تمت إضافة المستخدم مرة أخرى إلى التطبيق، يتغير
userId
.