Gateway

ขอบเขตของผู้ดำเนินการ

ขอบเขตของผู้ปฏิบัติการกำหนดสิ่งที่ไคลเอนต์ Gateway สามารถทำได้หลังจากยืนยันตัวตนแล้ว ขอบเขตเหล่านี้เป็นกลไกป้องกันของระนาบควบคุมภายในโดเมนผู้ปฏิบัติการ Gateway ที่เชื่อถือได้หนึ่งโดเมน ไม่ใช่การแยกผู้เช่าหลายรายที่เป็นปรปักษ์ต่อกัน หากต้องการการแยกที่เข้มงวดระหว่างบุคคล ทีม หรือเครื่อง ให้เรียกใช้ Gateway แยกกันภายใต้ผู้ใช้ระบบปฏิบัติการหรือโฮสต์ที่แยกจากกัน

เนื้อหาที่เกี่ยวข้อง: ความปลอดภัย, โปรโตคอล Gateway, การจับคู่ Gateway, CLI อุปกรณ์

บทบาท

ไคลเอนต์ WebSocket ของ Gateway ทุกตัวจะเชื่อมต่อด้วยหนึ่งบทบาท:

  • operator: ไคลเอนต์ระนาบควบคุม เช่น CLI, UI ควบคุม, ระบบอัตโนมัติ และ กระบวนการตัวช่วยที่เชื่อถือได้
  • node: โฮสต์ความสามารถ (macOS, iOS, Android, แบบไม่มีส่วนติดต่อผู้ใช้) ที่เปิดให้ใช้ คำสั่งผ่าน node.invoke

เมธอด RPC ของผู้ปฏิบัติการต้องใช้บทบาท operator ส่วนเมธอดที่มาจาก Node ต้องใช้บทบาท node

ระดับขอบเขต

ขอบเขต ความหมาย
operator.read สถานะ รายการ แค็ตตาล็อก บันทึก การอ่านเซสชัน และการเรียกอื่นๆ ที่ไม่แก้ไขข้อมูลแบบอ่านอย่างเดียว
operator.write การดำเนินการของผู้ปฏิบัติการที่แก้ไขข้อมูล: ส่งข้อความ เรียกใช้เครื่องมือ อัปเดตการตั้งค่าการสนทนา/เสียง และส่งต่อคำสั่ง Node รวมถึงครอบคลุม operator.read ด้วย
operator.admin สิทธิ์การเข้าถึงระดับผู้ดูแลระบบ ครอบคลุมขอบเขต operator.* ทุกขอบเขต จำเป็นสำหรับการแก้ไขการกำหนดค่า การอัปเดต ฮุกแบบเนทีฟ เนมสเปซที่สงวนไว้ และการอนุมัติที่มีความเสี่ยงสูง
operator.pairing การจัดการการจับคู่อุปกรณ์และ Node: แสดงรายการ อนุมัติ ปฏิเสธ ลบ หมุนเวียน และเพิกถอน
operator.approvals API การอนุมัติการเรียกใช้คำสั่งและ 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 เป็นเจ้าของ Node แบบ WS ใช้การจับคู่อุปกรณ์ (role: node) แทน แต่ยังใช้ชุดคำศัพท์ การอนุมัติเดียวกัน โปรดดู การจับคู่ Gateway เพื่อศึกษาความสัมพันธ์ระหว่าง ที่เก็บทั้งสอง

node.pair.approve อนุมานขอบเขตเพิ่มเติมที่จำเป็นจากรายการคำสั่งของคำขอ ที่รออนุมัติ:

คำสั่งที่ประกาศ ขอบเขตที่จำเป็น
ไม่มี operator.pairing
คำสั่ง Node ที่ไม่ใช่การเรียกใช้คำสั่ง operator.pairing + operator.write
system.run, system.run.prepare หรือ system.which operator.pairing + operator.admin

การอนุมัติคำประกาศของ Node ไม่ได้เปิดใช้งานคำสั่งที่มีด่านรายการอนุญาตขณะรันแยกต่างหาก ตัวอย่างเช่น การอนุมัติ Node ที่ประกาศ computer.act ต้องใช้ขอบเขตการจับคู่และการเขียน แต่เป็นเพียงการบันทึกพื้นผิวความสามารถ ผู้ดูแลระบบหรือเจ้าของยังคงต้องเปิดใช้งาน computer.act ขณะที่ยังเปิดใช้งานอยู่ การเรียกใช้ผ่านเมธอด node.invoke ที่ต้องใช้ขอบเขตการเขียนไม่จำเป็นต้องใช้ขอบเขตผู้ดูแลระบบสำหรับแต่ละการดำเนินการ

การจับคู่ Node สร้างอัตลักษณ์และความเชื่อถือ แต่ไม่ได้แทนที่นโยบายการอนุมัติ การเรียกใช้คำสั่ง system.run ของ Node เอง

การยืนยันตัวตนด้วยข้อมูลลับร่วมกัน

การยืนยันตัวตนด้วยโทเค็น/รหัสผ่าน Gateway ที่ใช้ร่วมกันถือเป็นการเข้าถึงของผู้ปฏิบัติการ ที่เชื่อถือได้สำหรับ Gateway นั้น พื้นผิว HTTP ที่เข้ากันได้กับ OpenAI, /tools/invoke และ ปลายทางประวัติเซสชัน HTTP จะคืนค่าชุดขอบเขตผู้ปฏิบัติการเริ่มต้นทั้งหมดสำหรับ การยืนยันตัวตนแบบแบเรอร์ด้วยข้อมูลลับร่วมกัน แม้ว่าผู้เรียกจะส่งขอบเขตที่ประกาศไว้แคบกว่าก็ตาม

โหมดที่มีข้อมูลอัตลักษณ์ เช่น การยืนยันตัวตนผ่านพร็อกซีที่เชื่อถือได้ หรือ none สำหรับ ทางเข้าระบบส่วนตัว ยังคงสามารถเคารพขอบเขตที่ประกาศไว้อย่างชัดเจนได้ ใช้ Gateway แยกกัน เพื่อแยกขอบเขตความเชื่อถืออย่างแท้จริง

Was this useful?
On this page

On this page