Technical reference
SecretRef 認証情報サーフェス
このページでは、正規の SecretRef 認証情報サーフェスを定義します。つまり、どの認証情報フィールドが生のシークレット値の代わりに SecretRef(env/file/exec ベースの参照)を受け付けるかを示します。
範囲:
- 対象範囲: OpenClaw が発行またはローテーションしない、ユーザーが指定した認証情報のみ。
- 対象外: ランタイムが発行する認証情報またはローテーションされる認証情報、OAuth 更新用情報、セッションに類するアーティファクト。
以下のリストはソースターゲットレジストリから生成され、CI で docs/reference/secretref-user-supplied-credentials-matrix.json と照合されます。エントリを手動で編集しないでください。
サポートされる認証情報
openclaw.json ターゲット(secrets configure + secrets apply + secrets audit)
models.providers.*.apiKeymodels.providers.*.headers.*models.providers.*.request.auth.tokenmodels.providers.*.request.auth.valuemodels.providers.*.request.headers.*models.providers.*.request.proxy.tls.camodels.providers.*.request.proxy.tls.certmodels.providers.*.request.proxy.tls.keymodels.providers.*.request.proxy.tls.passphrasemodels.providers.*.request.tls.camodels.providers.*.request.tls.certmodels.providers.*.request.tls.keymodels.providers.*.request.tls.passphraseskills.entries.*.apiKeymemory.search.remote.apiKeyagents.entries.*.tts.providers.*.apiKeyagents.entries.*.memory.search.remote.apiKeytalk.providers.*.apiKeytalk.realtime.providers.*.apiKeytts.providers.*.apiKeyplugins.entries.acpx.config.mcpServers.*.env.*plugins.entries.brave.config.webSearch.apiKeyplugins.entries.codex.config.appServer.authTokenplugins.entries.codex.config.appServer.headers.*plugins.entries.exa.config.webSearch.apiKeyplugins.entries.firecrawl.config.webFetch.apiKeyplugins.entries.google-meet.config.realtime.providers.*.apiKeyplugins.entries.google.config.webSearch.apiKeyplugins.entries.xai.config.webSearch.apiKeyplugins.entries.moonshot.config.webSearch.apiKeyplugins.entries.perplexity.config.webSearch.apiKeyplugins.entries.firecrawl.config.webSearch.apiKeyplugins.entries.minimax.config.webSearch.apiKeyplugins.entries.tavily.config.webSearch.apiKeyplugins.entries.parallel.config.webSearch.apiKeyplugins.entries.voice-call.config.realtime.providers.*.apiKeyplugins.entries.voice-call.config.streaming.providers.*.apiKeyplugins.entries.voice-call.config.tts.providers.*.apiKeyplugins.entries.voice-call.config.twilio.authTokenplugins.entries.webhooks.config.routes.*.secretgateway.auth.passwordgateway.auth.tokengateway.remote.tokengateway.remote.passwordcron.webhookTokenchannels.telegram.botTokenchannels.telegram.webhookSecretchannels.telegram.accounts.*.botTokenchannels.telegram.accounts.*.webhookSecretchannels.slack.botTokenchannels.slack.appTokenchannels.slack.relay.authTokenchannels.slack.userTokenchannels.slack.signingSecretchannels.slack.accounts.*.botTokenchannels.slack.accounts.*.appTokenchannels.slack.accounts.*.relay.authTokenchannels.slack.accounts.*.userTokenchannels.slack.accounts.*.signingSecretchannels.sms.authTokenchannels.sms.accounts.*.authTokenchannels.clickclack.tokenchannels.clickclack.accounts.*.tokenchannels.discord.tokenchannels.discord.pluralkit.tokenchannels.discord.voice.tts.providers.*.apiKeychannels.discord.accounts.*.tokenchannels.discord.accounts.*.pluralkit.tokenchannels.discord.accounts.*.voice.tts.providers.*.apiKeychannels.irc.passwordchannels.irc.nickserv.passwordchannels.irc.accounts.*.passwordchannels.irc.accounts.*.nickserv.passwordchannels.feishu.appSecretchannels.feishu.encryptKeychannels.feishu.verificationTokenchannels.feishu.accounts.*.appSecretchannels.feishu.accounts.*.encryptKeychannels.feishu.accounts.*.verificationTokenchannels.qqbot.clientSecretchannels.qqbot.accounts.*.clientSecretchannels.msteams.appPasswordchannels.mattermost.botTokenchannels.mattermost.accounts.*.botTokenchannels.matrix.accessTokenchannels.matrix.passwordchannels.matrix.accounts.*.accessTokenchannels.matrix.accounts.*.passwordchannels.nextcloud-talk.botSecretchannels.nextcloud-talk.apiPasswordchannels.nextcloud-talk.accounts.*.botSecretchannels.nextcloud-talk.accounts.*.apiPasswordchannels.zalo.botTokenchannels.zalo.webhookSecretchannels.zalo.accounts.*.botTokenchannels.zalo.accounts.*.webhookSecretchannels.googlechat.serviceAccount(兄弟serviceAccountRef経由、互換性の例外)channels.googlechat.accounts.*.serviceAccount(兄弟serviceAccountRef経由、互換性の例外)
auth-profiles.json ターゲット(secrets configure + secrets apply + secrets audit)
profiles.*.keyRef(type: "api_key"。auth.profiles.<id>.mode = "oauth"の場合はサポート対象外)profiles.*.tokenRef(type: "token"。auth.profiles.<id>.mode = "oauth"の場合はサポート対象外)
注記:
- 認証プロファイルのプランターゲットには
agentIdが必要です。プランエントリはprofiles.*.key/profiles.*.tokenをターゲットとし、兄弟参照(keyRef/tokenRef)を書き込みます。認証プロファイル参照は、ランタイム解決および監査の対象に含まれます。 openclaw.jsonでは、SecretRef は{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}のような構造化オブジェクトを使用する必要があります。従来のsecretref-env:<ENV_VAR>マーカー文字列は SecretRef 認証情報パスで拒否されます。有効なマーカーを移行するには、openclaw doctor --fixを実行してください。- OAuth ポリシーガード:
auth.profiles.<id>.mode = "oauth"は、そのプロファイルの SecretRef 入力と組み合わせることができません。このポリシーに違反すると、起動/再読み込みおよび認証プロファイルの解決は即座に失敗します。 - SecretRef で管理されるモデルプロバイダーでは、生成された
agents/*/agent/models.jsonエントリに、apiKey/ヘッダーのサーフェス用として、シークレットではないマーカー(解決済みのシークレット値ではない)が永続化されます。マーカーの永続化ではソースが正となります。OpenClaw は、解決済みのランタイムシークレット値からではなく、アクティブなソース設定のスナップショット(解決前)からマーカーを書き込みます。 - Gateway のコールドスタートでは、マッピング済みの Gateway 以外の所有者について、再試行可能な解決エラーを分離できます。現在マッピングされているクラスには、モデルプロバイダーと Skills、メディア/TTS/cron プロバイダー、対象となる認証プロファイル、エージェントごとのメモリ、サンドボックス SSH、チャネルアカウント、マニフェストで宣言された Plugin ルートが含まれます。起動時には、失敗した各所有者の明示的な参照がランタイムスナップショットに保持され、ステータスと doctor を通じてその所有者が報告され、優先順位の低い認証情報を試すことなく、その所有者へのリクエストが拒否されます。再読み込みと設定書き込みの事前チェックでも、同じ所有者認識ポリシーが使用されます。正常な所有者は更新されます。対象となる失敗した所有者が古い状態のまま維持されるのは、その参照 ID、プロバイダー定義、およびシークレットではない所有者の完全な契約が変更されていない場合に限られます。新規または変更された失敗はコールド状態になります。Gateway の受信認証、構造的に無効な参照または値、フェイルクローズの所有者、現在マッピングされていない所有者については、引き続き厳格に処理されます。
- Web 検索について: 明示的なプロバイダーモード(
tools.web.search.providerが設定されている場合)では、選択されたプロバイダーキーのみが有効です。自動モード(tools.web.search.providerが未設定の場合)では、優先順位に従って最初に解決されるプロバイダーキーのみが有効であり、選択されていないプロバイダー参照は、選択されるまで無効として扱われます。プロバイダーの認証情報にはplugins.entries.<plugin>.config.webSearch.*を使用します。 - Slack
identity: "user"は、Socket Mode ではchannels.slack.appTokenとともに、HTTP モードではchannels.slack.signingSecretとともにchannels.slack.userTokenを使用します。channels.slack.accounts.*配下でも同じ組み合わせが適用されます。この ID にはボットトークンは必要ありません。
サポートされない認証情報
これらの認証情報は、発行、ローテーション、セッション保持、または OAuth で永続化されるクラスであり、読み取り専用の外部 SecretRef 解決には適合しません。
hooks.tokenhooks.gmail.pushTokenhooks.mappings[].sessionKeyauth-profiles.oauth.*channels.discord.threadBindings.webhookTokenchannels.discord.accounts.*.threadBindings.webhookTokenchannels.whatsapp.creds.jsonchannels.whatsapp.accounts.*.creds.json
関連項目
Was this useful?