الخلاصة
- تقترح
draft-mcguinness-oauth-client-attesters-00حقلclient_attestersالذي يربطissuerبموقعjwks_uri؛ الإصدار 00 مسودة إنترنت فردية، وليس RFC ولا معياراً معتمداً. - قبول الإثبات يحتاج إلى قرارين: الناشر يسمح لجهة بأن تتحدث باسم
client_id، وخادم التفويض يقرر بصورة مستقلة إن كان يثق بها وبأي مصدر مفاتيح. - حذف التأييد يمنع القبول اللاحق بعد انتهاء أثر الذاكرة المؤقتة، لكنه لا يلغي grants أو tokens القائمة ولا يغيّر خادم موارد يتحقق مباشرة.
قد تعرض لوحة الطوارئ عبارة «أزيلت جهة الإثبات» بينما يستمر طلب API في النجاح. لا يعني ذلك بالضرورة أن الحذف فشل. قد يحتفظ authorization server بنسخة metadata ما زالت صالحة، وقد يبقى access token سابق فعالاً، وقد يستخدم resource server سياسة ثقة مستقلة.
تعالج مسودة OAuth 2.0 Client Attester Endorsement العلاقة التي تركها ATTEST خارج نطاقه: كيف يعرف الخادم أن Client Attester مخوّل بالتحدث عن عميل بعينه؟ تضع المسودة الإجابة في metadata الرسمية للعميل. يضم كل عنصر issuer مطابقاً لقيمة iss وjwks_uri لمجموعة المفاتيح العامة.
هذا تصريح من الناشر، لا trust anchor ولا تفويض مستخدم ولا إذن وصول. إدراج الجهة يجعلها مرشحة للتقييم، ولا يجعل قولها مقبولاً تلقائياً.
قراران لا يختصرهما توقيع واحد
يشترط الملف أن تؤيد metadata الحالية جهة الإثبات، وأن تسمح سياسة خادم التفويض بالعلاقة وتحدد كيف تُوثق مفاتيحها. يستطيع الخادم تضييق القائمة المنشورة ولا يستطيع إضافة جهة لم يؤيدها العميل. كما لا يستطيع الناشر فرض الثقة بمجرد نشر اسم.
في publisher-authorized key selection يسمح الخادم مسبقاً للناشر باختيار الجهة ومصدر مفاتيحها، ثم يجلب jwks_uri ضمن قيود HTTPS والأصل والمسار والشبكة. هذا قابل للتوسع، لكن ضمانه لا يستقل عن الناشر؛ من يسيطر على CIMD يستطيع تشغيل جهة إثبات ومفاتيح خاصة به.
في AS-configured attester trust يضبط الخادم مصدر المفاتيح للـissuer الدقيق. يجب أن يطابق URI المنشور المصدر أو alias مصرحاً به، ولا يستخدم كبديل. الاختلاف يؤدي إلى الرفض. وإذا ضُبطت الثقة لذلك issuer لدى أي عميل، تسري الأولوية عليه لدى جميع العملاء. إزالة الضبط لا تنقل السلطة تلقائياً إلى الناشرين.
ترتيب التحقق يمنع اختلاط السلطات
يختار الخادم مصدراً رسمياً واحداً لـclient_id ولا يدمج التسجيل مع CIMD. ثم يختار عنصراً وحيداً يحقق issuer == iss، ويطبق السياسة، ويحدد مصدر المفاتيح، ويحل kid إلى مفتاح عام صالح واحد فقط.
يرتبط المفتاح بالعميل والـissuer والمصدر والسياسة. لا يكفي kid منفرداً ولا اتحاد مفاتيح عدة جهات. لا تتحكم ترويسات jku أو x5u أو x5c أو jwk في الاختيار. بعد ذلك تُفحص التوقيع وإثبات الحيازة وsub == client_id. ثم يأتي قرار grant مستقلاً؛ إثبات الهوية لا يقرر المورد أو الصلاحية.
السحب يملك أكثر من ساعة
يحذف الناشر العنصر، لكن النسخة الحديثة في cache تظل قابلة للاستخدام حتى حدها الأقصى. لا تحدد المسودة مدة موحدة، ولذلك يجب أن يحدد trust agreement مهلة قابلة للقياس. عند رؤية 404 أو 410 يتوقف الخادم عن استخدام النسخة السابقة، أما timeout أو 5xx فلا يبطل cache غير المنتهي.
تدوير المفتاح يحتاج إلى تداخل: نشر الجديد، انتظار أعمار cache، البدء في التوقيع، والإبقاء على القديم حتى انتهاء الإثباتات. تغيير المكان يحتاج أيضاً إلى تحديث metadata وإلى تنسيق المشغّل في الوضع المضبوط.
الأهم أن withdrawal مستقبلي. لا يلغي grants أو access tokens أو refresh tokens صدرت بالفعل. إنهاء الوصول يتطلب revocation منفصلاً، ومنع refresh، وإرجاع inactive في introspection، ومعالجة الرموز التي تُفحص محلياً حتى تنتهي. أما resource server الذي يتحقق من Client Attestation مباشرة فلا يطبق هذا الاكتشاف أصلاً.
إيصال للقرار الكامل
يسجل الإيصال client_id ومصدر metadata الوحيد وhash ووقت الجلب وانتهاء cache، ثم التأييد الدقيق وسلطة الناشر. ويضيف نمط الثقة وسبب الأولوية والمصدر والـaliases وhash مجموعة JWK وحداثتها وkid والخوارزمية والمفتاح الوحيد.
يجب أيضاً تسجيل ما إذا كان attestation إلزامياً. وجود client_attesters لا يفرض تقديمه؛ إذا كان إشارة اختيارية فقد تستمر المصادقة بطريقة أخرى. يسجل قرار grant في خانة منفصلة.
عند السحب تضاف لحظة الملاحظة، وتقارب caches، وآخر قبول، وانتهاء الإثبات، وإلغاء tokens، وحالة refresh وintrospection، ونافذة offline، والمتحققون المباشرون. هذا نموذج تشغيلي من Daniel Kade، وليس نصاً معيارياً في المسودة.
يحجب الخطأ العام invalid_client_attestation السبب التفصيلي. لذلك يجب أن تميز telemetry الداخلية بين غياب التأييد وتعارض المصدر وغموض kid وفشل الجلب المؤقت. إصدار إثبات جديد لا يصلح خلافاً في السياسة.
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
