الخلاصة
- تعرّف RFC 9865 مؤشراً معتماً لمتابعة صفحات نتيجة SCIM نفسها، بالـ endpoint نفسه ومعلمات الاستعلام نفسها.
- لا يضيف امتلاك المؤشر أي امتياز؛ إذ يجب أن يبقى كل مورد في كل صفحة ضمن ما تسمح به هوية الفاعل الحالية.
قد تبدأ المشكلة بعبارة تبدو بريئة: «نحن نكمل من حيث توقفنا». في نظام الهوية، قد تبدأ خدمة مزامنة قائمة مستخدمين، تحفظ nextCursor، ثم تتغير عضوية أو صلاحية قبل أن تطلب الصفحة التالية. إن عومل المؤشر كأنه يحمل حكم التفويض الأول معه، يصبح اختصاراً تقنياً بديلاً عن قرار وصول جديد. RFC 9865 لا تسمح بهذا الخلط. فهي تنظم استئناف الاستعلام، لا استئناف الحق.
حدود الاستئناف محددة بدقة. في أول طلب مُرقَّم بالمؤشر يكون cursor فارغاً أو غائباً. وعند طلب صفحة أخرى يستعمل العميل endpoint الخاص بمزود الخدمة نفسه، ويحافظ على جميع معلمات وقيم الاستعلام الأول، ولا يغير إلا قيمة المؤشر التي أعادها المزود من قبل. قيمة المؤشر opaque بالنسبة إلى العميل. ويجب أن تحتوي كل استجابة مُرقَّمة، ما عدا الأخيرة، على nextCursor؛ أما previousCursor فهو اختياري ولا يجوز ظهوره في الصفحة الأولى. هذه قواعد تثبت أن الطلب التالي امتداد للسؤال نفسه، لا أنه امتداد تلقائي لسلطة السائل.
كما لا يثبت حجم الصفحة أكثر مما يقول. count هو الحد الأقصى المرغوب؛ لا يجوز للمزود أن يتجاوزه، ويجوز له أن يعيد عدداً أقل. وعندما يكون count=0 لا يعيد موارد بل totalResults فقط إن وجد؛ وقد يحذف هذا الإجمالي إذا تعذر تقديره. لذلك لا تعني قائمة ذات عدد ظاهر أن كل الهويات قُرئت، أو أن مجموعها ثابت، أو أن الإجراء اللاحق أصبح مشروعاً. يجوز للمزود أن يجعل المؤشر الطريقة الوحيدة للترقيم، وأن يعرض خياراته الافتراضية في وثيقة التهيئة إن اختار ذلك.
الشرط الحاسم يتعلق بالسرية. تنص RFC 9865 على أن نتائج الترقيم يجب أن تبقى مقصورة بدقة على البيانات التي تسمح هوية الفاعل الحالية بالوصول إليها، حتى إن كان المؤشر مأخوذاً من مجموعة نتائج أنشأها فاعل آخر. ويجب أن تستمر فحوص التفويض أثناء التنقل، ولا يجوز في أي حال اعتبار حيازة المؤشر امتيازاً إضافياً. أي إن حالة التصفح لا يمكن أن تحل محل السياسة المحلية التي تقرر الآن إن كان المورد مرئياً.
وتصبح هذه القاعدة أشد وضوحاً عند تغيير الصلاحيات. ينبغي، حيثما أمكن، إبطال مؤشرات الفاعل فوراً بعد التغيير. وإن احتُفظ بها، فيجب أن تعكس metadata الخاصة بمجموعة النتائج نطاق الصلاحيات الجديد. وينبغي كذلك تمويه المؤشرات بحيث يصعب فهمها أو تزويرها، وألا تكشف رسائل الخطأ ما إذا كانت الصفحة غير موجودة أم موجودة خارج النطاق. فالمؤشر المنتهي ليس دليلاً على سحب حق، والرد الناجح ليس دليلاً على أن الحق القديم ما زال قائماً.
هناك أيضاً مسؤولية توافر. احتفاظ المزود ببيانات كبيرة لكل مؤشر قد يسمح لاستعلامات أولية كثيرة بأن تستنزف موارده. توصي RFC بالمصادقة للوصول إلى المجموعات الكبيرة، وتحديد المعدل، ووضع سقف للمؤشرات أو لحجم الصفحة، وإبطال لا يستهلك الموارد. وعدم إعلان timeout أو الحد الأقصى للصفحات لا يعني انعدام تلك الضوابط. لا يجوز تحويل صمت التهيئة إلى ادعاء عن الواقع التشغيلي.
ينطبق تمييز Heng Lu هنا بلا زيادة: المواصفة المنشورة أداة تنسيق مشتركة، لا أمراً يجعل قراراً محلياً قد وقع. RFC 9865 تجعل شكل المتابعة قابلاً للفحص. أما الهوية الحالية والسياسة والتنفيذ والقرار الذي يبنى على البيانات فتبقى مسؤوليات مستقلة. المؤشر يواصل القائمة فحسب؛ أما الصلاحية فتُفحص من جديد.
Sources
- https://www.rfc-editor.org/rfc/rfc9865.html
- https://www.rfc-editor.org/info/rfc9865/
- https://datatracker.ietf.org/doc/rfc9865/
- https://www.iana.org/assignments/scim/
- https://www.rfc-editor.org/rfc/rfc7644.html
- https://www.rfc-editor.org/rfc/rfc7643.html
- https://www.rfc-editor.org/rfc/rfc3986.html
- https://www.rfc-editor.org/rfc/rfc6585.html
- https://www.rfc-editor.org/rfc/rfc9325.html
- https://www.rfc-editor.org/rfc/rfc9110.html
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
