---
read_when:
    - می‌خواهید کلیدهای API را از openclaw.json خارج کنید و در 1Password قرار دهید
    - Gateway را بدون رابط گرافیکی اجرا می‌کنید و برای op به احراز هویت حساب سرویس نیاز دارید
    - می‌خواهید عامل‌ها با استفاده از CLI مربوط به op، رازها را بخوانند یا تزریق کنند
summary: رازهای Gateway را با CLIِ 1Password بازیابی کنید و به عامل‌ها اجازه دهید از skill همراهِ 1password استفاده کنند
title: 1Password
x-i18n:
    generated_at: "2026-07-27T15:13:18Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 5bb14944f0b3ce1ee3f90bf666a53e8673e7a9861e3e138a5fabe9c8e070cbd7
    source_path: gateway/1password.md
    workflow: 16
---

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

- **اسرار پیکربندی:** هر فیلد [SecretRef](/fa/gateway/secrets) در `openclaw.json` می‌تواند هنگام اجرا از طریق CLI ‏`op` مقداردهی شود؛ بنابراین کلیدهای API هرگز در فایل پیکربندی قرار نمی‌گیرند.
- **گردش‌کارهای عامل:** مهارت همراهِ `1password` به عامل‌ها می‌آموزد برای وظایف خود با `op` وارد شوند و اسرار را بخوانند یا تزریق کنند.
- **ورود در مرورگر:** بک‌اند `claude-cli` می‌تواند از یکپارچه‌سازی Chrome در Claude Code همراه با [1Password برای Claude](https://support.1password.com/1password-claude/) استفاده کند تا عامل بدون اینکه گذرواژه هرگز به مدل یا OpenClaw برسد، وارد وب‌سایت‌ها شود.

## الزامات

- [CLI ‏1Password](https://developer.1password.com/docs/cli/get-started/) ‏(`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](/fa/gateway/secrets) و برای مشاهده تمام فیلدهایی که SecretRef می‌پذیرند به [سطح اعتبارنامه SecretRef](/fa/reference/secretref-credential-surface) مراجعه کنید.

## راه‌اندازی حساب سرویس برای 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](https://support.1password.com/1password-claude/) به Claude امکان می‌دهد ورود را درخواست کند و افزونه مرورگر 1Password اعتبارنامه را مستقیماً از طریق یک کانال رمزگذاری‌شده در صفحه وارد کند. راز هرگز وارد بافت مدل، رونوشت یا OpenClaw نمی‌شود. هنگامی که OpenClaw [بک‌اند `claude-cli`](/fa/gateway/cli-backends#claude-cli-specifics) را با یکپارچه‌سازی Chrome در Claude Code اجرا می‌کند، وظایف عامل می‌توانند برای وب‌سایت‌هایی که به نشست واقعیِ واردشده نیاز دارند از این جریان استفاده کنند.

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

- یک میزبان Gateway مبتنی بر macOS با Chrome، ‏[افزونه Claude in Chrome](https://code.claude.com/docs/en/chrome) متصل، برنامه دسکتاپ 1Password و افزونه مرورگر 1Password (هر دو نسخه 8.12.28 یا جدیدتر).
- Claude Code باید به یک طرح مستقیم Anthropic ‏(Pro، Max، Team یا Enterprise) وارد شده باشد. یکپارچه‌سازی Chrome از طریق Amazon Bedrock، ‏Google Cloud یا دیگر فراهم‌کنندگان شخص ثالث در دسترس نیست.
- اتصال یک‌باره 1Password در سمت Anthropic: ‏1Password برای Claude از طریق برنامه دسکتاپ Claude یا جریان افزونه شرح‌داده‌شده در [راهنمای 1Password](https://support.1password.com/1password-claude/) راه‌اندازی می‌شود و در حال حاضر نسخه بتای macOS است. در 1Password Business، مدیر باید ابتدا گزینه "Allow AI agents to autofill for users" را در بخش Policies فعال کند؛ طرح‌های Anthropic Team/Enterprise نیز این یکپارچه‌سازی را به‌صورت غیرفعال ارائه می‌کنند تا زمانی که یک Owner آن را فعال کند.
- یک [Plugin بک‌اند CLI](/fa/plugins/cli-backend-plugins) که `--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` در میزبان‌های شلوغ ممکن است از مهلت‌های زمانی سخت‌گیرانه فراتر رود.
