كيفية صياغة سياسة تصديق

سياسة التصديق هي ملف يتم تحميله إلى 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: الإصدار هو رقم إصدار القواعد النحوية التي يتم اتباعها.

    version=MajorVersion.MinorVersion	
    

    حالياً الإصدار الوحيد المدعوم هو الإصدار 1.0.

  • authorizationrules: مجموعة من قواعد المطالبة التي سيتم التحقق منها أولاً، لتحديد ما إذا كان يجب على Azure Attestation المتابعة إلى قواعد الإصدار issuancerules. تنطبق قواعد المطالبة بالترتيب المُعرّفة به.

  • issuancerules: مجموعة من قواعد المطالبة التي سيتم تقييمها لإضافة المزيد من المعلومات إلى نتيجة التصديق وفقاً لما حددته السياسة. تنطبق قواعد المطالبة بالترتيب المحدد وهي اختيارية أيضاً.

انظر المطالبة وقواعد المطالبة للاطلاع على مزيد من المعلومات.

صياغة ملف السياسة

  1. إنشاء ملف جديد.
  2. إضافة إصدار إلى الملف.
  3. إضافة أقسام إلى قواعد التفويض authorizationrules وقواعد الإصدار issuancerules.
version=1.0;
authorizationrules
{
=>deny();
};

issuancerules
{
};

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

  1. إضافة قواعد المطالبة إلى قواعد التفويض
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

issuancerules
{
};

إذا كانت مجموعة المطالبة الواردة تحتوي على مطالبة مطابقة للنوع والقيمة وجهة الإصدار، فسيبلغ إجراء التصريح () محرك السياسة بمعالجة قواعد الإصدار.

  1. إضافة قواعد المطالبة إلى قواعد الإصدار 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"]

ويمكن وضع سياسات معقدة بطريقة مماثلة. للمزيد من المعلومات راجع أمثلة سياسة التصديق.

  1. احفظ الملف.

إنشاء ملف سياسة بتنسيق JSON Web Signature

بعد إنشاء ملف السياسة، لتحميل السياسة بتنسيق JWS اتبع الخطوات التالية.

  1. إنشاء JWS وRFC 7515 باستخدام السياسة (تشفير utf-8) لتكون البيانات الأساسية

    • يجب أن يكون معرف البيانات الأساسية للسياسة المشفرة باستخدام Base64Url من نوع "AttestationPolicy".

    نموذج JWT:

    Header: {"alg":"none"}
    Payload: {"AttestationPolicy":" Base64Url (policy)"}
    Signature: {}
    
    JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
    
  2. (اختياري) توقيع السياسة. Azure Attestation يدعم الخوارزميات التالية:

    • None: عدم التوقيع على البيانات الأساسية للسياسة.
    • RS256: خوارزمية مدعومة لتوقيع البيانات الأساسية للسياسة
  3. تحميل JWS والتحقق من صحة السياسة.

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

الخطوات التالية