الانتقال إلى المحتوى الرئيسي

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.

“الإقران” هو خطوة موافقة الوصول الصريحة في OpenClaw. يُستخدم في موضعين:
  1. إقران DM (من يُسمح له بالتحدث إلى البوت)
  2. إقران Node (أي الأجهزة/العُقد يُسمح لها بالانضمام إلى شبكة Gateway)
سياق الأمان: الأمان

1) إقران DM (وصول المحادثة الواردة)

عندما تُهيَّأ قناة بسياسة DM هي pairing، يحصل المرسلون غير المعروفين على رمز قصير ولا تتم معالجة رسالتهم حتى توافق عليها. سياسات DM الافتراضية موثقة في: الأمان dmPolicy: "open" تكون عامة فقط عندما تتضمن قائمة السماح الفعلية لـ DM القيمة "*". يتطلب الإعداد والتحقق وجود هذا wildcard لإعدادات public-open. إذا كانت الحالة الحالية تحتوي على open مع إدخالات allowFrom محددة، فسيظل وقت التشغيل يسمح لهؤلاء المرسلين فقط، ولا توسّع موافقات مخزن الإقران وصول open. رموز الإقران:
  • 8 أحرف، كبيرة، بلا أحرف ملتبسة (0O1I).
  • تنتهي بعد ساعة واحدة. لا يرسل البوت رسالة الإقران إلا عند إنشاء طلب جديد (تقريبًا مرة كل ساعة لكل مرسل).
  • تُحد طلبات إقران DM المعلقة إلى 3 لكل قناة افتراضيًا؛ وتُتجاهل الطلبات الإضافية حتى تنتهي صلاحية أحدها أو تتم الموافقة عليه.

الموافقة على مرسل

openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
إذا لم يكن مالك أوامر مهيأ بعد، فإن الموافقة على رمز إقران DM تُمهّد أيضًا commands.ownerAllowFrom إلى المرسل الموافق عليه، مثل telegram:123456789. يمنح ذلك الإعدادات لأول مرة مالكًا صريحًا للأوامر ذات الصلاحيات ومطالبات موافقة التنفيذ. بعد وجود مالك، تمنح موافقات الإقران اللاحقة وصول 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 في المستوى الأعلى عندما ينبغي تطبيق مجموعة المرسلين الموثوقين نفسها على عدة قنوات رسائل أو على قوائم سماح DM والمجموعات معًا. تستخدم المجموعات الثابتة type: "message.senders" وتُشار إليها باستخدام accessGroup:<name> من قوائم السماح الخاصة بالقنوات:
{
  accessGroups: {
    operators: {
      type: "message.senders",
      members: {
        discord: ["discord:123456789012345678"],
        telegram: ["987654321"],
        whatsapp: ["+15551234567"],
      },
    },
  },
  channels: {
    telegram: { dmPolicy: "allowlist", allowFrom: ["accessGroup:operators"] },
    whatsapp: { groupPolicy: "allowlist", groupAllowFrom: ["accessGroup:operators"] },
  },
}
مجموعات الوصول موثقة بالتفصيل هنا: مجموعات الوصول

أين توجد الحالة

مخزنة ضمن ~/.openclaw/credentials/:
  • الطلبات المعلقة: <channel>-pairing.json
  • مخزن قائمة السماح الموافق عليها:
    • الحساب الافتراضي: <channel>-allowFrom.json
    • الحساب غير الافتراضي: <channel>-<accountId>-allowFrom.json
سلوك نطاق الحساب:
  • الحسابات غير الافتراضية تقرأ/تكتب فقط ملف قائمة السماح scoped الخاص بها.
  • يستخدم الحساب الافتراضي ملف قائمة السماح غير scoped على مستوى القناة.
عامل هذه الملفات كملفات حساسة (فهي تتحكم في الوصول إلى مساعدك).
مخزن قائمة سماح الإقران مخصص لوصول DM. تفويض المجموعات منفصل. لا تسمح الموافقة على رمز إقران DM تلقائيًا لذلك المرسل بتشغيل أوامر المجموعات أو التحكم في البوت داخل المجموعات. تمهيد المالك الأول هو حالة إعداد منفصلة في commands.ownerAllowFrom، ولا يزال تسليم محادثات المجموعات يتبع قوائم السماح الخاصة بمجموعات القناة (مثل groupAllowFrom أو groups أو التجاوزات لكل مجموعة أو لكل موضوع، بحسب القناة).

2) إقران أجهزة Node (عُقد iOS/Android/macOS/headless)

تتصل العُقد بـ Gateway بصفتها أجهزة مع role: node. ينشئ Gateway طلب إقران جهاز يجب الموافقة عليه.

الإقران عبر Telegram (موصى به لـ iOS)

إذا استخدمت Plugin باسم device-pair، يمكنك إجراء إقران الجهاز لأول مرة بالكامل من Telegram:
  1. في Telegram، راسل البوت الخاص بك: /pair
  2. يرد البوت برسالتين: رسالة تعليمات ورسالة رمز إعداد منفصلة (سهلة النسخ/اللصق في Telegram).
  3. على هاتفك، افتح تطبيق OpenClaw على iOS ← Settings ← Gateway.
  4. امسح رمز QR أو الصق رمز الإعداد واتصل.
  5. ارجع إلى Telegram: /pair pending (راجع معرّفات الطلبات والدور والنطاقات)، ثم وافق.
رمز الإعداد هو حمولة JSON مرمزة بـ base64 تحتوي على:
  • url: عنوان URL لـ WebSocket الخاص بـ Gateway (ws://... أو wss://...)
  • bootstrapToken: رمز تمهيد قصير العمر لجهاز واحد يُستخدم لمصافحة الإقران الأولية
يحمل رمز التمهيد هذا ملف تعريف تمهيد الإقران المدمج:
  • يظل رمز node الأساسي المُسلَّم scopes: []
  • يظل أي رمز operator مُسلَّم محدودًا بقائمة سماح التمهيد: operator.approvals, operator.read, operator.talk.secrets, operator.write
  • تكون فحوصات نطاق التمهيد مسبوقة بالدور، وليست مجموعة نطاقات مسطحة واحدة: إدخالات نطاق operator تفي بطلبات operator فقط، ويجب على الأدوار غير operator أن تظل تطلب النطاقات تحت بادئة الدور الخاصة بها
  • يظل تدوير/إبطال الرموز لاحقًا محدودًا بكل من عقد الدور الموافق عليه للجهاز ونطاقات operator الخاصة بجلسة المستدعي
عامل رمز الإعداد مثل كلمة مرور ما دام صالحًا. بالنسبة إلى Tailscale أو الإقران العام أو غيره من إقران الأجهزة المحمولة عن بُعد، استخدم Tailscale Serve/Funnel أو عنوان URL آخر لـ Gateway بصيغة wss://. تُقبل رموز إعداد ws:// ذات النص الصريح فقط لـ loopback وعناوين LAN الخاصة ومضيفي Bonjour باسم .local ومضيف محاكي Android. لا تزال عناوين Tailnet CGNAT وأسماء .ts.net والمضيفون العامون تفشل بشكل مغلق قبل إصدار QR/رمز الإعداد.

الموافقة على جهاز Node

openclaw devices list
openclaw devices approve <requestId>
openclaw devices reject <requestId>
عندما تُرفض موافقة صريحة لأن جلسة الجهاز المقترن التي توافق فُتحت بنطاق pairing-only، تعيد CLI محاولة الطلب نفسه باستخدام operator.admin. يتيح ذلك لجهاز مقترن موجود قادر على الإدارة استعادة إقران واجهة Control UI/المتصفح جديد دون تحرير devices/paired.json يدويًا. لا يزال Gateway يتحقق من الاتصال المُعاد؛ وتظل الرموز التي لا يمكنها المصادقة باستخدام operator.admin محظورة. إذا أعاد الجهاز نفسه المحاولة بتفاصيل مصادقة مختلفة (مثل دور/نطاقات/مفتاح عام مختلف)، يُستبدل الطلب المعلق السابق ويُنشأ requestId جديد.
لا يحصل الجهاز المقترن مسبقًا على وصول أوسع بصمت. إذا أعاد الاتصال طالبًا نطاقات أكثر أو دورًا أوسع، يبقي OpenClaw الموافقة الحالية كما هي وينشئ طلب ترقية معلقًا جديدًا. استخدم openclaw devices list لمقارنة الوصول الموافق عليه حاليًا مع الوصول المطلوب حديثًا قبل أن توافق.

موافقة تلقائية اختيارية لـ Node عبر trusted-CIDR

يبقى إقران الأجهزة يدويًا افتراضيًا. بالنسبة إلى شبكات Node المحكمة التحكم، يمكنك الاشتراك في الموافقة التلقائية لأول مرة على Node باستخدام CIDR صريحة أو عناوين IP دقيقة:
{
  gateway: {
    nodes: {
      pairing: {
        autoApproveCidrs: ["192.168.1.0/24"],
      },
    },
  },
}
ينطبق هذا فقط على طلبات إقران role: node الجديدة التي لا تطلب نطاقات. لا يزال عملاء Operator والمتصفح وControl UI وWebChat يتطلبون موافقة يدوية. ولا تزال تغييرات الدور والنطاق والبيانات الوصفية والمفتاح العام تتطلب موافقة يدوية.

تخزين حالة إقران Node

مخزنة ضمن ~/.openclaw/devices/:
  • pending.json (قصير العمر؛ تنتهي صلاحية الطلبات المعلقة)
  • paired.json (الأجهزة المقترنة + الرموز)

ملاحظات

  • واجهة API القديمة node.pair.* (CLI: openclaw nodes pending|approve|reject|remove|rename) هي مخزن إقران منفصل مملوك لـ Gateway. لا تزال عُقد WS تتطلب إقران جهاز.
  • سجل الإقران هو مصدر الحقيقة الدائم للأدوار الموافق عليها. تظل رموز الأجهزة النشطة محدودة بمجموعة الأدوار الموافق عليها؛ ولا ينشئ إدخال رمز عارض خارج الأدوار الموافق عليها وصولًا جديدًا.

وثائق ذات صلة