OpenClaw認証情報の管理:資格情報と解決ルールを徹底解説
開発を進めている中で、「なぜか認証が通らない」「どの設定が優先されているのか分からない」といった問題に直面したことはありませんか?認証情報の解決ルールが不明確だと、デバッグに多くの時間を費やしてしまいます。
この記事では、認証情報の適格性と解決に関する標準的なセマンティクスについて解説します。これにより、開発時と実行時の挙動を一致させ、スムーズな認証管理を実現できます。
Auth Credential のセマンティクス
Section titled “Auth Credential のセマンティクス”このドキュメントでは、以下のコンポーネント全体で使用される標準的な認証情報の適格性および解決セマンティクスを定義します。
resolveAuthProfileOrderresolveApiKeyForProfilemodels status --probedoctor-auth
目的は、選択時の挙動と実行時の挙動を一致させることです。
安定した理由コード(Stable Reason Codes)
Section titled “安定した理由コード(Stable Reason Codes)”エラーや状態を特定するために、以下の理由コードが使用されます。
okmissing_credentialinvalid_expiresexpiredunresolved_ref
Token Credential
Section titled “Token Credential”Token Credential(type: "token")は、インラインの token または tokenRef(あるいはその両方)をサポートしています。
適格性ルール
Section titled “適格性ルール”tokenとtokenRefの両方が存在しない場合、そのトークンプロファイルは不適格となります。expiresは任意項目です。expiresを指定する場合、0より大きい有限の数値である必要があります。expiresが無効な場合(NaN、0、負の数、非有限数、または型が正しくない場合)、そのプロファイルはinvalid_expiresとして不適格になります。expiresが過去の時刻を示している場合、そのプロファイルはexpiredとして不適格になります。tokenRefを使用している場合でも、expiresのバリデーションはスキップされません。
- Resolver のセマンティクスは、
expiresに関する適格性のセマンティクスと一致します。 - 適格なプロファイルについては、インラインの値または
tokenRefからトークン素材が解決されます。また、解決できない参照がある場合は、models status --probeの出力にunresolved_refが表示されます。
OAuth SecretRef ポリシーガード
Section titled “OAuth SecretRef ポリシーガード”- SecretRef の入力は、静的な認証情報のみを対象としています。
- プロファイルの認証情報が
type: "oauth"の場合、その認証情報素材として SecretRef オブジェクトを使用することはできません。 auth.profiles.<id>.modeが"oauth"に設定されている場合、そのプロファイルに対する SecretRef ベースのkeyRefやtokenRefの入力は拒否されます。- これらの違反は、起動時または再読み込み時の認証解決パスにおいて、致命的なエラー(hard failure)として扱われます。
レガシー互換のメッセージング
Section titled “レガシー互換のメッセージング”スクリプトの互換性を維持するため、プローブエラーの最初の行は以下のように変更せず保持されます。
Auth profile credentials are missing or expired.
人間が理解しやすい詳細な情報や、安定した理由コードは、2行目以降に追加される場合があります。
次のステップ
Section titled “次のステップ”OpenClaw Expert
まだ解決しませんか?
このページで解決しない場合は、OpenClaw Expertに直接質問してください。