“การจับคู่” คือขั้นตอนการอนุมัติสิทธิ์เข้าถึงอย่างชัดเจนของ OpenClaw ใช้ในสองตำแหน่ง:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- การจับคู่ DM (ใครบ้างที่ได้รับอนุญาตให้คุยกับบอต)
- การจับคู่ Node (อุปกรณ์/Node ใดบ้างที่ได้รับอนุญาตให้เข้าร่วมเครือข่าย Gateway)
1) การจับคู่ DM (การเข้าถึงแชตขาเข้า)
เมื่อช่องทางถูกกำหนดค่าด้วยนโยบาย DMpairing ผู้ส่งที่ไม่รู้จักจะได้รับโค้ดสั้น และข้อความของพวกเขาจะ ไม่ถูกประมวลผล จนกว่าคุณจะอนุมัติ
นโยบาย DM เริ่มต้นมีเอกสารไว้ที่: ความปลอดภัย
dmPolicy: "open" จะเป็นสาธารณะก็ต่อเมื่อ allowlist DM ที่มีผลรวม "*" อยู่ด้วย
การตั้งค่าและการตรวจสอบความถูกต้องต้องใช้ไวลด์การ์ดนั้นสำหรับการกำหนดค่า public-open หากสถานะที่มีอยู่มี open พร้อมรายการ allowFrom แบบเจาะจง runtime จะยังคงอนุญาตเฉพาะผู้ส่งเหล่านั้นเท่านั้น และการอนุมัติใน pairing-store จะไม่ขยายสิทธิ์เข้าถึง open
โค้ดจับคู่:
- 8 อักขระ ตัวพิมพ์ใหญ่ ไม่มีอักขระที่สับสนได้ง่าย (
0O1I) - หมดอายุหลัง 1 ชั่วโมง บอตจะส่งข้อความจับคู่เฉพาะเมื่อมีการสร้างคำขอใหม่เท่านั้น (โดยประมาณหนึ่งครั้งต่อชั่วโมงต่อผู้ส่ง)
- คำขอจับคู่ DM ที่รอดำเนินการถูกจำกัดไว้ที่ 3 รายการต่อช่องทาง โดยค่าเริ่มต้น คำขอเพิ่มเติมจะถูกเพิกเฉยจนกว่าจะมีรายการหนึ่งหมดอายุหรือได้รับการอนุมัติ
อนุมัติผู้ส่ง
commands.ownerAllowFrom ไปยังผู้ส่งที่ได้รับอนุมัติด้วย เช่น telegram:123456789
ซึ่งทำให้การตั้งค่าครั้งแรกมีเจ้าของที่ชัดเจนสำหรับคำสั่งที่มีสิทธิ์พิเศษและพรอมป์อนุมัติ exec
หลังจากมีเจ้าของแล้ว การอนุมัติการจับคู่ในภายหลังจะให้เฉพาะสิทธิ์เข้าถึง DM เท่านั้น โดยจะไม่เพิ่มเจ้าของเพิ่มเติม
ช่องทางที่รองรับ: discord, feishu, googlechat, imessage, irc, line, matrix, mattermost, msteams, nextcloud-talk, nostr, openclaw-weixin, signal, slack, synology-chat, telegram, twitch, whatsapp, zalo, zalouser
กลุ่มผู้ส่งที่นำกลับมาใช้ซ้ำได้
ใช้accessGroups ระดับบนสุดเมื่อชุดผู้ส่งที่เชื่อถือได้เดียวกันควรถูกใช้กับ
หลายช่องทางข้อความ หรือกับทั้ง allowlist ของ DM และกลุ่ม
กลุ่มแบบคงที่ใช้ type: "message.senders" และถูกอ้างอิงด้วย
accessGroup:<name> จาก allowlist ของช่องทาง:
ตำแหน่งที่จัดเก็บสถานะ
จัดเก็บภายใต้~/.openclaw/credentials/:
- คำขอที่รอดำเนินการ:
<channel>-pairing.json - ที่เก็บ allowlist ที่อนุมัติแล้ว:
- บัญชีเริ่มต้น:
<channel>-allowFrom.json - บัญชีที่ไม่ใช่ค่าเริ่มต้น:
<channel>-<accountId>-allowFrom.json
- บัญชีเริ่มต้น:
- บัญชีที่ไม่ใช่ค่าเริ่มต้นอ่าน/เขียนเฉพาะไฟล์ allowlist ที่กำหนดขอบเขตของตน
- บัญชีเริ่มต้นใช้ไฟล์ allowlist แบบไม่กำหนดขอบเขตตามช่องทาง
ที่เก็บ allowlist สำหรับการจับคู่ใช้สำหรับการเข้าถึง DM การอนุญาตกลุ่มแยกออกมาต่างหาก
การอนุมัติโค้ดจับคู่ DM ไม่ได้อนุญาตให้ผู้ส่งนั้นรันคำสั่งกลุ่ม
หรือควบคุมบอตในกลุ่มโดยอัตโนมัติ การบูตสแตรปเจ้าของคนแรกเป็นสถานะการกำหนดค่า
แยกต่างหากใน
commands.ownerAllowFrom และการส่งมอบแชตกลุ่มยังคงทำตาม
allowlist กลุ่มของช่องทาง (เช่น groupAllowFrom, groups หรือการแทนที่แบบต่อกลุ่ม
หรือต่อหัวข้อ ขึ้นอยู่กับช่องทาง)2) การจับคู่อุปกรณ์ Node (Node iOS/Android/macOS/headless)
Node เชื่อมต่อกับ Gateway ในฐานะ อุปกรณ์ ด้วยrole: node Gateway
สร้างคำขอจับคู่อุปกรณ์ที่ต้องได้รับการอนุมัติ
จับคู่ผ่าน Telegram (แนะนำสำหรับ iOS)
หากคุณใช้ Plugindevice-pair คุณสามารถทำการจับคู่อุปกรณ์ครั้งแรกได้ทั้งหมดจาก Telegram:
- ใน Telegram ให้ส่งข้อความถึงบอตของคุณ:
/pair - บอตตอบกลับด้วยสองข้อความ: ข้อความคำแนะนำและข้อความ โค้ดตั้งค่า แยกต่างหาก (คัดลอก/วางใน Telegram ได้ง่าย)
- บนโทรศัพท์ของคุณ เปิดแอป OpenClaw iOS → Settings → Gateway
- สแกน QR code หรือวางโค้ดตั้งค่าและเชื่อมต่อ
- กลับไปที่ Telegram:
/pair pending(ตรวจสอบ ID คำขอ บทบาท และขอบเขต) จากนั้นอนุมัติ
url: URL WebSocket ของ Gateway (ws://...หรือwss://...)bootstrapToken: โทเค็นบูตสแตรปแบบอายุสั้นสำหรับอุปกรณ์เดียวที่ใช้สำหรับ handshake การจับคู่ครั้งแรก
- โทเค็น
nodeหลักที่ส่งต่อให้ยังคงเป็นscopes: [] - โทเค็น
operatorใด ๆ ที่ส่งต่อให้ยังคงถูกจำกัดอยู่กับ allowlist บูตสแตรป:operator.approvals,operator.read,operator.talk.secrets,operator.write - การตรวจสอบ scope ของบูตสแตรปมีคำนำหน้าตามบทบาท ไม่ใช่ pool scope แบบแบนเดียว: รายการ scope ของ operator จะตอบสนองเฉพาะคำขอ operator เท่านั้น และบทบาทที่ไม่ใช่ operator ยังต้องขอ scope ภายใต้คำนำหน้าบทบาทของตนเอง
- การหมุนเวียน/เพิกถอนโทเค็นในภายหลังยังคงถูกจำกัดทั้งโดยสัญญาบทบาทที่อุปกรณ์ได้รับอนุมัติ และ scope operator ของเซสชันผู้เรียก
wss:// อื่น โค้ดตั้งค่าแบบข้อความธรรมดา ws:// จะยอมรับเฉพาะ
local loopback, ที่อยู่ LAN ส่วนตัว, โฮสต์ Bonjour .local และโฮสต์ Android
emulator เท่านั้น ที่อยู่ CGNAT ของ tailnet, ชื่อ .ts.net และโฮสต์สาธารณะยังคง
ปิดไม่ให้ผ่านก่อนออก QR/โค้ดตั้งค่า
อนุมัติอุปกรณ์ Node
operator.admin วิธีนี้ทำให้อุปกรณ์ที่จับคู่แล้วและมีความสามารถระดับ admin สามารถกู้คืนการจับคู่
Control UI/เบราว์เซอร์ใหม่ได้โดยไม่ต้องแก้ไข devices/paired.json ด้วยมือ
Gateway ยังคงตรวจสอบการเชื่อมต่อที่ลองซ้ำ โทเค็นที่ไม่สามารถยืนยันตัวตน
ด้วย operator.admin จะยังคงถูกบล็อก
หากอุปกรณ์เดิมลองใหม่ด้วยรายละเอียดการยืนยันตัวตนที่ต่างออกไป (เช่น
บทบาท/scope/public key ต่างกัน) คำขอที่รอดำเนินการก่อนหน้าจะถูกแทนที่ และจะมีการสร้าง
requestId ใหม่
อุปกรณ์ที่จับคู่แล้วจะไม่ได้รับสิทธิ์เข้าถึงที่กว้างขึ้นอย่างเงียบ ๆ หากอุปกรณ์เชื่อมต่อใหม่โดยขอ scope เพิ่มเติมหรือบทบาทที่กว้างขึ้น OpenClaw จะคงการอนุมัติเดิมไว้ตามเดิมและสร้างคำขออัปเกรดที่รอดำเนินการใหม่ ใช้
openclaw devices list เพื่อเปรียบเทียบสิทธิ์เข้าถึงที่อนุมัติอยู่ในปัจจุบันกับสิทธิ์เข้าถึงที่เพิ่งร้องขอก่อนที่คุณจะอนุมัติการอนุมัติอัตโนมัติสำหรับ Node แบบ trusted-CIDR ที่เป็นตัวเลือก
การจับคู่อุปกรณ์ยังคงเป็นแบบทำเองโดยค่าเริ่มต้น สำหรับเครือข่าย Node ที่ควบคุมอย่างเข้มงวด คุณสามารถเลือกใช้การอนุมัติอัตโนมัติสำหรับ Node ครั้งแรกด้วย CIDR หรือ IP แบบเจาะจงอย่างชัดเจน:role: node ใหม่ที่ไม่มี
scope ที่ร้องขอเท่านั้น ไคลเอนต์ Operator, เบราว์เซอร์, Control UI และ WebChat ยังต้องการ
การอนุมัติด้วยมือ การเปลี่ยนบทบาท, scope, metadata และ public-key ยังต้องการ
การอนุมัติด้วยมือ
ที่จัดเก็บสถานะการจับคู่ Node
จัดเก็บภายใต้~/.openclaw/devices/:
pending.json(อายุสั้น; คำขอที่รอดำเนินการจะหมดอายุ)paired.json(อุปกรณ์ที่จับคู่แล้ว + โทเค็น)
หมายเหตุ
- API เดิม
node.pair.*(CLI:openclaw nodes pending|approve|reject|remove|rename) เป็น ที่เก็บการจับคู่แยกต่างหากที่ Gateway เป็นเจ้าของ Node แบบ WS ยังต้องใช้การจับคู่อุปกรณ์ - ระเบียนการจับคู่คือแหล่งความจริงถาวรสำหรับบทบาทที่อนุมัติ โทเค็นอุปกรณ์ที่ใช้งานอยู่ ยังคงถูกจำกัดอยู่กับชุดบทบาทที่อนุมัตินั้น รายการโทเค็นหลงเหลือ นอกบทบาทที่อนุมัติจะไม่สร้างสิทธิ์เข้าถึงใหม่