ドキュメントはじめに認証

認証

3 種類の認証ヘッダー、キーの形式とライフサイクル、認証関連のエラー。

すべてのデータプレーンリクエスト(/v1/*/v1beta/*)には API キーが必要です。3 社の SDK と互換にするため、ゲートウェイは以下の順で 3 種類の認証ヘッダーを確認します。いずれか 1 つで認証できます:

ヘッダー形式代表的なクライアント
AuthorizationAuthorization: Bearer sk-sole-…Bearer プレフィックスなしのキー単体も可)OpenAI SDK · Codex
x-api-keyx-api-key: sk-sole-…Anthropic SDK · Claude Code
x-goog-api-keyx-goog-api-key: sk-sole-…Google GenAI SDK

URL クエリパラメータ(Google 公式の ?key= など)でのキー指定はサポートしていません。クエリ文字列はアクセスログやブラウザ履歴に残り、漏えいリスクが高いためです。必ずヘッダーで指定してください。

キーの形式とライフサイクル

キーは sk-sole- で始まります。完全なキーは作成時に一度だけ表示され、サーバーはハッシュのみを保存します。紛失したキーは復元できず、再作成のみ可能です。各キーには個別に以下を設定できます:

  • 有効/無効:いつでもワンクリックで無効化でき、利用履歴は保持されます。
  • 有効期限:一時的な連携やサードパーティへの受け渡しに便利です。
  • 利用上限:USD 建ての上限で、日/週/月ごとの自動リセットも選べます。上限に達するとそのキーのリクエストは拒否されます(HTTP 402)。
  • IP 許可リスト:呼び出し元 IP を制限できます。リスト外からのリクエストは拒否されます(HTTP 403)。

認証関連のエラー

状況HTTPメッセージ id
キー未指定401key_missing
キーが存在しないか削除済み401key_invalid
キーが無効化されている403key_disabled
キーの有効期限切れ403key_expired
送信元 IP が許可リスト外403key_ip_denied
キーの利用上限に到達402key_quota_exhausted
アカウントが停止されている403account_disabled

エラーレスポンスの形式はリクエストパスに対応する SDK の形式になり、メッセージはアカウントの言語設定(認証前は Accept-Language、既定は英語)にローカライズされます。詳細はエラーコードを参照。

セキュリティのベストプラクティス

  • キーは環境変数またはシークレットマネージャーに保存し、ソースコードや設定リポジトリに書かないでください。
  • ブラウザなどクライアント側コードにキーを埋め込まないでください。フロントエンドから直接呼ぶ必要がある場合は、小さな上限と IP 許可リストを付けた専用キーを使います。
  • 用途ごとにキーを分けると、利用の分離と事故時の影響範囲の限定(該当キーだけ無効化)ができます。
  • キーは定期的にローテーションし、一時的な用途には有効期限と利用上限を設定してください。