Claude Media
Claude Codeログイン方法3種の使い分け — claude.ai・APIキー・OAuthトークン

Claude Codeログイン方法3種の使い分け — claude.ai・APIキー・OAuthトークン

Claude Codeにはclaude.aiアカウント・APIキー・OAuthトークンの3つのログイン方式があります。それぞれの手順と、複数設定したときの優先順位、つまずきやすいエラーの対処までまとめます。

Claude Codeには3つのログイン方式がある

Claude Codeを使うにはPro・Max・Team・EnterpriseいずれかのサブスクリプションプランかConsole(API)アカウントが必要です。無料のClaude.aiプランにはClaude Codeのアクセスが含まれていません。この前提のもとで、ログインの実際の方式は3つに分かれます。個人利用の既定であるclaude.aiアカウント、従量課金のAPIキー、CI・ヘッドレス環境向けのOAuthトークンです。

この記事ではそれぞれの手順と向いている場面、複数の認証情報を同時に設定したときの優先順位、よく出るエラーの対処までを扱います。アカウントの新規作成やパスワード不要のログイン方式そのものについてはClaudeログイン完全ガイドにまとまっているので、本記事はClaude Code側の認証方式の使い分けに絞ります。

方式1: claude.aiアカウントでログインする

個人利用での既定はこの方式です。インストール後にターミナルで claude を実行すると、初回起動時にブラウザーが開いてログインを求められます。

claude

ブラウザーが自動で開かない場合は c キーを押すとログインURLがクリップボードにコピーされるので、手元のブラウザーへ貼り付けます。SSH先やコンテナ内、WSL2などブラウザーがClaude Codeのローカルコールバックサーバーへ到達できない環境では、リダイレクトの代わりにログインコードが画面に表示されるので、ターミナルの Paste code here if prompted に貼り付けて完了させます。

ログインが済むとClaude Codeは認証情報を安全に保存します。保存先はOSごとに異なり、macOSでは暗号化されたKeychain、Linuxでは ~/.claude/.credentials.json (パーミッション 0600)、Windowsでは %USERPROFILE%\.claude\.credentials.json です。CLAUDE_CONFIG_DIR 環境変数を設定している場合は、Linux/Windowsではそのディレクトリ配下に置かれます。

保存済みのログインが期限切れに近づくと、起動時に警告が表示されます。この警告はv2.1.203で追加され、v2.1.217以降は期限の3日前から、v2.1.203〜v2.1.216では5日前から表示されます。警告は情報提供のみで、実際に期限が切れるまでリクエストはブロックされません。期限が切れると Login expired · Please run /login というエラーになるので、/login で再認証します。セッションを離れる前に状態を確認したい場合は /status を実行すると、保存済みのclaude.aiログインまたはConsoleログインが有効な認証情報として使われているときに限り Login の行が表示されます(v2.1.210以降)。ログアウトしてやり直したい場合は /logout を使います。ログアウトは初回起動時のセットアップ状態もリセットするため、次回 claude を実行すると再びログインとセットアップの案内から始まります。

方式2: APIキーでログインする

チームでAPI従量課金の請求方式を使いたい場合や、ブラウザーログインを避けたい場合はAPIキー方式を使います。Claude Console(platform.claude.com)でアカウントを作成し、APIキーを発行します。Console側でユーザーを招待する際は「Claude Code」ロール(Claude Code用のAPIキーのみ作成可)か「Developer」ロール(任意の種類のAPIキーを作成可)のいずれかを割り当てます。

発行したキーは ANTHROPIC_API_KEY 環境変数に設定します。この変数が設定された状態で claude を起動すると、ブラウザーログインの代わりにキーを承認するかどうかを一度だけ尋ねられ、選択内容は記憶されます。

export ANTHROPIC_API_KEY=sk-ant-...

対話モードでは初回のみ承認プロンプトが出ますが、非対話モード(-p)ではキーが設定されていれば常にそのまま使われます。後から選択を変えたい場合は /config の「Use custom API key」トグルを使います(このトグルは ANTHROPIC_API_KEY が環境に設定されている間だけ表示されます)。

サブスクリプションでログイン済みの環境に ANTHROPIC_API_KEY が残っていると、承認後はAPIキーの方が優先されます。キーが無効化・期限切れの組織に属していると認証エラーになるので、unset ANTHROPIC_API_KEY でサブスクリプション側に戻し、/status でどちらの方式が有効になっているか確認します。

方式3: OAuthトークンでログインする

CIパイプラインやスクリプトなど、対話的なブラウザーログインが使えない環境向けの方式です。claude setup-token を実行すると、/login と同じブラウザー認可フローが開き、ブラウザーでアクセスを承認すると1年間有効なOAuthトークンがターミナルに表示されます。

claude setup-token

このコマンドはトークンをどこにも保存しないため、表示された値をコピーして CLAUDE_CODE_OAUTH_TOKEN 環境変数に設定します。

export CLAUDE_CODE_OAUTH_TOKEN=your-token

このトークンはPro・Max・Team・Enterpriseいずれかのサブスクリプションで認証する仕組みで、Consoleの従量課金アカウントでは発行できません。用途もモデルへのリクエストに限定されており、Remote Controlセッションの確立やclaude.aiコネクタの取得はできません(ローカルに設定したMCPサーバーは引き続き使えます)。GitHub Actionsなどのヘッドレス実行での組み込み方はClaude CodeをGitHub Actionsに組み込むで扱っています。

なお、起動を高速化するbare modeでは CLAUDE_CODE_OAUTH_TOKEN は読み込まれません。--bare を使うスクリプトでは、代わりに ANTHROPIC_API_KEYapiKeyHelper で認証します。

複数の認証情報がある場合の優先順位

環境変数・サブスクリプションログイン・クラウドプロバイダーの認証情報を同時に設定していると、Claude Codeは次の順で最初に見つかったものを使います。

優先順位認証情報主な用途
1認証情報Bedrock / Vertex / Foundryなどクラウドプロバイダーの環境変数主な用途組織のクラウド経由でのAPI利用
2認証情報ANTHROPIC_AUTH_TOKEN(Bearerヘッダー)主な用途LLMゲートウェイ・プロキシ経由の認証
3認証情報ANTHROPIC_API_KEY(X-Api-Keyヘッダー)主な用途Console従量課金での直接API利用
4認証情報apiKeyHelper スクリプトの出力主な用途短命トークンなど動的な認証情報
5認証情報CLAUDE_CODE_OAUTH_TOKEN主な用途CIパイプライン・スクリプト
6認証情報Anthropicプロファイル・Federation認証情報主な用途ant auth login やWorkload Identity Federation
7認証情報/login によるサブスクリプションOAuth主な用途個人利用の既定

サインイン済みのClaude apps gatewayセッションはこの一覧の外側にあり、存在する場合は他のどの認証情報よりも優先されます。意図しない認証情報が使われている場合は、この優先順位のどこかに古い環境変数が残っていないかを疑うのが早道です。

組織でログイン方式を制限する場合

管理者はmanaged settingsの forceLoginMethodforceLoginOrgUUID を使い、開発者が使えるログイン方式と所属組織を制限できます。forceLoginOrgUUID に組織IDを設定すると、別の組織のclaude.aiアカウントでログインした開発者にはエラーが表示され、起動時にセッションが終了します。Claude Consoleログインに対しては、この値はサインインページでの組織の事前選択にしか使われず、実際にどの組織のConsole認証情報かまでは検証しません。claude.aiサインインへ誘導したい場合は forceLoginMethod"claudeai" に設定します。

この制限は環境変数による認証にも及びます。ANTHROPIC_API_KEYANTHROPIC_AUTH_TOKENapiKeyHelper は、組織の所属を検証できない環境認証情報であるため、forceLoginOrgUUID が設定された環境では起動時にブロックされます(v2.1.146より前はログインフロー時のみが対象で、APIキー認証情報はブロックされていませんでした)。一方でAmazon Bedrockのようなクラウドプロバイダー経由のセッションは、クラウド側のIAMポリシーで認証するためこの制限の対象外です。開発者側でこの挙動に心当たりがない場合は、まず自分の会社が forceLoginOrgUUID を配布していないか、IT部門に確認するとよいでしょう。

よくあるつまずき

OAuth error: Invalid code と表示される。ログインコードの期限切れか、コピー時に一部が欠落したことが原因です。ブラウザーが開いたら素早くログインを完了させ、自動で開かない場合は c キーで完全なURLをコピーして手動で開きます。

サブスクリプションがあるのに This organization has been disabled と出る。古い ANTHROPIC_API_KEY がシェルに残っていて優先されている状態です。unset ANTHROPIC_API_KEY してから claude を再実行し、~/.zshrc など該当する行も削除します。

Login expired · Please run /loginOAuth token revoked の違いが分からないLogin expired はClaude Code自身が保存済みログインの更新に失敗し、認証情報をすでに削除した状態です。OAuth token revokedOAuth token has expired は、保存済みのログインをAPI側が拒否した状態を指します。どちらも対処は同じく /login のやり直しですが、繰り返し出る場合は /logout を挟んでから再ログインします。

よくある質問

claude setup-token で発行したトークンの有効期限はどれくらいですか

1年間です。CI環境などで長期間使い続ける場合は、有効期限が近づいたら再発行して環境変数を更新します。

CIにはAPIキーとOAuthトークンのどちらが向いていますか

Console従量課金で運用したいならAPIキー、既存のPro/Max/Team/Enterpriseサブスクリプションの契約枠でCIも動かしたいならOAuthトークンが選択肢になります。OAuthトークンはRemote Controlの確立やclaude.aiコネクタの取得ができない制限がある点は事前に確認してください。

/loginclaude setup-token は同時に使えますか

はい。CLAUDE_CODE_OAUTH_TOKEN が環境変数として設定されている状態で /login を実行すると、そのセッションだけ新しいログインに切り替わります。ただし環境変数自体を削除しない限り、次の新しいセッションでは再び CLAUDE_CODE_OAUTH_TOKEN の値が読み込まれます。

まとめ

Claude Codeのログインは、個人利用ならclaude.aiアカウントでの /login が既定、チームのAPI従量課金運用ならAPIキー、CIやヘッドレス環境なら claude setup-token で発行するOAuthトークンという3方式に整理できます。複数の認証情報を同時に設定している場合は、クラウドプロバイダー・ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEYapiKeyHelper・OAuthトークン・プロファイル・サブスクリプションOAuthの順で最初に見つかったものが使われる点を押さえておくと、意図しない認証情報が使われるトラブルを避けられます。導入そのものがまだの場合はClaude Code install完全ガイドから始めてください。

この記事を共有:XはてブLinkedIn