إطار الأمان: التخويل | التخفيفات
المنتج /الخدمة | مقال |
---|---|
حد ثقة الجهاز | |
تطبيق ويب |
|
قاعدة بيانات | |
بوابة سحابة IoT | |
مركز الحدث Azure | |
Azure Document DB | |
Azure Trust Boundary | |
حدود الثقة في Service Fabric | |
Dynamics CRM | |
مدخل Dynamics CRM | |
تخزين Azure | |
عميل الجوال | |
WCF | |
واجهة برمجة تطبيقات الويب | |
جهاز إنترنت الأشياء | |
بوابة حقل IoT |
تأكد من تكوين قوائم التحكم في الوصول (ACL) المناسبة لتقييد الوصول غير المصرح به إلى البيانات الموجودة على الجهاز
العنوان | التفاصيل |
---|---|
المكون | حد ثقة الجهاز |
مرحلة SDL | التوزيع |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | تأكد من تكوين قوائم التحكم في الوصول (ACL) المناسبة لتقييد الوصول غير المصرح به إلى البيانات الموجودة على الجهاز |
تأكد من تخزين محتوى التطبيق الحساس الخاص بالمستخدم في دليل ملف تعريف المستخدم
العنوان | التفاصيل |
---|---|
المكون | حد ثقة الجهاز |
مرحلة SDL | التوزيع |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | تأكد من تخزين محتوى التطبيق الحساس الخاص بالمستخدم في دليل ملف تعريف المستخدم. هذا لمنع العديد من مستخدمي الجهاز من الوصول إلى بيانات بعضهم البعض. |
تأكد من تشغيل التطبيقات التي تم توزيعها بأقل امتيازات
العنوان | التفاصيل |
---|---|
المكون | حد ثقة الجهاز |
مرحلة SDL | التوزيع |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | تأكد من تشغيل التطبيق المنشور بأقل الامتيازات. |
فرض ترتيب متسلسل للخطوات عند معالجة تدفقات منطق الأعمال
العنوان | التفاصيل |
---|---|
المكون | تطبيق ويب |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | من أجل التحقق من أن هذه المرحلة قد تم تشغيلها من قبل مستخدم حقيقي، فأنت تريد فرض التطبيق لمعالجة تدفقات منطق الأعمال فقط بترتيب خطوات متسلسل، مع معالجة جميع الخطوات في وقت بشري واقعي، وليس معالجة خارج الترتيب، تم تخطي الخطوات أو معالجة الخطوات من مستخدم آخر أو إرسال العمليات بسرعة كبيرة. |
تنفيذ آلية تحديد المعدل لمنع التعداد
العنوان | التفاصيل |
---|---|
المكون | تطبيق ويب |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | تأكد من أن المعرفات الحساسة عشوائية. تنفيذ عنصر تحكم CAPTCHA على صفحات مجهولة الهوية. تأكد من أن الخطأ والاستثناء لا ينبغي أن يكشف عن بيانات محددة |
تأكد من وجود التخويل المناسب واتباع كيان الامتيازات الأقل
العنوان | التفاصيل |
---|---|
المكون | تطبيق ويب |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | الكيان يعني إعطاء حساب مستخدم فقط تلك الامتيازات الضرورية لعمل المستخدمين. على سبيل المثال، لا يحتاج مستخدم النسخ الاحتياطي إلى تثبيت برنامج: وبالتالي، فإن مستخدم النسخ الاحتياطي له حقوق فقط لتشغيل التطبيقات المتعلقة بالنسخ الاحتياطي والنسخ الاحتياطي. يتم حظر أي امتيازات أخرى، مثل تثبيت برنامج جديد. ينطبق الكيان أيضاً على مستخدم الكمبيوتر الشخصي الذي يعمل عادةً في حساب مستخدم عادي، ويفتح حساباً مميزاً ومحمياً بكلمة مرور (أي مستخدم متميز) فقط عندما يتطلب الموقف ذلك تماماً. يمكن أيضاً تطبيق هذا الكيان على تطبيقات الويب الخاصة بك. بدلاً من الاعتماد فقط على أساليب المصادقة المستندة إلى الأدوار باستخدام الجلسات، نرغب بدلاً من ذلك في تعيين امتيازات للمستخدمين عن طريق نظام المصادقة المستند إلى قاعدة البيانات. ما زلنا نستخدم الجلسات من أجل تحديد ما إذا كان المستخدم قد سجل الدخول بشكل صحيح أم لا، الآن فقط بدلاً من تخصيص دور معين لهذا المستخدم، نقوم بتعيين امتيازات له للتحقق من الإجراءات التي يتمتع بامتيازات القيام بها على النظام. أيضاً أحد المحترفين الكبار في هذه الطريقة هو أنه كلما احتاج المستخدم إلى تعيين امتيازات أقل، سيتم تطبيق تغييراتك على الفور لأن التعيين لا يعتمد على الجلسة التي كان يجب أن تنتهي صلاحيتها أولاً. |
منطق العمل وقرارات تخويل الوصول إلى الموارد يجب ألا تستند إلى معامِلات الطلبات الواردة
العنوان | التفاصيل |
---|---|
المكون | تطبيق ويب |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | عندما تتحقق مما إذا كان المستخدم مقيداً بمراجعة بيانات معينة، يجب معالجة قيود الوصول من جانب الخادم. يجب تخزين معرف المستخدم داخل متغير جلسة عند تسجيل الدخول ويجب استخدامه لاسترداد بيانات المستخدم من قاعدة البيانات |
مثال
SELECT data
FROM personaldata
WHERE userID=:id < - session var
الآن لا يمكن للمهاجم المحتمل العبث بعملية التطبيق وتغييرها نظرا لأنه يتم التعامل مع معرف استرداد البيانات من جانب الخادم.
تأكد من عدم إمكانية تعداد المحتوى والموارد أو عدم إمكانية الوصول إليها من خلال التصفح الإجباري
العنوان | التفاصيل |
---|---|
المكون | تطبيق ويب |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | يجب عدم الاحتفاظ بملفات التكوين الحساسة والثابتة في جذر الويب. بالنسبة للمحتوى غير المطلوب أن يكون عاماً، يجب إما تطبيق ضوابط الوصول المناسبة أو إزالة المحتوى نفسه. أيضاً، عادةً ما يتم الجمع بين التصفح القوي وتقنيات القوة الغاشمة لجمع المعلومات من خلال محاولة الوصول إلى أكبر عدد ممكن من عناوين URL لتعداد الأدلة والملفات الموجودة على الخادم. قد يتحقق المهاجمون من جميع أنواع الملفات الموجودة بشكل شائع. على سبيل المثال، قد يشمل البحث عن ملف كلمة المرور الملفات بما في ذلك psswd.txt وpassword.htm وpassword.dat وغيرها من الأشكال. للتخفيف من ذلك، يجب تضمين قدرات الكشف عن محاولات القوة الغاشمة. |
تأكد من استخدام الحسابات الأقل امتيازاً للاتصال بخادم قاعدة البيانات
العنوان | التفاصيل |
---|---|
المكون | قاعدة بيانات |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | التسلسل الهرمي لأذونات SQL، عناصر تأمين SQL |
الخطوات | يجب استخدام الحسابات الأقل امتيازاً للاتصال بقاعدة البيانات. يجب تقييد تسجيل الدخول إلى التطبيق في قاعدة البيانات ويجب فقط تنفيذ الإجراءات المخزنة المحددة. يجب ألا يكون لتسجيل الدخول إلى التطبيق وصول مباشر للجدول. |
قم بتطبيق RLS Security على مستوى الصف لمنع المستأجرين من الوصول إلى بيانات بعضهم البعض
العنوان | التفاصيل |
---|---|
المكون | قاعدة بيانات |
مرحلة SDL | بناء |
التقنيات المعمول بها | Sql Azure, OnPrem |
السمات | إصدار SQL - V12، إصدار SQL - MsSQL2016 |
المراجع | أمان مستوى صف Microsoft SQL Server (RLS) |
الخطوات | يمكّن أمان مستوى الصف العملاء من التحكم في الوصول إلى الصفوف في جدول قاعدة البيانات بناءً على خصائص المستخدم الذي يقوم بتنفيذ استعلام (على سبيل المثال، عضوية المجموعة أو سياق التنفيذ). يبسط أمان مستوى الصف (RLS) تصميم الأمان وترميزه في تطبيقك. يمكنك أمان مستوى الصف (RLS) من تطبيق قيود على الوصول إلى صف البيانات. على سبيل المثال، ضمان أن العمال يمكنهم الوصول فقط إلى صفوف البيانات ذات الصلة بقسمهم، أو تقييد وصول العميل إلى البيانات على البيانات ذات الصلة بشركتهم فقط. يوجد منطق تقييد الوصول في طبقة قاعدة البيانات وليس بعيدا عن البيانات في طبقة تطبيق آخر. يطبق نظام قاعدة البيانات قيود الوصول في كل مرة تتم فيها محاولة الوصول إلى البيانات من أي طبقة. هذا يجعل نظام الأمان أكثر موثوقية وقوة عن طريق تقليل مساحة سطح نظام الأمان. |
يرجى ملاحظة أن RLS كميزة قاعدة بيانات جاهزة تنطبق فقط على SQL Server بدءاً من عام 2016 وAzure SQL Database ومثيل SQL المُدار. إذا لم يتم تنفيذ ميزة RLS الجاهزة، يجب التأكد من تقييد الوصول إلى البيانات باستخدام طرق العرض والإجراءات
يجب أن يحتوي دور مسؤول النظام على المستخدمين الضروريين الصالحين فقط
العنوان | التفاصيل |
---|---|
المكون | قاعدة بيانات |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | التسلسل الهرمي لأذونات SQL، عناصر تأمين SQL |
الخطوات | يجب أن يكون عدد أعضاء دور خادم SysAdmin الثابت محدوداً جداً ومن دون حسابات مستخدمة بواسطة التطبيقات أبداً. يرجى مراجعة قائمة المستخدمين في الدور وإزالة أي حسابات غير ضرورية |
الاتصال بـ Cloud بوابة باستخدام الرموز المميزة الأقل امتيازاً
العنوان | التفاصيل |
---|---|
المكون | بوابة سحابة IoT |
مرحلة SDL | التوزيع |
التقنيات المعمول بها | العام |
السمات | اختيار البوابة - Azure IoT Hub |
المراجع | التحكم في الوصول إلى Iot Hub |
الخطوات | قم بتوفير أذونات الامتياز الأقل للمكونات المختلفة التي تتصل بـ Cloud بوابة (IoT Hub). المثال النموذجي هو - يستخدم مكون إدارة/توفير الجهاز قراءة/كتابة السجل، بينما يستخدم معالج الأحداث (ASA) اتصال الخدمة. تتصل الأجهزة الفردية باستخدام بيانات اعتماد الجهاز |
استخدم مفتاح SAS لأذونات الإرسال فقط لإنشاء الرموز المميزة للجهاز
العنوان | التفاصيل |
---|---|
المكون | Azure Event Hub |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | نظرة عامة على نموذج الأمان ومصادقة مراكز الأحداث |
الخطوات | يتم استخدام مفتاح SAS لإنشاء الرموز المميزة للجهاز الفردي. استخدم مفتاح SAS لأذونات الإرسال فقط أثناء إنشاء رمز الجهاز لناشر معين |
لا تستخدم رموز الوصول التي توفر وصولاً مباشراً إلى Event Hub
العنوان | التفاصيل |
---|---|
المكون | Azure Event Hub |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | نظرة عامة على نموذج الأمان ومصادقة مراكز الأحداث |
الخطوات | يجب ألا يتم منح الجهاز رمزاً مميزاً يمنح وصولاً مباشراً إلى مركز الحدث. إن استخدام رمز مميز للجهاز الذي يمنح حق الوصول للناشر فقط من شأنه أن يساعد في تحديده وعدم السماح به إذا تبين أنه جهاز مخادع أو مخترق. |
اتصل بمركز الأحداث باستخدام مفاتيح SAS التي لديها الحد الأدنى من الأذونات المطلوبة
العنوان | التفاصيل |
---|---|
المكون | Azure Event Hub |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | نظرة عامة على نموذج الأمان ومصادقة مراكز الأحداث |
الخطوات | قدم أذونات الامتياز الأقل للعديد من التطبيقات الخلفية التي تتصل بـ Event Hub. قم بإنشاء مفاتيح SAS منفصلة لكل تطبيق خلفي وقم فقط بتوفير الأذونات المطلوبة - الإرسال أو الاستلام أو الإدارة إليهم. |
استخدم الرموز المميزة للمورد للاتصال بـ Azure Cosmos DB كلما أمكن ذلك
العنوان | التفاصيل |
---|---|
المكون | Azure Cosmos DB |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | يرتبط الرمز المميز للمورد بمورد إذن Azure Cosmos DB ويلتقط العلاقة بين مستخدم قاعدة البيانات والإذن الذي يمتلكه المستخدم لمورد تطبيق Azure Cosmos DB معين (مثل المجموعة والمستند). استخدم دائماً رمزاً مميزاً للمورد للوصول إلى Azure Cosmos DB إذا كان العميل لا يمكن الوثوق به في التعامل مع المفاتيح الرئيسية أو مفاتيح القراءة فقط - مثل تطبيق المستخدم النهائي مثل عميل الهاتف المحمول أو سطح المكتب. استخدم المفتاح الرئيسي أو مفاتيح القراءة فقط من التطبيقات الخلفية التي يمكنه تخزين هذه المفاتيح بشكل آمن. |
تمكين إدارة الوصول الدقيقة لاشتراك Azure باستخدام Azure RBAC
العنوان | التفاصيل |
---|---|
المكون | Azure Trust Boundary |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | تعيين أدوار Azure لإدارة الوصول إلى موارد اشتراك Azure |
الخطوات | يتيح التحكم في الوصول المستند إلى الدور (Azure RBAC) إدارة الوصول الدقيقة لـ Azure. باستخدام Azure RBAC، يمكنك فقط منح مقدار الوصول الذي يحتاجه المستخدمون لأداء وظائفهم. |
تقييد وصول العميل إلى عمليات نظام المجموعة باستخدام Service Fabric RBAC
العنوان | التفاصيل |
---|---|
المكون | حدود الثقة في Service Fabric |
مرحلة SDL | التوزيع |
التقنيات المعمول بها | العام |
السمات | البيئة - Azure |
المراجع | التحكم في الوصول المستند إلى دور Service Fabri لعملاء Service Fabri |
الخطوات | يدعم Azure Service Fabric نوعين مختلفين من التحكم في الوصول للعملاء المتصلين بنظام مجموعة Service Fabric: المسؤول والمستخدم. يسمح التحكم في الوصول لمسؤول نظام المجموعة بتقييد الوصول إلى عمليات نظام مجموعة معينة لمجموعات مختلفة من المستخدمين؛ ما يجعل المجموعة أكثر أماناً. يتمتع المسؤولون بحق الوصول الكامل إلى إمكانات الإدارة (بما في ذلك إمكانات القراءة/الكتابة). بشكل افتراضي، لا يتمتع المستخدمون إلا بإمكانية الوصول للقراءة فقط إلى إمكانات الإدارة (على سبيل المثال، إمكانات الاستعلام)، والقدرة على حل التطبيقات والخدمات. يمكنك تحديد دورَي العميل (المسؤول والعميل) في وقت إنشاء نظام المجموعة عن طريق توفير شهادات منفصلة لكل منهما. |
قم بإجراء نمذجة الأمان واستخدم Field Level Security عند الحاجة
العنوان | التفاصيل |
---|---|
المكون | Dynamics CRM |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | قم بإجراء نمذجة الأمان واستخدم Field Level Security عند الحاجة |
إجراء نمذجة الأمان لحسابات المدخل مع الأخذ في الاعتبار أن نموذج الأمان للبوابة الإلكترونية يختلف عن بقية CRM
العنوان | التفاصيل |
---|---|
المكون | مدخل Dynamics CRM |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | إجراء نمذجة الأمان لحسابات المدخل مع الأخذ في الاعتبار أن نموذج الأمان للبوابة الإلكترونية يختلف عن بقية CRM |
منح الإذن الدقيق لمجموعة من الكيانات في Azure Table Storage
العنوان | التفاصيل |
---|---|
المكون | تخزين Azure |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | StorageType - الجدول |
المراجع | كيفية تفويض الوصول إلى العناصر في حساب تخزين Azure الخاص بك باستخدام SAS |
الخطوات | في سيناريوهات أعمال معينة، قد يكون تخزين Azure Table مطلوباً لتخزين البيانات الحساسة التي تلبي احتياجات أطراف مختلفة. على سبيل المثال، البيانات الحساسة المتعلقة ببلدان/مناطق مختلفة. في مثل هذه الحالات، يمكن إنشاء توقيعات SAS عن طريق تحديد القسم ونطاقات مفاتيح الصف، بحيث يمكن للمستخدم الوصول إلى البيانات الخاصة بدولة/منطقة معينة. |
تمكين التحكم في الوصول المستند إلى الدور Azure (Azure RBAC) لحساب تخزين Azure باستخدام Azure Resource Manager
العنوان | التفاصيل |
---|---|
المكون | تخزين Azure |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | كيفية تأمين حساب التخزين الخاص بك باستخدام التحكم في الوصول المستند إلى الدور Azure (Azure RBAC) |
الخطوات | عند إنشاء حساب تخزين جديد، فإنك تحدد نموذج توزيع Classic أو Azure Resource Manager. يسمح النموذج الإصدار classic لإنشاء الموارد في Azure فقط بالوصول الكل أو لا شيء إلى الاشتراك، وبالتالي، حساب التخزين. باستخدام نموذج Azure Resource Manager، يمكنك وضع حساب التخزين في مجموعة موارد والتحكم في الوصول إلى مستوى إدارة حساب التخزين المحدد هذا باستخدام معرف Microsoft Entra. على سبيل المثال، يمكنك منح مستخدمين محددين القدرة على الوصول إلى مفاتيح حساب التخزين، بينما يمكن للمستخدمين الآخرين عرض معلومات بشأن حساب التخزين، لكن لا يمكنهم الوصول إلى مفاتيح حساب التخزين. |
تنفيذ كسر الحماية الضمني أو الكشف عن الجذر
العنوان | التفاصيل |
---|---|
المكون | عميل الجوال |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | يجب أن يحمي التطبيق التكوين الخاص به وبيانات المستخدم في حالة ما إذا كان الهاتف متجذراً أو كسر السجن. يشير التجذير/كسر السجن إلى الوصول غير المصرح به، وهو ما لن يفعله المستخدمون العاديون على هواتفهم الخاصة. لذلك يجب أن يحتوي التطبيق على منطق اكتشاف ضمني عند بدء تشغيل التطبيق، لاكتشاف ما إذا كان الهاتف قد تم عمل روت له. يمكن أن يكون منطق الاكتشاف ببساطة هو الوصول إلى الملفات التي عادةً ما يمكن للمستخدم الجذر فقط الوصول إليها، على سبيل المثال:
إذا كان التطبيق يمكنه الوصول إلى أي من هذه الملفات، فهذا يدل على أن التطبيق يعمل كمستخدم أساسي. |
مرجع فئة ضعيف في WCF
العنوان | التفاصيل |
---|---|
المكون | WCF |
مرحلة SDL | بناء |
التقنيات المعمول بها | عام، NET Framework 3 |
السمات | غير متاح |
المراجع | MSDN، Fortify Kingdom |
الخطوات | يستخدم النظام مرجع فئة ضعيف، ما قد يسمح للمهاجم بتنفيذ تعليمات برمجية غير مصرح بها. يشير البرنامج إلى فئة معرّفة من قبل المستخدم لم يتم تحديدها بشكل فريد. عندما يقوم .NET بتحميل هذه الفئة التي تم تحديدها بشكل ضعيف، يبحث محمل نوع CLR عن الفئة في المواقع التالية بالترتيب المحدد:
إذا استغل المهاجم ترتيب بحث CLR عن طريق إنشاء فئة بديلة بنفس الاسم ووضعها في موقع بديل سيتم تحميل CLR أولاً، فسيقوم CLR بتنفيذ التعليمة البرمجية التي قدمها المهاجم عن غير قصد |
مثال
يوجه العنصر <behaviorExtensions/>
لملف تكوين WCF أدناه إلى WCF لإضافة فئة سلوك مخصصة إلى ملحق WCF معين.
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name=""myBehavior"" type=""MyBehavior"" />
</behaviorExtensions>
</extensions>
</system.serviceModel>
يؤدي استخدام الأسماء (القوية) المؤهلة بالكامل إلى تحديد النوع بشكل فريد ويزيد من أمان نظامك. استخدم أسماء التجميع المؤهلة بالكامل عند تسجيل الأنواع في ملفات machine.config وapp.config.
مثال
يوجه العنصر <behaviorExtensions/>
لملف تكوين WCF أدناه إلى WCF لإضافة فئة سلوك مخصصة مشار إليها بشدة إلى ملحق WCF معين.
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name=""myBehavior"" type=""Microsoft.ServiceModel.Samples.MyBehaviorSection, MyBehavior,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" />
</behaviorExtensions>
</extensions>
</system.serviceModel>
التحكم في تخويل تنفيذ WCF
العنوان | التفاصيل |
---|---|
المكون | WCF |
مرحلة SDL | بناء |
التقنيات المعمول بها | عام، NET Framework 3 |
السمات | غير متاح |
المراجع | MSDN، Fortify Kingdom |
الخطوات | لا تستخدم هذه الخدمة عنصر تحكم التخويل. عندما يستدعي العميل خدمة WCF معينة، يوفر WCF أنظمة تخويل متنوعة تتحقق من أن المتصل لديه إذن لتنفيذ طريقة الخدمة على الخادم. إذا لم يتم تمكين عناصر التحكم في التخويل لخدمات WCF، يمكن للمستخدم المصادق عليه تحقيق تصعيد الامتياز. |
مثال
يوجه التكوين التالي WCF إلى عدم التحقق من مستوى التخويل للعميل عند تنفيذ الخدمة:
<behaviors>
<serviceBehaviors>
<behavior>
...
<serviceAuthorization principalPermissionMode=""None"" />
</behavior>
</serviceBehaviors>
</behaviors>
استخدم مخطط ترخيص الخدمة للتحقق من أن مستدعي طريقة الخدمة مصرح له بذلك. يوفر WCF وضعين ويسمح بتعريف مخطط التخويل المخصص. يستخدم وضع UseWindowsGroups أدوار Windows والمستخدمين ويستخدم وضع UseAspNetRoles موفر دور ASP.NET، مثل SQL Server، للمصادقة.
مثال
يوجه التكوين التالي WCF للتأكد من أن العميل جزء من مجموعة المسؤولين قبل تنفيذ خدمة الإضافة:
<behaviors>
<serviceBehaviors>
<behavior>
...
<serviceAuthorization principalPermissionMode=""UseWindowsGroups"" />
</behavior>
</serviceBehaviors>
</behaviors>
يتم بعد ذلك إعلان الخدمة على النحو التالي:
[PrincipalPermission(SecurityAction.Demand,
Role = ""Builtin\\Administrators"")]
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
تنفيذ آلية التخويل المناسبة في ASP.NET Web API
العنوان | التفاصيل |
---|---|
المكون | واجهة API للويب |
مرحلة SDL | بناء |
التقنيات المعمول بها | عام، MVC5 |
السمات | N/A، موفر الهوية - ADFS، موفر الهوية - معرف Microsoft Entra |
المراجع | المصادقة والتخويل في ASP.NET Web API |
الخطوات | يمكن اشتقاق معلومات الدور لمستخدمي التطبيق من مطالبات Microsoft Entra ID أو ADFS إذا كان التطبيق يعتمد عليها كموفر هوية أو قد يوفرها التطبيق نفسه. في أي من هذه الحالات، يجب أن يتحقق تطبيق التخويل المخصص من صحة معلومات دور المستخدم. يمكن اشتقاق معلومات الدور لمستخدمي التطبيق من مطالبات Microsoft Entra ID أو ADFS إذا كان التطبيق يعتمد عليها كموفر هوية أو قد يوفرها التطبيق نفسه. في أي من هذه الحالات، يجب أن يتحقق تطبيق التخويل المخصص من صحة معلومات دور المستخدم. |
مثال
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class ApiAuthorizeAttribute : System.Web.Http.AuthorizeAttribute
{
public async override Task OnAuthorizationAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
{
if (actionContext == null)
{
throw new Exception();
}
if (!string.IsNullOrEmpty(base.Roles))
{
bool isAuthorized = ValidateRoles(actionContext);
if (!isAuthorized)
{
HandleUnauthorizedRequest(actionContext);
}
}
base.OnAuthorization(actionContext);
}
public bool ValidateRoles(actionContext)
{
//Authorization logic here; returns true or false
}
}
يجب تزيين جميع وحدات التحكم وطرق العمل التي تحتاج إلى الحماية بالسمة المذكورة أعلاه.
[ApiAuthorize]
public class CustomController : ApiController
{
//Application code goes here
}
قم بإجراء عمليات التحقق من التخويل في الجهاز إذا كان يدعم الإجراءات المختلفة التي تتطلب مستويات أذونات مختلفة
العنوان | التفاصيل |
---|---|
المكون | جهاز IoT |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | يجب أن يفوض الجهاز المتصل للتحقق مما إذا كان المتصل لديه الأذونات المطلوبة لتنفيذ الإجراء المطلوب. على سبيل المثال، لنفترض أن الجهاز عبارة عن قفل باب ذكي يمكن مراقبته من السحابة، بالإضافة إلى أنه يوفر وظائف مثل قفل الباب عن بُعد. يوفر Smart Door Lock وظيفة فتح القفل فقط عندما يقترب شخص ما من الباب ببطاقة. في هذه الحالة، يجب أن يتم تنفيذ الأمر والتحكم عن بعد بطريقة لا توفر أي وظيفة لفتح الباب لأن البوابة السحابية غير مصرح لها بإرسال أمر لفتح الباب. |
قم بإجراء عمليات التحقق من التخويل في Field بوابة إذا كانت تدعم الإجراءات المختلفة التي تتطلب مستويات أذونات مختلفة
العنوان | التفاصيل |
---|---|
المكون | بوابة حقل IoT |
مرحلة SDL | بناء |
التقنيات المعمول بها | العام |
السمات | غير متاح |
المراجع | غير متاح |
الخطوات | يجب أن تفوض Field بوابة المتصل بالتحقق مما إذا كان المتصل لديه الأذونات المطلوبة لتنفيذ الإجراء المطلوب. على سبيل المثال، يجب أن تكون هناك أذونات مختلفة لواجهة مستخدم المسؤول/واجهة برمجة التطبيقات المستخدمة لتكوين بوابة مقابل أجهزة/أجهزة متصلة بها. |