Gateway
Operatör kapsamları
Operatör kapsamları, bir Gateway istemcisinin kimlik doğrulamasından sonra neler yapabileceğini sınırlar. Bunlar, güvenilen tek bir Gateway operatör etki alanı içindeki bir kontrol düzlemi güvenlik sınırıdır; kötü niyetli çok kiracılı ortam yalıtımı değildir. Kişiler, ekipler veya makineler arasında güçlü bir ayrım sağlamak için ayrı işletim sistemi kullanıcıları ya da ana makineler altında ayrı Gateway'ler çalıştırın.
İlgili: Güvenlik, Gateway protokolü, Gateway eşleştirme, Cihazlar CLI'si.
Roller
Her Gateway WebSocket istemcisi tek bir rolle bağlanır:
operator: CLI, Kontrol Arayüzü, otomasyon ve güvenilen yardımcı işlemler gibi kontrol düzlemi istemcileri.node: komutlarınode.invokearacılığıyla sunan yetenek ana makineleri (macOS, iOS, Android, başsız sistemler).
Operatör RPC yöntemleri operator rolünü, Node kaynaklı yöntemler ise
node rolünü gerektirir.
Kapsam düzeyleri
| Kapsam | Anlamı |
|---|---|
operator.read |
Salt okunur durum, listeler, katalog, günlükler, oturum okumaları ve durum değişikliğine yol açmayan diğer çağrılar. |
operator.write |
Durum değiştiren operatör eylemleri: mesaj gönderme, araç çağırma, konuşma/ses ayarlarını güncelleme, Node komutu aktarma. operator.read gereksinimini de karşılar. |
operator.admin |
Yönetim erişimi. Tüm operator.* kapsamlarının gereksinimini karşılar. Yapılandırma değişiklikleri, güncellemeler, yerel kancalar, ayrılmış ad alanları ve yüksek riskli onaylar için gerekir. |
operator.pairing |
Cihaz ve Node eşleştirme yönetimi: listeleme, onaylama, reddetme, kaldırma, yenileme, iptal etme. |
operator.approvals |
Çalıştırma ve Plugin onay API'leri. |
operator.talk.secrets |
Gizli bilgiler dâhil olmak üzere Konuşma yapılandırmasını okuma. |
Gelecekte eklenecek bilinmeyen operator.* kapsamları, çağıran zaten
operator.admin kapsamına sahip değilse tam eşleşme gerektirir.
Yöntem kapsamı yalnızca ilk denetimdir
Her Gateway RPC'si, bir isteğin işleyicisine ulaşıp ulaşmayacağını belirleyen en düşük ayrıcalıklı bir yöntem kapsamına sahiptir. Bazı işleyiciler daha sonra onaylanan veya değiştirilen somut öğeye göre daha sıkı denetimler uygular:
device.pair.approve,operator.pairingile erişilebilirdir; ancak bir operatör cihazı onaylanırken yalnızca çağıranın zaten sahip olduğu kapsamlar oluşturulabilir veya korunabilir.node.pair.approve,operator.pairingile erişilebilirdir ve ardından bekleyen Node'un bildirdiği komut listesinden ek onay kapsamları türetir.chat.send, yazma kapsamlı bir yöntemdir; ancak/config setve/config unsetsohbet komutları, çağıranın sohbet gönderme kapsamından bağımsız olarak buna ek olarakoperator.admingerektirir.
Bu, daha düşük kapsamlı operatörlerin tüm eşleştirme onaylarını yalnızca yöneticilere özel hâle getirmeden düşük riskli eşleştirme eylemleri gerçekleştirmesini sağlar.
Cihaz eşleştirme onayları
Cihaz eşleştirme kayıtları, onaylanmış rollerin ve kapsamların kalıcı kaynağıdır. Zaten eşleştirilmiş bir cihaz sessizce daha geniş erişim elde etmez: daha geniş bir rol veya kapsamlar isteyen yeniden bağlantı, bekleyen yeni bir yükseltme isteği oluşturur.
Bir cihaz isteğini onaylama:
- Operatör rolü içermeyen bir istek, operatör kapsamı onayı gerektirmez.
- Operatör olmayan bir cihaz rolü (örneğin
node) isteyen bir istek,device.pair.approveyönteminin kendisi yalnızcaoperator.pairinggerektirse deoperator.admingerektirir. operator.read,operator.write,operator.approvals,operator.pairingveyaoperator.talk.secretsisteyen bir istek, çağıranın bu kapsama ya daoperator.adminkapsamına zaten sahip olmasını gerektirir.operator.administeyen bir istek,operator.admingerektirir.- Açık kapsamlar içermeyen bir onarım isteği, mevcut operatör belirtecinin
kapsamlarını devralabilir; bu belirteç yönetici kapsamlıysa onay yine de
operator.admingerektirir.
Yönetici olmayan paylaşılan gizli bilgi ve güvenilen proxy oturumları, yalnızca
kendi bildirdikleri operatör kapsamları dâhilindeki operatör cihazı isteklerini
onaylayabilir; bu oturumlar başka durumlarda operator.pairing kullanabilse bile,
operatör olmayan rolleri yalnızca yöneticiler onaylayabilir.
Eşleştirilmiş cihaz belirteci oturumlarında, çağıran operator.admin kapsamına
sahip değilse yönetim kendi cihazıyla sınırlıdır: yönetici olmayan bir çağıran
yalnızca kendi eşleştirme kayıtlarını görür ve yalnızca kendi cihaz kaydını
onaylayabilir, reddedebilir, yenileyebilir, iptal edebilir veya kaldırabilir.
Node eşleştirme onayları
Eski node.pair.* yöntemleri, Gateway'in sahip olduğu ayrı bir Node eşleştirme
deposunu kullanır. WS Node'ları bunun yerine cihaz eşleştirmeyi (role: node)
kullanır; ancak aynı onay terminolojisi geçerlidir. İki deponun ilişkisi için
Gateway eşleştirme bölümüne bakın.
node.pair.approve, bekleyen isteğin komut listesinden gerekli ek kapsamları
türetir:
| Bildirilen komutlar | Gerekli kapsamlar |
|---|---|
| yok | operator.pairing |
| çalıştırma dışı Node komutları | operator.pairing + operator.write |
system.run, system.run.prepare veya system.which |
operator.pairing + operator.admin |
Bir Node bildirimini onaylamak, ayrı bir çalışma zamanı izin listesi denetimine
sahip komutları etkinleştirmez. Örneğin, computer.act bildiren bir Node'u
onaylamak eşleştirme ve yazma kapsamı gerektirir, ancak yalnızca yüzeyi kaydeder.
Bir yönetici veya sahip yine de computer.act özelliğini etkinleştirmelidir.
Etkin kaldığı sürece, yazma kapsamlı node.invoke yöntemi aracılığıyla çağrılması
her eylem için yönetici kapsamı gerektirmez.
Node eşleştirme, kimlik ve güven oluşturur; Node'un kendi system.run çalıştırma
onayı politikasının yerini almaz.
Paylaşılan gizli bilgiyle kimlik doğrulama
Paylaşılan Gateway belirteci/parolasıyla kimlik doğrulama, ilgili Gateway için
güvenilen operatör erişimi olarak değerlendirilir. OpenAI uyumlu HTTP yüzeyleri,
/tools/invoke ve HTTP oturum geçmişi uç noktaları, çağıran daha dar kapsamlar
bildirse bile paylaşılan gizli bilgi taşıyıcı kimlik doğrulaması için varsayılan
operatör kapsamlarının tamamını geri yükler.
Güvenilen proxy kimlik doğrulaması veya özel giriş none modu gibi kimlik taşıyan
modlar, açıkça bildirilen kapsamları yine de dikkate alabilir. Gerçek güven sınırı
ayrımı için ayrı Gateway'ler kullanın.