認証方法を理解する
個人ログインからチーム認証・クラウドプロバイダー連携まで、Claude Code がどの認証情報を使うかを決める仕組みと優先順位
この節で学ぶこと
この節では、Claude Code が「自分は誰としてAPIを呼ぶか」を決めるルールがわかります。 個人・チーム・クラウドプロバイダーそれぞれのログイン方法と、複数の認証情報が同時に存在するときの優先順位です。
複数の認証情報から使うものを決める優先順位のルール
複数の認証情報が同時にあっても、優先順位ルールで使うものが自動的に決まる
ログインする
Claude Code をインストールした後、ターミナルで claude を実行します。
- 1
claude を実行
初回起動でブラウザが自動で開きログイン画面が表示される。環境変数 ANTHROPIC_API_KEY を設定済みの場合は、ログイン画面の代わりにそのキーを使うかどうかの承認を求められる
- 2
ブラウザで認証
自動で開かない場合は c キーを押すとログインURLがクリップボードにコピーされる
- 3
コードを貼り付け(必要時)
サインイン後にリダイレクトされず「ログインコード」が表示される場合、そのコードをターミナルの Paste code here if prompted プロンプトに貼り付ける。WSL2・SSHセッション・コンテナ環境でよく起こる
- 4
ログイン完了
ターミナルに Login successful と表示されたら Enter キーで続行する
/logout で一度ログアウトして再ログインできます。ログアウトすると初回起動時のセットアップ状態もリセットされるため、次に claude を実行すると再びログイン〜セットアップの案内が表示されます。
ログインでトラブルが起きた場合は、認証のトラブルシューティング(公開準備中)を参照してください。
認証できるアカウントの種類
個人(Pro / Max)
claude.ai アカウントでログイン
Claude for Teams / Enterprise
管理者に招待された claude.ai アカウントでログイン
Claude Console
管理者に招待された Console アカウントでログイン
クラウドプロバイダー
Amazon Bedrock / Google Cloud の Agent Platform / Microsoft Foundry を使う場合は、claude 実行前に必要な環境変数を設定するか、ログイン画面で「3rd-party platform」を選ぶ(Bedrock・Vertex AI 向けの対話式セットアップウィザードが起動する)。ブラウザログインは不要
セルフホストのゲートウェイ
組織が自前で運用する Claude apps ゲートウェイ(公開準備中)を使う場合は /login で企業のSSOにサインインする。ゲートウェイが発行するトークンがそのセッション唯一の認証情報になる
管理者は、開発者がどのログイン方法を使うか指定したり、claude.ai ログインを特定の組織に限定したりできます(後述の「組織へのログインを制限する」)。
チームの認証をセットアップする
チーム・組織向けには、次のいずれかの方法で Claude Code のアクセスを設定します。
Claude for Teams / Enterprise
ほとんどのチームに推奨
Claude Console
APIベースの請求を好む組織向け
Claude apps ゲートウェイ(公開準備中)
自組織のIdPで開発者をサインインさせ、設定したクラウドプロバイダーに推論をルーティングするセルフホスト型ゲートウェイ
Amazon Bedrock / Google Cloud の Agent Platform / Microsoft Foundry
各サービスのドキュメントは公開準備中
Claude for Teams / Enterprise
チームメンバーは Claude Code と claude.ai の両方に、一元化された請求・チーム管理の下でアクセスできます。
Claude for Teams
コラボレーション機能・管理者ツール・請求管理を備えたセルフサービスプラン。小規模チーム向け
Claude for Enterprise
SSO・ドメインキャプチャ・ロールベースの権限・コンプライアンスAPI・組織全体の管理ポリシー設定が加わる。セキュリティ・コンプライアンス要件のある大規模組織向け
導入手順は「契約する → 管理ダッシュボードからメンバーを招待する → メンバーが Claude Code をインストールして claude.ai アカウントでログインする」の3ステップです。
Claude Console 認証
APIベースの請求を好む組織向けです。
- 1
Consoleアカウントを用意
新規作成、または既存のものを使う
- 2
ユーザーを追加
Console内で Settings → Members → Invite から一括招待、または SSO を設定
- 3
ロールを割り当てる
招待時にロールを割り当てる。Claude Codeロールは Claude Code 用のAPIキーしか作成できない。Developerロールは任意の種類のAPIキーを作成できる
- 4
インストールしてログイン
招待されたユーザーが Console の招待を承諾し、システム要件を確認して Claude Code をインストールし、Console アカウントの認証情報でログインする
クラウドプロバイダー認証
Amazon Bedrock・Google Cloud の Agent Platform・Microsoft Foundry を使うチーム向けです。各プロバイダーのセットアップ手順に従った後、環境変数と認証情報の生成手順をユーザーに配布し、Claude Code をインストールしてもらいます(各プロバイダーの詳細ドキュメントは公開準備中)。
組織へのログインを制限する
開発者の claude.ai ログインを特定の Anthropic 組織に限定するには、マネージド設定(公開準備中)の forceLoginMethod と forceLoginOrgUUID を設定します。forceLoginOrgUUID には、claude.ai の管理画面(Claude for Teams / Enterprise の組織向け)に表示される組織IDを設定します。claude.ai ログインが一覧にない組織のものだった場合、Claude Code は起動時にエラーを出して終了します。
claude.ai ログイン
Console ログイン
claude.ai ログイン
Console ログイン
claude.ai ログイン
Console ログイン
Console ログインの扱いは異なります。forceLoginOrgUUID に単一の Console 組織IDを設定すると、Console のサインイン画面でその組織が事前選択されるだけです。そのため、キーを配布する前に Console アカウントでログイン済みだった開発者は、そのままログインし続けられます。開発者を claude.ai サインインに誘導したい場合は forceLoginMethod を "claudeai" に設定します。
ログインの経路は複数あります: ターミナルの /login、VS Code拡張、Agent SDK、claude setup-token、/install-github-app、そしてゲートウェイ経由のサインイン。Claude Code v2.1.212 以降ではすべての経路で forceLoginMethod が適用されますが、それより前はターミナルログインのみ適用されていました。経路ごとに forceLoginOrgUUID の扱いも異なります。
ターミナル・VS Code拡張・Agent SDK
claude.ai アカウントログインに対して forceLoginOrgUUID を検証する。対話式の /login フロー自体は claudeai か console のどちらかを事前選択するだけで強制はしないため、forceLoginMethod を "claudeai" にしていても、開発者はその画面から Console ログインを完了できてしまう
claude setup-token と /install-github-app
forceLoginMethod のみを強制するため、別の組織のトークンを発行できてしまう
ゲートウェイサインイン
forceLoginMethod: "gateway" によって選ばれる経路であり制限は受けない。Anthropic組織に対して認証するわけではないため forceLoginOrgUUID は適用されない。制限したい場合はゲートウェイ側のIDプロバイダーで行う
これらのキーはデバイス管理ツール経由で配布します。サーバーマネージド設定(公開準備中)は、すでに組織へ認証済みのアカウントにしか届かないため、開発者の最初のログインをリダイレクトすることはできません。デバイスマネージド設定とサーバーマネージド設定の両方を配布している場合は、両方に同じキーを設定してください。マネージド設定のソース同士はマージされず、キャッシュされたサーバーマネージド設定はデバイスマネージド設定ファイルを丸ごと置き換えます(例外は env ブロック〔v2.1.223以降はキー単位でマージ〕とクロスソースのロックキー〔どのソースからでも適用される〕の2種類のみ)。forceLoginMethod と forceLoginOrgUUID はどちらの例外にも該当しないため、両方の設定ファイルに書く必要があります。
これらのキーは、ログイン認証情報を使わないセッションを起動できるかどうかも左右します。
ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN / apiKeyHelper
起動時にブロックされる。環境変数由来の認証情報は組織メンバーシップを検証できないため(v2.1.146より前は、この制限はログインフローにのみ適用され、APIキー認証情報はブロックされなかった)
Amazon Bedrock などクラウドプロバイダーのセッション
ブロックされない。クラウドプロバイダー側で認証するため、制限したい場合はクラウド側のIAMポリシーで行う
Anthropic プロファイル・フェデレーション認証情報
ブロックされず、これらのキーはプロファイルがどの組織に属するかもチェックしない
認証情報はどこに、どう保存されるか
認証情報の保存場所
OS・環境によって異なる
macOS
暗号化された macOS Keychain
Linux
~/.claude/.credentials.json(パーミッション 0600)
Windows
%USERPROFILE%\.claude\.credentials.json(ユーザープロファイルディレクトリのアクセス制御を継承し、既定では自分のユーザーアカウントに限定される)
CLAUDE_CONFIG_DIR 設定時
Linux/Windowsで環境変数 CLAUDE_CONFIG_DIR を設定している場合、.credentials.json はそのディレクトリ配下に置かれる
.credentials.json は /login と /logout によって Claude Code が管理します。カスタムのAPIエンドポイント経由でリクエストしたい場合は、代わりに環境変数 ANTHROPIC_BASE_URL を設定します。対応する認証情報の種類は、claude.ai 認証情報・Claude API 認証情報・Microsoft Foundry Auth・Bedrock Auth・Vertex Auth・Anthropic プロファイルおよび Workload Identity Federation 認証情報・Claude apps ゲートウェイのセッショントークンです。カスタム認証情報スクリプトが必要な場合は、設定 apiKeyHelper(公開準備中の設定リファレンスに詳細)に、APIキーを返すシェルスクリプトを指定できます。
更新は5分ごと
apiKeyHelper は既定で5分ごと、またはHTTP 401レスポンスを受けたときに呼び出される。更新間隔を変えたい場合は環境変数 CLAUDE_CODE_API_KEY_HELPER_TTL_MS を設定する
遅いと警告が出る
apiKeyHelper の実行に10秒以上かかると、プロンプト欄に経過時間つきの警告が表示される。頻繁に出る場合はスクリプトの最適化を検討する
失敗は3回試行で表面化
スクリプトがエラー終了・タイムアウト・無出力のいずれかになると、3回の試行以内に「Your apiKeyHelper script is failing」エラーでリクエストが失敗する(v2.1.208より前は、約10回のサイレントリトライの末に汎用的な401エラーとして表面化していた)
apiKeyHelper・ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKEN はCLIと、それをラップするVS Code拡張・Agent SDK・GitHub Actionsに適用されます。Claude Desktop とクラウドセッションはこれらの環境変数を読まず apiKeyHelper も呼び出しません。OAuthで認証します(例外は、サードパーティ推論設定(公開準備中)で動作するデスクトップセッションで、その設定の認証情報を使います)。
ログインの有効期限が近づいたら
- 1
期限3日前
起動時に "Your login expires in 3 days · run /login to renew" と警告が表示される(Claude Code v2.1.203以降。v2.1.217より前は5日前から表示されていた)
- 2
/login で更新
この警告はあくまで情報提供であり、リクエストをブロックすることはない。認証は実際に期限切れになるまで機能し続ける
- 3
期限切れ後
更新できないまま期限切れになると、再度サインインするまで各リクエストが "Login expired · Please run /login" で失敗する(v2.1.206より前は、期限切れログインはモデルエラーとして表面化していた)
/status で事前確認できる
/status を実行すると、期限切れの場合は Login の行に "Expired — log in again" と表示され、保存されている組織名・メールアドレスも確認できる(この行が表示されるのは保存された claude.ai または Console のログインがアクティブな認証情報の場合に限られ、v2.1.210以降が必要)
対象は2種のログインのみ
この警告が出るのは、claude.ai または Console のログインがアクティブな認証情報の場合だけ。クラウドプロバイダー・ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKEN・apiKeyHelper が認証情報を提供している場合は表示されない
無人セッションは特に注意
エージェントビュー(公開準備中)のバックグラウンドセッションや、ログインの有効期限を超えて動き続けるリモートコントロール(公開準備中)セッションは、認証情報が期限切れになると再ログインするまで処理が止まる
認証の優先順位
複数の認証情報が同時に設定されていることがあります(環境変数、apiKeyHelper、/login によるサブスクリプションログインなど)。Claude Code は次の順序で最初に該当したものを使います。数字が小さいほど優先度が高い設定です。
1. クラウドプロバイダー認証情報
CLAUDE_CODE_USE_BEDROCK / _VERTEX / _FOUNDRY 設定時に使う
2. ANTHROPIC_AUTH_TOKEN
Authorization: Bearer ヘッダーで送信
3. ANTHROPIC_API_KEY
X-Api-Key ヘッダーで送信。対話モードでは初回に承認を確認
4. apiKeyHelper
動的・ローテーションする認証情報向けのスクリプト出力
5. CLAUDE_CODE_OAUTH_TOKEN
claude setup-token で発行した長期トークン
6. Anthropic プロファイル・フェデレーション認証情報
ant CLI や Workload Identity Federation が使う認証情報
7. サブスクリプションの OAuth ログイン
/login によるもの。Pro・Max・Team・Enterprise の既定
Claude apps ゲートウェイにサインイン済みのセッションはこの優先順位リストの外にあり、存在すれば最優先で使われる(クラウドプロバイダー・APIキー・apiKeyHelper・プロファイルより優先)
各項目の補足です。
- クラウドプロバイダー認証情報:
CLAUDE_CODE_USE_BEDROCK・CLAUDE_CODE_USE_VERTEX・CLAUDE_CODE_USE_FOUNDRYのいずれかが設定されているとき(サードパーティ連携(公開準備中)参照) ANTHROPIC_AUTH_TOKEN: Anthropic APIキーではなくベアラートークンで認証するLLMゲートウェイ・プロキシ(公開準備中)を経由する場合に使うANTHROPIC_API_KEY: Console発行のキーでAnthropic APIに直接アクセスする場合に使う。対話モードでは承認・却下を1回確認され、以降その選択が記憶される(/configの「Use custom API key」トグルで後から変更可能。このトグルは環境変数ANTHROPIC_API_KEYが設定されている間だけ表示される)。非対話モード(-p)では、キーが存在すれば常に使われるapiKeyHelper: Vaultなどから取得する短命トークンのような、動的・ローテーションする認証情報向けCLAUDE_CODE_OAUTH_TOKEN:claude setup-tokenが発行する長期OAuthトークン。ブラウザログインが使えないCIパイプライン・スクリプト向け。変数がセットされた状態で/loginを実行すると現在のセッションは新しいログインに切り替わるが、シェルプロファイルや設定ファイルのenvブロックから変数を取り除かない限り、新しいセッションのたびに再びこの変数が読まれる- Anthropic プロファイル・フェデレーション認証情報:
antCLI と Workload Identity Federation が使う認証情報。ant auth loginが書き込んだプロファイルは、ANTHROPIC_PROFILEで名指しされた場合のみこの順位に入り、そうでなければ/loginより低い順位になる(詳細は次項) - サブスクリプションの OAuth 認証情報:
/loginによるもの。Pro・Max・Team・Enterprise ユーザーの既定
ゲートウェイは常に最優先
ゲートウェイセッションが存在する場合、CLAUDE_CODE_USE_BEDROCK / _VERTEX / _FOUNDRY が設定されていてもCLIはゲートウェイトークンで認証し、上記のベアラートークン・APIキー・apiKeyHelper・プロファイルは使われない
APIキーが優先されうる
サブスクリプションが有効なのに ANTHROPIC_API_KEY も環境に設定している場合、承認済みであればAPIキーが優先される。このキーが無効・期限切れの組織のものだと認証エラーの原因になる。unset ANTHROPIC_API_KEY でサブスクリプションに戻し、/status でどちらが使われているか確認する(Login method 行にサブスクリプションのアカウントが表示され、APIキー使用時のみ API key 行が追加で表示される)
Web版は常にサブスクリプション
Claude Code on the Web は常にサブスクリプションの認証情報を使う。サンドボックス環境で ANTHROPIC_API_KEY や ANTHROPIC_AUTH_TOKEN を設定しても、サブスクリプションの認証情報を上書きしない
Anthropic プロファイルとフェデレーション認証情報
プロファイルは、Anthropic設定ディレクトリ(既定は macOS/Linuxで ~/.config/anthropic、Windowsで %APPDATA%\Anthropic)にある名前付きの認証情報設定ファイルです。Workload Identity Federation (WIF)向けに設定すると認証モードは oidc_federation、ant auth login が書き込んだ場合は user_oauth になります。Claude Code はベアモード(対話画面を持たない軽量起動モード。公開準備中)、Claude Desktop、クラウドセッションではプロファイルやフェデレーション変数を読みません。
Claude Code は次の3つのソースをこの順に確認し、最初に設定されているものを採用します。
| ソース | 設定方法 | /login との優先関係 |
|---|---|---|
| 名前付きプロファイル | ANTHROPIC_PROFILE | 認証モードによらず /login より上位 |
| フェデレーション変数 | ANTHROPIC_FEDERATION_RULE_ID と ANTHROPIC_ORGANIZATION_ID の両方 | /login より上位 |
| アクティブプロファイル | 設定ディレクトリ内の active_config ファイル、または default という名前のプロファイル | 認証モードが oidc_federation なら上位。user_oauth なら、機能している /login 認証情報より下位 |
user_oauthだけ特別扱い
user_oauth だけ順位が下がるのは、使われなくなった ant auth login のプロファイルが、/login でサインインしたアカウントからリクエストを勝手に逸らさないようにするため。フェデレーション変数を使う場合、Claude Code は ANTHROPIC_IDENTITY_TOKEN_FILE など他のWIF関連変数も読み、IDトークンを交換する
Profile行で確認
どのソースが選ばれたかは /status の Profile 行(Login method 行の代わりに表示)で確認できる。--debug 付きで起動すると、デバッグログ(~/.claude/debug/<session-id>.txt)に "Using Anthropic profile auth" という行でソース名が記録される
期限切れは専用エラー
user_oauth プロファイルのログインが期限切れで更新もできない場合、リクエストは「Anthropic profile login expired」で失敗する
機能している /login 認証情報があるために user_oauth のアクティブプロファイルが見送られた場合は、その旨の警告もデバッグログに記録されます。claude.ai コネクタや /schedule(いずれも公開準備中)のように claude.ai ログインを前提とする機能は、これらのソースのいずれかが選ばれている間は使えません。選択を止めるには、名前付きプロファイル・フェデレーション変数の場合は該当する環境変数を unset し、アクティブプロファイルの場合は user_oauth なら ant auth logout を実行するか、どちらの認証モードでも設定ディレクトリの configs/ からプロファイルファイルを削除します。
CI・スクリプト向けに長期間有効なトークンを発行する
ブラウザでの対話ログインが使えないCIパイプラインやスクリプトでは、claude setup-token で1年間有効なOAuthトークンを発行できます。
claude setup-tokenこのコマンドは /login と同じブラウザ認可フローを開き、ブラウザでアクセスを承認するとトークンがターミナルに出力されます。トークンはどこにも保存されないため、コピーして環境変数 CLAUDE_CODE_OAUTH_TOKEN に設定します。
export CLAUDE_CODE_OAUTH_TOKEN=your-tokenこのトークンはユーザーのサブスクリプションで認証するもので、Pro・Max・Team・Enterpriseのいずれかのプランが必要です。モデルへのリクエストしか行えないため、リモートコントロール(公開準備中)セッションの確立や claude.ai コネクタ(公開準備中)の取得はできません(ローカルに設定したMCPサーバーは通常どおり利用できます)。
ベアモードは CLAUDE_CODE_OAUTH_TOKEN を読みません。スクリプトが --bare を渡す場合は、代わりに ANTHROPIC_API_KEY か apiKeyHelper で認証してください。
つまずきポイント
よくある誤解
サブスクリプション(Pro / Max / Team / Enterprise)を契約していれば、それだけでログインして使える
実際は
環境に ANTHROPIC_API_KEY が残っていると、優先順位表の3番目にあるこのキーが7番目のサブスクリプションより優先されて使われてしまう。原因不明の認証エラーが出たら、まず /status で API key 行の有無を確認し、不要なら unset ANTHROPIC_API_KEY する
よくある誤解
forceLoginOrgUUID を設定すれば、組織外からのアクセスは常に安全に防げる
実際は
claude.ai ログインには強制力があるが、Console ログインでは組織IDが事前選択されるだけで、実際の認証情報の組織はチェックされない。Console 経由のアクセスを本気で制限したい場合は、この非対称性を踏まえて設計する必要がある
よくある誤解
apiKeyHelper の失敗は常に汎用的な401エラーとして現れる
実際は
v2.1.208以降は「Your apiKeyHelper script is failing」という専用エラーで失敗するようになった。古いバージョンの情報を見て「401=キーが無効」と誤診しないよう注意する
- 参考(公式ではない): 認証まわりのトラブルは、まず
/statusで「今どの認証情報が使われているか」を確認するところから始めると切り分けが早いです
関連リンク
- 原文: Authentication
- インストール手順: Claude Code をインストールする
- 権限モードとの違い(何を確認せず実行するか): 権限モードを選ぶ
- Claude Code on the Web の認証: 第3章「Web版クイックスタート」(公開準備中)
- 設定ファイル・マネージド設定の詳細: 第6章「設定を管理する」(公開準備中)
出典
- Authentication(取得日: 2026-08-18)