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 بدون رابط کاربری مناسب نیست.
- حساب سرویس (توصیهشده برای Gatewayهای بدون رابط کاربری): متغیر
مقداردهی اسرار پیکربندی با op
یک فراهمکننده اسرار اجرایی تعریف کنید که op read را با یک ارجاع op://vault/item/field اجرا کند، سپس هر فیلدی را که از SecretRef پشتیبانی میکند به آن متصل کنید:
{ 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های بدون رابط کاربری
- در حساب 1Password خود یک حساب سرویس ایجاد کنید و فقط دسترسی خواندن به موارد خزانهای را بدهید که Gateway نیاز دارد.
OP_SERVICE_ACCOUNT_TOKENرا در اختیار سرویس Gateway قرار دهید (plist مربوط به launchd، واحد systemd یا محیط کانتینر)."OP_SERVICE_ACCOUNT_TOKEN"را به فهرستpassEnvفراهمکننده اضافه کنید.- از محیط میزبان 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در میزبانهای شلوغ ممکن است از مهلتهای زمانی سختگیرانه فراتر رود.