Gateway

1Password

OpenClaw به سه روش مستقل با 1Password کار می‌کند:

  • اسرار پیکربندی: هر فیلد SecretRef در openclaw.json می‌تواند هنگام اجرا از طریق CLI ‏op مقداردهی شود؛ بنابراین کلیدهای API هرگز در فایل پیکربندی قرار نمی‌گیرند.
  • گردش‌کارهای عامل: مهارت همراهِ 1password به عامل‌ها می‌آموزد برای وظایف خود با op وارد شوند و اسرار را بخوانند یا تزریق کنند.
  • ورود در مرورگر: بک‌اند claude-cli می‌تواند از یکپارچه‌سازی Chrome در Claude Code همراه با 1Password برای Claude استفاده کند تا عامل بدون اینکه گذرواژه هرگز به مدل یا OpenClaw برسد، وارد وب‌سایت‌ها شود.

الزامات

  • CLI ‏1Password ‏(op) روی میزبان Gateway نصب شده باشد (brew install 1password-cli در macOS).
  • یک حالت احراز هویت برای op:
    • حساب سرویس (توصیه‌شده برای Gatewayهای بدون رابط کاربری): متغیر OP_SERVICE_ACCOUNT_TOKEN را در محیط سرویس Gateway صادر کنید. نه به برنامه دسکتاپ نیاز است و نه به ورود تعاملی.
    • یکپارچه‌سازی برنامه دسکتاپ: برنامه 1Password روی همان دستگاه اجرا شود و یکپارچه‌سازی CLI در آن فعال باشد. فراخوانی‌های نخست ممکن است Touch ID یا احراز هویت سیستم را فعال کنند.
    • ورود مستقل: دستور op signin در هر نشست درخواست ورود می‌کند. این روش از طریق مهارت برای عامل‌ها قابل‌استفاده است، اما برای مقداردهی اسرار پیکربندی روی یک Gateway بدون رابط کاربری مناسب نیست.

مقداردهی اسرار پیکربندی با op

یک فراهم‌کننده اسرار اجرایی تعریف کنید که op read را با یک ارجاع op://vault/item/field اجرا کند، سپس هر فیلدی را که از SecretRef پشتیبانی می‌کند به آن متصل کنید:

json5
{  secrets: {    providers: {      onepassword_openai: {        source: "exec",        command: "/opt/homebrew/bin/op",        allowSymlinkCommand: true, // برای فایل‌های اجرایی پیوندشده نمادین Homebrew الزامی است        trustedDirs: ["/opt/homebrew"],        args: ["read", "op://Personal/OpenClaw QA API Key/password"],        passEnv: ["HOME"],        jsonOnly: false,      },    },  },  models: {    providers: {      openai: {        baseUrl: "https://api.openai.com/v1",        models: [{ id: "gpt-5", name: "gpt-5" }],        apiKey: { source: "exec", provider: "onepassword_openai", id: "value" },      },    },  },}

نحوه ارتباط اجزا:

  • command باید مسیری مطلق باشد؛ trustedDirs دایرکتوری آن را مورداعتماد علامت‌گذاری می‌کند و allowSymlinkCommand لازم است، زیرا Homebrew ‏op را به‌صورت پیوند نمادین نصب می‌کند.
  • args ارجاع op://vault/item/field را بدون تغییر منتقل می‌کند. OpenClaw طرح op:// را خود تحلیل نمی‌کند؛ فایل اجرایی op آن را مقداردهی می‌کند.
  • passEnv متغیرهای فهرست‌شده را از محیط Gateway منتقل می‌کند. یکپارچه‌سازی برنامه دسکتاپ به HOME نیاز دارد؛ حساب‌های سرویس نیز مستلزم حضور OP_SERVICE_ACCOUNT_TOKEN در محیط سرویس Gateway هستند (آن را به passEnv اضافه کنید، یا فقط در صورتی از طریق env تنظیمش کنید که خوانا بودن توکن در فایل پیکربندی را می‌پذیرید).
  • برای خروجی تک‌مقداری، id: "value" را حفظ کنید. در صورت استفاده از jsonOnly: true و یک محموله JSON، به‌جای آن با شناسه اشاره‌گر JSON به فیلدها ارجاع دهید.
  • یک ورودی فراهم‌کننده برای هر راز، ارجاع‌ها را قابل‌ممیزی نگه می‌دارد؛ فراهم‌کنندگان را بر اساس مصرف‌کننده آن‌ها نام‌گذاری کنید (onepassword_openai، onepassword_telegram).

برای ترتیب مقداردهی، کش و معناشناسی خطا به اسرار Gateway و برای مشاهده تمام فیلدهایی که SecretRef می‌پذیرند به سطح اعتبارنامه SecretRef مراجعه کنید.

راه‌اندازی حساب سرویس برای Gatewayهای بدون رابط کاربری

  1. در حساب 1Password خود یک حساب سرویس ایجاد کنید و فقط دسترسی خواندن به موارد خزانه‌ای را بدهید که Gateway نیاز دارد.
  2. OP_SERVICE_ACCOUNT_TOKEN را در اختیار سرویس Gateway قرار دهید (plist مربوط به launchd، واحد systemd یا محیط کانتینر).
  3. "OP_SERVICE_ACCOUNT_TOKEN" را به فهرست passEnv فراهم‌کننده اضافه کنید.
  4. از محیط میزبان Gateway صحت آن را بررسی کنید: op whoami باید حساب سرویس را بدون نمایش درخواست چاپ کند.

خواندن با حساب سرویس مستلزم آن است که خزانه در ارجاع op:// به‌صراحت نام‌گذاری شود. دامنه دسترسی حساب را محدود نگه دارید؛ این حساب یک اعتبارنامه حامل است.

مهارت 1password برای عامل‌ها

OpenClaw یک مهارت 1password همراه دارد که عامل‌ها را به اپراتورهای ماهر op تبدیل می‌کند: حالت احراز هویت موجود را شناسایی می‌کند (حساب سرویس، یکپارچه‌سازی برنامه دسکتاپ یا ورود مستقل)، پیش از خواندن هر چیزی دسترسی را با op whoami تأیید می‌کند و به‌جای نوشتن مقادیر اسرار روی دیسک، op run / op inject را ترجیح می‌دهد. این مهارت به فایل اجرایی op نیاز دارد و در صورت موجود نبودن آن، نصب از طریق Homebrew را پیشنهاد می‌کند.

عامل‌ها از آن در گردش‌کارهای خود استفاده می‌کنند؛ برای نمونه، توکن استقرار را در میانه یک وظیفه می‌خوانند یا متغیرهای محیطی را به یک فرمان تزریق می‌کنند. این قابلیت مستقل از مقداردهی اسرار پیکربندی است؛ Gateway بدون دخالت هیچ مهارتی SecretRefها را مقداردهی می‌کند.

ورود در مرورگر با 1Password برای Claude

1Password برای Claude به Claude امکان می‌دهد ورود را درخواست کند و افزونه مرورگر 1Password اعتبارنامه را مستقیماً از طریق یک کانال رمزگذاری‌شده در صفحه وارد کند. راز هرگز وارد بافت مدل، رونوشت یا OpenClaw نمی‌شود. هنگامی که OpenClaw بک‌اند claude-cli را با یکپارچه‌سازی Chrome در Claude Code اجرا می‌کند، وظایف عامل می‌توانند برای وب‌سایت‌هایی که به نشست واقعیِ واردشده نیاز دارند از این جریان استفاده کنند.

علاوه بر خود بک‌اند، این موارد لازم‌اند:

  • یک میزبان Gateway مبتنی بر macOS با Chrome، ‏افزونه Claude in Chrome متصل، برنامه دسکتاپ 1Password و افزونه مرورگر 1Password (هر دو نسخه 8.12.28 یا جدیدتر).
  • Claude Code باید به یک طرح مستقیم Anthropic ‏(Pro، Max، Team یا Enterprise) وارد شده باشد. یکپارچه‌سازی Chrome از طریق Amazon Bedrock، ‏Google Cloud یا دیگر فراهم‌کنندگان شخص ثالث در دسترس نیست.
  • اتصال یک‌باره 1Password در سمت Anthropic: ‏1Password برای Claude از طریق برنامه دسکتاپ Claude یا جریان افزونه شرح‌داده‌شده در راهنمای 1Password راه‌اندازی می‌شود و در حال حاضر نسخه بتای macOS است. در 1Password Business، مدیر باید ابتدا گزینه "Allow AI agents to autofill for users" را در بخش Policies فعال کند؛ طرح‌های Anthropic Team/Enterprise نیز این یکپارچه‌سازی را به‌صورت غیرفعال ارائه می‌کنند تا زمانی که یک Owner آن را فعال کند.
  • یک Plugin بک‌اند CLI که --chrome را به آرگومان‌های اجرای Claude اضافه کند؛ بک‌اند همراه، Chrome را فعال نمی‌کند.
  • حضور یک شخص در میزبان Gateway: هر بار استفاده از اعتبارنامه، یک درخواست 1Password نمایش می‌دهد که باید همان‌جا تأیید شود (برای نمونه با Touch ID). تحت یک سیاست اجرایی محدودکننده، فراخوانی‌های ابزار مرورگر نیز ابتدا به‌عنوان تأییدهای OpenClaw به کانال شما فرستاده می‌شوند.

پیش از اتصال این قابلیت به OpenClaw، اجزا را در یک نشست تعاملی روی میزبان Gateway بررسی کنید: claude --chrome را اجرا کنید، اتصال افزونه را تأیید کنید و بررسی کنید که ابزارهای claude-in-chrome شامل ابزارهای اعتبارنامه باشند. اگر در آنجا ظاهر نشوند، از طریق OpenClaw نیز ظاهر نخواهند شد.

رمزهای عبور یک‌بارمصرف را 1Password در همان صفحه وارد می‌کند؛ هرگز کدهای تأیید یا گذرواژه‌ها را از طریق گفت‌وگو منتقل نکنید. Gatewayهای بدون رابط کاربری یا راه‌دور در حال حاضر نمی‌توانند از این جریان استفاده کنند، زیرا هم تأیید و هم مرورگر روی میزبان Gateway قرار دارند.

نکات امنیتی

  • مقادیر اسراری که از طریق فراهم‌کنندگان اجرایی مقداردهی می‌شوند در حافظه Gateway باقی می‌مانند؛ تصاویر لحظه‌ای پیکربندی و پاسخ‌های config.get فیلدهای SecretRef را پنهان می‌کنند.
  • هرگز مقادیر اسرار را در openclaw.json، گزارش‌ها یا گفت‌وگو قرار ندهید. نام موارد را در پیکربندی و مقادیر را در 1Password نگه دارید.
  • ردپای ممیزی 1Password هر خواندن توسط حساب سرویس را نشان می‌دهد و چرخش کلید و بررسی رخداد را عملی می‌سازد.

عیب‌یابی

  • command not found یا خطاهای ایجاد فرایند: از مسیر مطلق op استفاده کنید و دایرکتوری آن را در trustedDirs قرار دهید.
  • op مقداردهی می‌شود، اما خواندن‌ها با خطاهای پیوند نمادین شکست می‌خورند: برای نصب‌های Homebrew، ‏allowSymlinkCommand: true را تنظیم کنید.
  • account is not signed in: برای حساب‌های سرویس، تأیید کنید که OP_SERVICE_ACCOUNT_TOKEN به سرویس Gateway می‌رسد و در passEnv فهرست شده است؛ برای یکپارچه‌سازی دسکتاپ، تأیید کنید که برنامه در حال اجرا و باز است.
  • کند بودن نخستین خواندن‌ها: مقدار timeoutMs را روی فراهم‌کننده افزایش دهید؛ راه‌اندازی سرد op در میزبان‌های شلوغ ممکن است از مهلت‌های زمانی سخت‌گیرانه فراتر رود.
Was this useful?
On this page

On this page