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

المنتج /الخدمة مقالة
حد ثقة الجهاز
تطبيق ويب
قاعدة بيانات
بوابة سحابة IoT
مركز أحداث Azure
قاعدة بيانات مستندات Azure
حدود ثقة Azure
حدود الثقة في Service Fabric
Dynamics CRM
مدخل Dynamics CRM
تخزين Azure
عميل الجوال
WCF
واجهة برمجة تطبيقات الويب
جهاز إنترنت الأشياء
بوابة حقل IoT

تأكد من تكوين قوائم التحكم في الوصول المناسبة لتقييد الوصول غير المصرح به إلى البيانات الموجودة على الجهاز

العنوان التفاصيل
المكون حد ثقة الجهاز
مرحلة SDL التوزيع
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات تأكد من تكوين قوائم التحكم في الوصول المناسبة لتقييد الوصول غير المصرح به إلى البيانات الموجودة على الجهاز

تأكد من تخزين محتوى التطبيق الحساس الخاص بالمستخدم في دليل ملف تعريف المستخدم

العنوان التفاصيل
المكون حد ثقة الجهاز
مرحلة SDL التوزيع
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات تأكد من تخزين محتوى التطبيق الحساس الخاص بالمستخدم في دليل ملف تعريف المستخدم. هذا لمنع العديد من مستخدمي الجهاز من الوصول إلى بيانات بعضهم البعض.

تأكد من تشغيل التطبيقات المنشورة بأقل امتيازات

العنوان التفاصيل
المكون حد ثقة الجهاز
مرحلة SDL التوزيع
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات تأكد من تشغيل التطبيق المنشور بأقل الامتيازات.

فرض ترتيب الخطوات المتسلسلة عند معالجة تدفقات منطق الأعمال

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

تنفيذ آلية تحديد المعدل لمنع التعداد

العنوان التفاصيل
المكون تطبيق ويب
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات تأكد من أن المعرفات الحساسة عشوائية. تنفيذ عنصر تحكم CAPTCHA على صفحات مجهولة. تأكد من أن الخطأ والاستثناء يجب ألا يكشفوا عن بيانات محددة

التأكد من وجود التفويض المناسب واتباع مبدأ أقل الامتيازات

العنوان التفاصيل
المكون تطبيق ويب
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات

يعني المبدأ منح حساب المستخدم فقط تلك الامتيازات الضرورية لعمل المستخدمين. على سبيل المثال ، لا يحتاج مستخدم النسخ الاحتياطي إلى تثبيت البرنامج: وبالتالي ، فإن مستخدم النسخ الاحتياطي لديه حقوق فقط لتشغيل النسخ الاحتياطي والتطبيقات المتعلقة بالنسخ الاحتياطي. يتم حظر أي امتيازات أخرى ، مثل تثبيت برامج جديدة. ينطبق المبدأ أيضا على مستخدم الكمبيوتر الشخصي الذي يعمل عادة في حساب مستخدم عادي ، ويفتح حسابا متميزا ومحميا بكلمة مرور (أي مستخدم خارق) فقط عندما يتطلب الموقف ذلك تماما.

يمكن أيضا تطبيق هذا المبدأ على تطبيقات الويب الخاصة بك. بدلا من الاعتماد فقط على طرق المصادقة المستندة إلى الأدوار باستخدام الجلسات ، نريد بدلا من ذلك تعيين امتيازات للمستخدمين عن طريق نظام مصادقة Database-Based. ما زلنا نستخدم الجلسات لتحديد ما إذا كان المستخدم قد سجل الدخول بشكل صحيح ، والآن فقط بدلا من تعيين هذا المستخدم بدور محدد ، نخصص له امتيازات للتحقق من الإجراءات التي يحظى بامتياز تنفيذها على النظام. من المؤيدين الكبار لهذه الطريقة أيضا أنه عندما يتعين على المستخدم تعيين امتيازات أقل ، سيتم تطبيق التغييرات الخاصة بك على الفور لأن التعيين لا يعتمد على الجلسة التي كان يجب أن تنتهي صلاحيتها أولا.

يجب ألا تستند قرارات منطق العمل والوصول إلى الموارد إلى معلمات الطلب الوارد

العنوان التفاصيل
المكون تطبيق ويب
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات عندما تتحقق مما إذا كان المستخدم مقيدا بمراجعة بيانات معينة ، يجب معالجة قيود الوصول من جانب الخادم. يجب تخزين معرف المستخدم داخل متغير جلسة عند تسجيل الدخول ويجب استخدامه لاسترداد بيانات المستخدم من قاعدة البيانات

مثال

SELECT data 
FROM personaldata 
WHERE userID=:id < - session var 

الآن لا يمكن للمهاجم المحتمل العبث بعملية التطبيق وتغييرها نظرا لأن معرف استرداد البيانات يتم التعامل معه من جانب الخادم.

تأكد من أن المحتوى والموارد غير قابلة للتعداد أو الوصول إليها من خلال التصفح القوي

العنوان التفاصيل
المكون تطبيق ويب
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات

يجب عدم الاحتفاظ بملفات التكوين الثابتة والحساسة في جذر الويب. بالنسبة للمحتوى غير المطلوب أن يكون عاما، يجب تطبيق عناصر التحكم المناسبة في الوصول أو إزالة المحتوى نفسه.

أيضا ، عادة ما يتم دمج التصفح القوي مع تقنيات القوة الغاشمة لجمع المعلومات من خلال محاولة الوصول إلى أكبر عدد ممكن من عناوين URL لتعداد الدلائل والملفات على الخادم. يمكن للمهاجمين التحقق من جميع أشكال الملفات الموجودة بشكل شائع. على سبيل المثال ، قد يشمل البحث عن ملف كلمة المرور الملفات بما في ذلك psswd.txtو password.htmو password.dat والاختلافات الأخرى.

للتخفيف من ذلك ، يجب تضمين قدرات الكشف عن محاولات القوة الغاشمة.

تأكد من استخدام الحسابات الأقل امتيازا للاتصال بخادم قاعدة البيانات

العنوان التفاصيل
المكون قاعدة البيانات
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع التسلسل الهرمي لأذونات SQL، التأمين القابل للتأمين في SQL
الخطوات يجب استخدام الحسابات الأقل امتيازا للاتصال بقاعدة البيانات. يجب تقييد تسجيل الدخول إلى التطبيق في قاعدة البيانات ويجب أن ينفذ فقط الإجراءات المخزنة المحددة. يجب ألا يكون لتسجيل الدخول إلى التطبيق وصول مباشر إلى الجدول.

تنفيذ RLS للأمان على مستوى الصف لمنع المستأجرين من الوصول إلى بيانات بعضهم البعض

العنوان التفاصيل
المكون قاعدة البيانات
مرحلة SDL إنشاء
التقنيات المعمول بها Sql Azure ، OnPrem
السمات إصدار SQL - الإصدار 12 ، إصدار SQL - MsSQL2016
المراجع أمان Row-Level SQL Server (RLS)
الخطوات

تمكن Row-Level Security العملاء من التحكم في الوصول إلى الصفوف في جدول قاعدة البيانات استنادا إلى خصائص المستخدم الذي ينفذ استعلاما (على سبيل المثال، عضوية المجموعة أو سياق التنفيذ).

يعمل Row-Level Security (RLS) على تبسيط تصميم وترميز الأمان في التطبيق الخاص بك. تمكنك RLS من تنفيذ قيود على الوصول إلى صف البيانات. على سبيل المثال، ضمان أن العمال يمكنهم الوصول فقط إلى صفوف البيانات ذات الصلة بإدارتهم، أو تقييد وصول بيانات العميل إلى البيانات ذات الصلة بشركتهم فقط.

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

يرجى ملاحظة أن RLS كميزة قاعدة بيانات جاهزة تنطبق فقط على SQL Server بدءا من عام 2016 وقاعدة بيانات Azure SQL ومثيل SQL المدار. إذا لم يتم تنفيذ ميزة RLS الجاهزة، فيجب التأكد من تقييد الوصول إلى البيانات باستخدام طرق العرض والإجراءات

يجب أن يحتوي دور مسؤول النظام على مستخدمين ضروريين صالحين فقط

العنوان التفاصيل
المكون قاعدة البيانات
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع التسلسل الهرمي لأذونات SQL، التأمين القابل للتأمين في SQL
الخطوات يجب أن يكون أعضاء دور الخادم الثابت SysAdmin محدودين للغاية ولا يحتويون أبدا على حسابات تستخدمها التطبيقات. يرجى مراجعة قائمة المستخدمين في الدور وإزالة أي حسابات غير ضرورية

الاتصال ب Cloud Gateway باستخدام الرموز المميزة الأقل امتيازا

العنوان التفاصيل
المكون بوابة سحابة IoT
مرحلة SDL التوزيع
التقنيات المعمول بها العام
السمات اختيار البوابة - Azure IoT Hub
المراجع التحكم في الوصول إلى IoT Hub
الخطوات توفير أذونات أقل امتياز لمختلف المكونات التي تتصل ب Cloud Gateway (IoT Hub). المثال النموذجي هو - يستخدم مكون إدارة / توفير الجهاز registryread/write ، ويستخدم معالج الأحداث (ASA) Service Connect. تتصل الأجهزة الفردية باستخدام بيانات اعتماد الجهاز

استخدام مفتاح SAS لأذونات الإرسال فقط لإنشاء الرموز المميزة للجهاز

العنوان التفاصيل
المكون Azure Event Hub
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع نظرة عامة على نموذج الأمان ومصادقة مراكز الأحداث
الخطوات يتم استخدام مفتاح SAS لإنشاء رموز مميزة فردية للجهاز. استخدام مفتاح SAS لأذونات الإرسال فقط أثناء إنشاء الرمز المميز للجهاز لناشر معين

لا تستخدم رموز الوصول المميزة التي توفر وصولا مباشرا إلى مركز الأحداث

العنوان التفاصيل
المكون Azure Event Hub
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع نظرة عامة على نموذج الأمان ومصادقة مراكز الأحداث
الخطوات يجب عدم إعطاء الرمز المميز الذي يمنح الوصول المباشر إلى مركز الأحداث للجهاز. سيساعد استخدام رمز مميز أقل امتيازا للجهاز يمنح حق الوصول إلى الناشر فقط في التعرف عليه وعدم السماح به إذا تبين أنه جهاز مارق أو مخترق.

الاتصال بمركز الأحداث باستخدام مفاتيح SAS التي تحتوي على الحد الأدنى من الأذونات المطلوبة

العنوان التفاصيل
المكون Azure Event Hub
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع نظرة عامة على نموذج الأمان ومصادقة مراكز الأحداث
الخطوات قم بتوفير أذونات أقل امتياز للعديد من التطبيقات الخلفية التي تتصل بمركز الأحداث. قم بإنشاء مفاتيح SAS منفصلة لكل تطبيق خلفي وقم بتوفير الأذونات المطلوبة فقط - الإرسال أو الاستلام أو الإدارة إليهم.

استخدم الرموز المميزة للموارد للاتصال ب Azure Cosmos DB كلما أمكن ذلك

العنوان التفاصيل
المكون Azure Cosmos DB
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات يقترن الرمز المميز للمورد بمورد إذن Azure Cosmos DB ويلتقط العلاقة بين مستخدم قاعدة البيانات والإذن الذي يمتلكه المستخدم لمورد تطبيق Azure Cosmos DB معين (مثل المجموعة والمستند). استخدم دائما رمزا مميزا للمورد للوصول إلى Azure Cosmos DB إذا تعذر الوثوق بالعميل في التعامل مع المفاتيح الرئيسية أو للقراءة فقط - مثل تطبيق المستخدم النهائي مثل عميل الهاتف المحمول أو سطح المكتب. استخدم المفتاح الرئيسي أو مفاتيح القراءة فقط من تطبيقات الواجهة الخلفية التي يمكنها تخزين هذه المفاتيح بشكل آمن.

تمكين إدارة الوصول الدقيقة إلى اشتراك Azure باستخدام Azure RBAC

العنوان التفاصيل
المكون حدود ثقة Azure
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع تعيين أدوار Azure لإدارة الوصول إلى موارد اشتراك Azure
الخطوات يتيح التحكم في الوصول المستند إلى الدور في Azure (Azure RBAC) إدارة الوصول الدقيقة ل Azure. باستخدام Azure RBAC، يمكنك فقط منح مقدار الوصول الذي يحتاجه المستخدمون لأداء وظائفهم.

تقييد وصول العميل إلى عمليات نظام المجموعة باستخدام Service Fabric RBAC

العنوان التفاصيل
المكون حدود الثقة في Service Fabric
مرحلة SDL التوزيع
التقنيات المعمول بها العام
السمات البيئة - Azure
المراجع التحكم في الوصول المستند إلى دور Service Fabric لعملاء Service Fabric
الخطوات

يدعم Azure Service Fabric نوعين مختلفين من التحكم في الوصول للعملاء المتصلين بمجموعة Service Fabric: المسؤول والمستخدم. يسمح التحكم في الوصول لمسؤول نظام المجموعة بتقييد الوصول إلى عمليات نظام مجموعة معينة لمجموعات مختلفة من المستخدمين، مما يجعل نظام المجموعة أكثر أمانا.

يتمتع المسؤولون بإمكانية الوصول الكامل إلى إمكانات الإدارة (بما في ذلك إمكانات القراءة/الكتابة). المستخدمون، بشكل افتراضي، لديهم حق الوصول للقراءة فقط إلى إمكانات الإدارة (على سبيل المثال، إمكانات الاستعلام)، والقدرة على حل التطبيقات والخدمات.

يمكنك تحديد دوري العميل (المسؤول والعميل) في وقت إنشاء نظام المجموعة عن طريق توفير شهادات منفصلة لكل منهما.

إجراء نمذجة الأمان واستخدام الأمان على مستوى الحقل عند الحاجة

العنوان التفاصيل
المكون Dynamics CRM
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات إجراء نمذجة الأمان واستخدام الأمان على مستوى الحقل عند الحاجة

إجراء نمذجة أمان لحسابات المدخل مع الأخذ في الاعتبار أن نموذج الأمان للمدخل يختلف عن بقية CRM

العنوان التفاصيل
المكون مدخل Dynamics CRM
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات إجراء نمذجة أمان لحسابات المدخل مع الأخذ في الاعتبار أن نموذج الأمان للمدخل يختلف عن بقية CRM

منح إذن دقيق على مجموعة من الكيانات في Azure Table Storage

العنوان التفاصيل
المكون تخزين Azure
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات نوع التخزين - الجدول
المراجع كيفية تفويض الوصول إلى الكائنات في حساب تخزين Azure الخاص بك باستخدام SAS
الخطوات في بعض سيناريوهات الأعمال، قد تكون هناك حاجة إلى Azure Table Storage لتخزين البيانات الحساسة التي تلبي احتياجات الأطراف المختلفة. على سبيل المثال، البيانات الحساسة المتعلقة بالبلدان/المناطق المختلفة. في مثل هذه الحالات، يمكن إنشاء توقيعات SAS عن طريق تحديد نطاقات مفاتيح القسم والصف، بحيث يمكن للمستخدم الوصول إلى بيانات خاصة ببلد/منطقة معينة.

تمكين التحكم في الوصول المستند إلى دور Azure (Azure RBAC) إلى حساب تخزين Azure باستخدام Azure Resource Manager

العنوان التفاصيل
المكون تخزين Azure
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع كيفية تأمين حساب التخزين الخاص بك باستخدام التحكم في الوصول المستند إلى الدور في Azure (Azure RBAC)
الخطوات

عند إنشاء حساب تخزين جديد، يمكنك تحديد نموذج توزيع Classic أو Azure Resource Manager. يسمح النموذج الكلاسيكي لإنشاء الموارد في Azure فقط بالوصول الكل أو لا شيء إلى الاشتراك، وبالتالي حساب التخزين.

باستخدام نموذج Azure Resource Manager، يمكنك وضع حساب التخزين في مجموعة موارد والتحكم في الوصول إلى مستوى الإدارة لحساب التخزين المحدد هذا باستخدام معرف Microsoft Entra. على سبيل المثال، يمكنك منح مستخدمين محددين القدرة على الوصول إلى مفاتيح حساب التخزين، بينما يمكن للمستخدمين الآخرين عرض معلومات حول حساب التخزين، ولكن لا يمكنهم الوصول إلى مفاتيح حساب التخزين.

تنفيذ كسر الحماية الضمني أو الكشف عن التجذير

العنوان التفاصيل
المكون عميل الجوال
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات

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

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

  • /النظام/التطبيق/Superuser.apk
  • / سبين / سو
  • /النظام/بن/سو
  • /النظام/إكس بين/سو
  • /data/local/xbin/su
  • /data/local/bin/su
  • /النظام/SD/XBIN/SU
  • /system/bin/failsafe/su
  • /البيانات/المحلية/سو

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

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

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

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

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

إذا استغل المهاجم أمر بحث 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-Implement

العنوان التفاصيل
المكون 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

العنوان التفاصيل
المكون واجهة API للويب
مرحلة SDL إنشاء
التقنيات المعمول بها عام ، MVC5
السمات غير متوفر، موفر الهوية - ADFS، موفر الهوية - معرف Microsoft Entra
المراجع المصادقة والتفويض في واجهة برمجة تطبيقات الويب ASP.NET
الخطوات

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

يمكن اشتقاق معلومات الدور لمستخدمي التطبيق من معرف Microsoft Entra أو مطالبات 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 إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات

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

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

قم بإجراء عمليات التحقق من التخويل في Field Gateway إذا كانت تدعم إجراءات مختلفة تتطلب مستويات أذونات مختلفة

العنوان التفاصيل
المكون بوابة حقل IoT
مرحلة SDL إنشاء
التقنيات المعمول بها العام
السمات ‏‫غير متوفر‬
المراجع ‏‫غير متوفر‬
الخطوات يجب أن تخول "بوابة الحقل" المتصل بالتحقق مما إذا كان المتصل لديه الأذونات المطلوبة لتنفيذ الإجراء المطلوب. على سبيل المثال ، يجب أن تكون هناك أذونات مختلفة لواجهة مستخدم المسؤول / واجهة برمجة التطبيقات المستخدمة لتكوين بوابة حقل v/s الأجهزة التي تتصل بها.