كيفية صياغة سياسة تصديق
سياسة التصديق هي ملف يتم تحميله إلى Microsoft Azure Attestation. توفر Azure Attestation مرونة تحميل سياسة ما بتنسيق سياسة تصديق مُحددة. وبدلا من ذلك، يمكن أيضاً تحميل نسخة مشفرة من السياسة، باستخدام JSON Web Signature. يتحمل مسؤول السياسة مسؤولية كتابة سياسة التصديق. في معظم سيناريوهات التصديق، يعمل طرف الاعتماد كمسؤول عن السياسة. يرسل العميل المطالب بالتصديق أدلة الإثبات، فتقوم الخدمة بتحليلها وتحويلها إلى مطالبات واردة (مجموعة من الخصائص والقيمة). ثم تقوم الخدمة بمعالجة المطالبات، استنادا إلى ما هو محدد في السياسة، ثم تُعيد النتيجة المحسوبة.
يحتوي النهج على قواعد تحدد معايير التخويل والخصائص ومحتويات الرمز المميز للإثبات:
version=1.0;
authorizationrules
{
c:[type="secureBootEnabled", issuer=="AttestationService"]=> permit()
};
issuancerules
{
c:[type="secureBootEnabled", issuer=="AttestationService"]=> issue(claim=c)
c:[type="notSafeMode", issuer=="AttestationService"]=> issue(claim=c)
};
يحتوي ملف النهج على ثلاثة مقاطع:
- Version: الإصدار هو رقم إصدار القواعد النحوية التي يتم اتباعها.
حالياً الإصدار الوحيد المدعوم هو الإصدار 1.0.version=MajorVersion.MinorVersion
- قواعد التخويل: مجموعة من قواعد المطالبة التي يتم التحقق منها أولا، لتحديد ما إذا كان يجب أن ينتقل Azure Attestation إلى قواعد الإصدار. تنطبق قواعد المطالبة بالترتيب الذي تم تعريفها به.
- قواعد الإصدار: مجموعة من قواعد المطالبة التي يتم تقييمها لإضافة معلومات إضافية إلى نتيجة التصديق كما هو محدد في السياسة. تنطبق قواعد المطالبة بالترتيب الذي تم تعريفها به وهي اختيارية أيضا.
لمزيد من المعلومات، راجع قواعد المطالبة والمطالبة.
صياغة ملف السياسة
- إنشاء ملف جديد.
- إضافة إصدار إلى الملف.
- إضافة أقسام إلى قواعد التفويض authorizationrules وقواعد الإصدار issuancerules.
تنص قواعد التفويض على إجراء الرفض () بدون أي شرط، لضمان عدم معالجة أي قواعد الإصدار. بدلا من ذلك، يمكن أن تحتوي قاعدة التفويض أيضا على إجراء التصريح ( ) للسماح بمعالجة قواعد الإصدار.version=1.0; authorizationrules { =>deny(); }; issuancerules { };
- إضافة قواعد المطالبة إلى قواعد التخويل
إذا كانت مجموعة المطالبة الواردة تحتوي على مطالبة مطابقة للنوع والقيمة والمصدر، فإن الإجراء permit() يخبر مشغل النهج بمعالجة قواعد الإصدار.version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { };
- إضافة قواعد المطالبة إلى قواعد الإصدار issuancerules.
تحتوي مجموعة المطالبة الصادرة على مطالبة مع:version=1.0; authorizationrules { [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit(); }; issuancerules { => issue(type="SecurityLevelValue", value=100); };
ويمكن وضع سياسات معقدة بطريقة مماثلة. للمزيد من المعلومات راجع أمثلة سياسة التصديق.[type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]
- حفظ الملف.
إنشاء ملف سياسة بتنسيق JSON Web Signature
بعد إنشاء ملف نهج، لتحميل نهج بتنسيق JSON Web Signature (JWS)، اتبع الخطوات التالية.
إنشاء JWS، RFC7515 مع النهج (ترميز utf-8) كحمولة. يجب أن يكون معرف البيانات الأساسية للسياسة المشفرة باستخدام Base64Url من نوع "AttestationPolicy".
نموذج JWT:
Header: {"alg":"none"} Payload: {"AttestationPolicy":" Base64Url (policy)"} Signature: {} JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
توقيع النهج (اختياري). Azure Attestation يدعم الخوارزميات التالية:
- None: عدم التوقيع على البيانات الأساسية للسياسة.
- RS256: خوارزمية مدعومة لتوقيع حمولة النهج.
تحميل JWS والتحقق من صحة السياسة.
- إذا كان ملف النهج خاليا من أخطاء بناء الجملة، تقبل الخدمة ملف النهج.
- إذا كان ملف النهج يحتوي على أخطاء في بناء الجملة، ترفض الخدمة ملف النهج.