Gateway
دامنههای اپراتور
دامنههای عملگر تعریف میکنند که یک کلاینت Gateway پس از احراز هویت چه کارهایی میتواند انجام دهد. آنها یک محافظ صفحه کنترل درون یک دامنه عملگر قابل اعتماد Gateway هستند، نه جداسازی چندمستاجری خصمانه. اگر به جداسازی قوی میان افراد، تیمها، یا ماشینها نیاز دارید، Gatewayهای جداگانهای را تحت کاربران OS یا میزبانهای جداگانه اجرا کنید.
مرتبط: امنیت، پروتکل Gateway، جفتسازی Gateway، CLI دستگاهها.
نقشها
کلاینتهای WebSocket Gateway با یک نقش متصل میشوند:
operator: کلاینتهای صفحه کنترل مانند CLI، رابط کاربری کنترل، خودکارسازی، و فرایندهای کمکی قابل اعتماد.node: میزبانهای قابلیت مانند macOS، iOS، Android، یا Nodeهای بدون رابط که فرمانها را از طریقnode.invokeارائه میکنند.
روشهای RPC عملگر به نقش operator نیاز دارند. روشهایی که از Node آغاز میشوند
به نقش node نیاز دارند.
سطوح دامنه
| دامنه | معنا |
|---|---|
operator.read |
وضعیت فقطخواندنی، فهرستها، کاتالوگ، گزارشها، خواندن نشست، و سایر فراخوانیهای صفحه کنترل که تغییری ایجاد نمیکنند. |
operator.write |
کنشهای عادی عملگر که تغییر ایجاد میکنند، مانند ارسال پیام، فراخوانی ابزارها، بهروزرسانی تنظیمات گفتوگو/صدا، و رله فرمان Node. همچنین operator.read را برآورده میکند. |
operator.admin |
دسترسی مدیریتی صفحه کنترل. هر دامنه operator.* را برآورده میکند. برای تغییر پیکربندی، بهروزرسانیها، hookهای بومی، فضاینامهای رزروشده حساس، و تأییدهای پرخطر لازم است. |
operator.pairing |
مدیریت جفتسازی دستگاه و Node، شامل فهرستکردن، تأیید، رد، حذف، چرخش، و لغو رکوردهای جفتسازی یا توکنهای دستگاه. |
operator.approvals |
APIهای تأیید exec و Plugin. |
operator.talk.secrets |
خواندن پیکربندی گفتوگو همراه با secrets. |
دامنههای آینده ناشناخته operator.* به تطابق دقیق نیاز دارند، مگر اینکه فراخواننده
operator.admin داشته باشد.
دامنه روش فقط دروازه نخست است
هر RPC Gateway یک دامنه روش با حداقل اختیار دارد. آن دامنه روش تصمیم میگیرد که آیا درخواست میتواند به handler برسد یا نه. سپس برخی handlerها بر اساس مورد مشخصی که تأیید یا تغییر داده میشود، بررسیهای سختگیرانهتری در زمان تأیید اعمال میکنند.
نمونهها:
device.pair.approveباoperator.pairingقابل دسترسی است، اما تأیید یک دستگاه عملگر فقط میتواند دامنههایی را صادر یا حفظ کند که فراخواننده از قبل دارد.node.pair.approveباoperator.pairingقابل دسترسی است، سپس دامنههای تأیید اضافی را از فهرست فرمان Node در انتظار استخراج میکند.chat.sendمعمولاً روشی با دامنه نوشتن است، اما/config setو/config unsetپایدار در سطح فرمان بهoperator.adminنیاز دارند.
این اجازه میدهد عملگرهای با دامنه پایینتر کنشهای جفتسازی کمخطر را انجام دهند بدون اینکه همه تأییدهای جفتسازی فقط مخصوص مدیر شوند.
تأییدهای جفتسازی دستگاه
رکوردهای جفتسازی دستگاه منبع پایدار نقشها و دامنههای تأییدشده هستند. دستگاههایی که از قبل جفت شدهاند بهصورت خاموش دسترسی گستردهتر دریافت نمیکنند: اتصالهای مجددی که نقش گستردهتر یا دامنههای گستردهتر درخواست کنند، یک درخواست ارتقای در انتظار جدید ایجاد میکنند.
هنگام تأیید یک درخواست دستگاه:
- درخواستی که نقش عملگر ندارد به تأیید دامنه توکن عملگر نیاز ندارد.
- درخواست برای
operator.read،operator.write،operator.approvals،operator.pairing، یاoperator.talk.secretsنیاز دارد که فراخواننده همان دامنهها، یاoperator.admin، را داشته باشد. - درخواست برای
operator.adminبهoperator.adminنیاز دارد. - درخواست تعمیر بدون دامنههای صریح میتواند دامنههای توکن عملگر موجود را
به ارث ببرد. اگر آن توکن موجود دامنه admin داشته باشد، تأیید همچنان به
operator.adminنیاز دارد.
برای نشستهای توکن دستگاه جفتشده، مدیریت خوددامنه است مگر اینکه فراخواننده
operator.admin نیز داشته باشد: فراخوانندگان غیرمدیر فقط ورودیهای جفتسازی
خودشان را میبینند، فقط میتوانند درخواست در انتظار خودشان را تأیید یا رد کنند،
و فقط میتوانند ورودی دستگاه خودشان را بچرخانند، لغو کنند، یا حذف کنند.
تأییدهای جفتسازی Node
node.pair.* قدیمی از یک مخزن جفتسازی Node جداگانه که متعلق به Gateway است استفاده میکند. Nodeهای WS
از جفتسازی دستگاه با 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
خود Node برای system.run نمیشود.
احراز هویت با راز مشترک
احراز هویت با توکن/گذرواژه مشترک Gateway بهعنوان دسترسی عملگر قابل اعتماد برای
آن Gateway در نظر گرفته میشود. سطحهای HTTP سازگار با OpenAI و /tools/invoke
مجموعه دامنه پیشفرض کامل عملگر را برای احراز هویت bearer با راز مشترک بازمیگردانند،
حتی اگر فراخواننده دامنههای اعلامشده محدودتری ارسال کند.
حالتهای دارای هویت، مانند احراز هویت proxy قابل اعتماد یا none برای private-ingress،
همچنان میتوانند دامنههای اعلامشده صریح را رعایت کنند. برای جداسازی واقعی مرز اعتماد،
از Gatewayهای جداگانه استفاده کنید.