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