إطار الأمان: التخويل | التخفيفات

المنتج /الخدمة مقال
حد ثقة الجهاز
تطبيق ويب
قاعدة بيانات
بوابة سحابة 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 بناء
التقنيات المعمول بها العام
السمات غير متاح
المراجع غير متاح
الخطوات

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

يمكن أن يكون منطق الاكتشاف ببساطة هو الوصول إلى الملفات التي عادةً ما يمكن للمستخدم الجذر فقط الوصول إليها، على سبيل المثال:

  • /system/app/Superuser.apk
  • /sbin/su
  • /system/bin/su
  • / نظام/xbin/su
  • /data/local/xbin/su
  • /data/local/bin/su
  • / نظام/sd/xbin/su
  • /system/bin/failsafe/su
  • /data/local/su

إذا كان التطبيق يمكنه الوصول إلى أي من هذه الملفات، فهذا يدل على أن التطبيق يعمل كمستخدم أساسي.

مرجع فئة ضعيف في WCF

‏‫العنوان التفاصيل
المكون WCF
مرحلة SDL بناء
التقنيات المعمول بها عام، NET Framework 3
السمات غير متاح
المراجع MSDN، Fortify Kingdom
الخطوات

يستخدم النظام مرجع فئة ضعيف، ما قد يسمح للمهاجم بتنفيذ تعليمات برمجية غير مصرح بها. يشير البرنامج إلى فئة معرّفة من قبل المستخدم لم يتم تحديدها بشكل فريد. عندما يقوم .NET بتحميل هذه الفئة التي تم تحديدها بشكل ضعيف، يبحث محمل نوع CLR عن الفئة في المواقع التالية بالترتيب المحدد:

  1. إذا كان التجميع من النوع معروفاً، يبحث المُحمل في مواقع إعادة توجيه ملف التكوين، وGAC، والتجميع الحالي باستخدام معلومات التكوين، ودليل قاعدة التطبيق
  2. إذا كان التجميع غير معروف، يبحث المُحمل عن التجميع الحالي، وmscorlib، والموقع الذي تم إرجاعه بواسطة معالج الأحداث TypeResolve
  3. يمكن تعديل ترتيب بحث CLR هذا باستخدام خطافات مثل آلية إعادة توجيه النوع وحدث AppDomain

إذا استغل المهاجم ترتيب بحث 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 بوابة المتصل بالتحقق مما إذا كان المتصل لديه الأذونات المطلوبة لتنفيذ الإجراء المطلوب. على سبيل المثال، يجب أن تكون هناك أذونات مختلفة لواجهة مستخدم المسؤول/واجهة برمجة التطبيقات المستخدمة لتكوين بوابة مقابل أجهزة/أجهزة متصلة بها.