الانتقال إلى المحتوى الرئيسي
تحدد نطاقات المُشغّل ما يمكن لعميل Gateway فعله بعد المصادقة. وهي حاجز حماية لمستوى التحكم داخل نطاق مُشغّل Gateway موثوق واحد، وليست عزلاً عدائياً متعدد المستأجرين. إذا كنت تحتاج إلى فصل قوي بين الأشخاص أو الفرق أو الأجهزة، فشغّل Gateways منفصلة تحت مستخدمي نظام تشغيل أو مضيفين منفصلين. ذات صلة: الأمان، بروتوكول Gateway، إقران Gateway، CLI الأجهزة.

الأدوار

يتصل عملاء WebSocket في Gateway بدور واحد:
  • operator: عملاء مستوى التحكم مثل CLI، وControl UI، والأتمتة، وعمليات المساعدة الموثوقة.
  • node: مضيفو القدرات مثل macOS أو iOS أو Android أو Node بلا واجهة يعرضون الأوامر عبر node.invoke.
تتطلب طرق RPC الخاصة بالمُشغّل دور operator. وتتطلب الطرق الصادرة من Node دور node.

مستويات النطاق

النطاقالمعنى
operator.readالحالة للقراءة فقط، والقوائم، والكتالوغ، والسجلات، وقراءات الجلسات، واستدعاءات مستوى التحكم الأخرى غير المعدِّلة.
operator.writeإجراءات المُشغّل المعدِّلة العادية مثل إرسال الرسائل، واستدعاء الأدوات، وتحديث إعدادات Talk/الصوت، وترحيل أوامر Node. يفي أيضاً بـ operator.read.
operator.adminوصول إداري إلى مستوى التحكم. يفي بكل نطاقات operator.*. مطلوب لتعديل التكوين، والتحديثات، والخطافات الأصلية، ومساحات الأسماء المحجوزة الحساسة، والموافقات عالية الخطورة.
operator.pairingإدارة إقران الأجهزة وNode، بما في ذلك سرد سجلات الإقران أو رموز الأجهزة والموافقة عليها ورفضها وإزالتها وتدويرها وإلغاؤها.
operator.approvalsواجهات API لموافقات exec وPlugin.
operator.talk.secretsقراءة تكوين Talk مع تضمين الأسرار.
تتطلب نطاقات operator.* المستقبلية غير المعروفة تطابقاً دقيقاً ما لم يكن لدى المستدعي operator.admin.

نطاق الطريقة هو البوابة الأولى فقط

لكل RPC في Gateway نطاق طريقة بأقل امتيازات. يقرر نطاق الطريقة هذا ما إذا كان الطلب يمكنه الوصول إلى المعالج. ثم تطبّق بعض المعالجات فحوصات أشد وقت الموافقة بناءً على الشيء المحدد الذي تتم الموافقة عليه أو تعديله. أمثلة:
  • يمكن الوصول إلى device.pair.approve باستخدام operator.pairing، لكن الموافقة على جهاز مُشغّل لا يمكنها إلا إصدار أو الحفاظ على النطاقات التي يملكها المستدعي بالفعل.
  • يمكن الوصول إلى node.pair.approve باستخدام operator.pairing، ثم يشتق نطاقات موافقة إضافية من قائمة أوامر Node المعلقة.
  • تكون chat.send عادة طريقة ضمن نطاق الكتابة، لكن أوامر /config set و/config unset المستمرة تتطلب operator.admin على مستوى الأمر.
يتيح هذا للمُشغّلين ذوي النطاق الأدنى تنفيذ إجراءات إقران منخفضة الخطورة من دون جعل كل موافقات الإقران مقصورة على المسؤولين فقط.

موافقات إقران الأجهزة

سجلات إقران الأجهزة هي المصدر الدائم للأدوار والنطاقات الموافق عليها. لا تحصل الأجهزة المقترنة مسبقاً على وصول أوسع بصمت: تؤدي عمليات إعادة الاتصال التي تطلب دوراً أوسع أو نطاقات أوسع إلى إنشاء طلب ترقية جديد معلق. عند الموافقة على طلب جهاز:
  • لا يحتاج الطلب الذي لا يتضمن دور مُشغّل إلى موافقة نطاق رمز المُشغّل.
  • يتطلب طلب دور جهاز غير مُشغّل، مثل node، operator.admin، حتى عندما يكون device.pair.approve قابلاً للوصول باستخدام operator.pairing.
  • يتطلب طلب operator.read أو operator.write أو operator.approvals أو operator.pairing أو operator.talk.secrets أن يمتلك المستدعي تلك النطاقات، أو operator.admin.
  • يتطلب طلب operator.admin النطاق operator.admin.
  • يمكن لطلب إصلاح بلا نطاقات صريحة أن يرث نطاقات رمز المُشغّل الموجودة. إذا كان ذلك الرمز الموجود ضمن نطاق المسؤول، فستظل الموافقة تتطلب operator.admin.
لا يمكن لجلسات السر المشترك غير الإدارية والوكيل الموثوق الموافقة على طلبات أجهزة المُشغّل إلا داخل نطاقات المُشغّل المعلنة الخاصة بها. الموافقة على الأدوار غير الخاصة بالمُشغّل مقصورة على المسؤولين فقط حتى عندما تتمكن تلك الجلسات بخلاف ذلك من استخدام operator.pairing. بالنسبة إلى جلسات رموز الأجهزة المقترنة، تكون الإدارة أيضاً ذاتية النطاق ما لم يكن لدى المستدعي operator.admin: لا يرى المستدعون غير الإداريين إلا إدخالات الإقران الخاصة بهم، ولا يمكنهم الموافقة أو الرفض إلا لطلبهم المعلق، ولا يمكنهم تدوير أو إلغاء أو إزالة إلا إدخال أجهزتهم الخاص.

موافقات إقران Node

يستخدم node.pair.* القديم مخزن إقران Node منفصلاً مملوكاً لـ Gateway. تستخدم WS Node إقران الأجهزة مع role: node، لكن مفردات مستوى الموافقة نفسها تنطبق. يستخدم node.pair.approve قائمة أوامر الطلب المعلق لاشتقاق نطاقات مطلوبة إضافية:
  • طلب بلا أوامر: operator.pairing
  • أوامر Node غير exec: operator.pairing + operator.write
  • system.run أو system.run.prepare أو system.which: operator.pairing + operator.admin
ينشئ إقران Node الهوية والثقة. ولا يستبدل سياسة موافقة exec الخاصة بـ system.run في Node نفسه.

مصادقة السر المشترك

تُعامل مصادقة رمز/كلمة مرور Gateway المشتركة كوصول مُشغّل موثوق لذلك Gateway. تستعيد أسطح HTTP المتوافقة مع OpenAI، و/tools/invoke، ونقاط نهاية سجل جلسات HTTP مجموعة نطاقات المُشغّل الافتراضية الكاملة العادية لمصادقة الحامل بالسر المشترك، حتى إذا أرسل المستدعي نطاقات معلنة أضيق. لا تزال الأوضاع الحاملة للهوية، مثل مصادقة الوكيل الموثوق أو none للإدخال الخاص، قادرة على احترام النطاقات الصريحة المعلنة. استخدم Gateways منفصلة للفصل الحقيقي لحدود الثقة.