Claude Codeで組織がAPIキー認証を無効化したときの対処
「Your organization has disabled API key authentication」の意味と、Console管理者・利用者それぞれの対処をまとめます。
Your organization has disabled API key authenticationは、組織の設定を理由にサーバーがAPIキーを拒否したエラーです。キー自体は壊れていません。Claude Codeを使うClaude Console組織の管理者が、APIキーでの認証をオフにした状態を示します。v2.1.169以降のClaude Codeでこの文面が表示されます。
似た文面のエラーが3つある — まず見分ける
「組織」「無効化」という語を含むエラーは、原因も対処も別のものが3つあります。表示された文面を照合してください。
| メッセージ | 意味 | 主な対処 |
|---|---|---|
Your ANTHROPIC_API_KEY belongs to a disabled organization(API側はThis organization has been disabled) | 意味停止したConsole組織の古いANTHROPIC_API_KEYが、保存済みのサブスクリプションログインより優先されている | 主な対処キーをunsetして/login、または有効な組織のキーに替える |
Your organization has disabled API key authentication | 意味組織は生きているが、管理者がAPIキー認証だけを止めた | 主な対処/loginでclaude.aiアカウントに切り替える(本記事) |
Your organization has disabled Claude subscription access | 意味claude.ai側の組織がサブスクリプションでのログインだけを止めた | 主な対処Anthropic APIキーに切り替える |
サブスクリプション側を止められた場合の手順は、claude.aiのサブスクリプションアクセスが止められた場合の対処にあります。
末尾のヒントは5種類ある
このエラーは·の後ろに回復のヒントが続き、キーの出どころで文面が変わります。
Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead
Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Sign in again with your claude.ai account5つ目は、Claude Desktopアプリが動かすセッション(Codeタブ、Cowork)で出る形です。この場合はアプリ側でサインインし直します。
ANTHROPIC_API_KEYが名指しされていれば、シェルの環境変数か.envファイルにキーが残っています。現在のシェルでunset ANTHROPIC_API_KEYを実行し、シェルの起動ファイル(.zshrcや.bashrc)からも該当行を消して、claudeを起動し直します。apiKeyHelperが名指しなら、settings.jsonのapiKeyHelperを削除します。
どちらも名指しされない場合は、環境変数とapiKeyHelper以外の経路からキーが送られている可能性があります。以前のConsoleログインで保存されたキーが一例です。いずれにしても/loginでclaude.aiアカウントにサインインします。
環境変数がログインに勝つ — 優先順位で見る
/loginをやり直しても直らない原因の大半は、認証情報の優先順位にあります。Claude Codeは複数の認証情報が揃っているとき、次の順で1つを選びます。
認証情報の選ばれ方(上が優先)
- 1
クラウドプロバイダーの認証情報
CLAUDE_CODE_USE_BEDROCK・CLAUDE_CODE_USE_VERTEX・CLAUDE_CODE_USE_FOUNDRYのいずれかを設定したとき。 - 2
ANTHROPIC_AUTH_TOKEN
Authorization: Bearerヘッダーで送られます。LLMゲートウェイ経由の運用向けです。 - 3
ANTHROPIC_API_KEY
X-Api-Keyヘッダーで送られます。対話モードでは初回に使うかどうかを一度だけ尋ねられ、答えは記憶されます。 - 4
apiKeyHelper
スクリプトの出力を資格情報にします。
- 5
CLAUDE_CODE_OAUTH_TOKEN
claude setup-tokenで作った長期トークンです。 - 6
Anthropicプロファイルとフェデレーション
ant auth loginが書いたプロファイルは、ANTHROPIC_PROFILEで名指ししたときだけこの順位に入ります。名指ししなければ/loginより下です。 - 7
/loginのサブスクリプション認証
Pro・Max・Team・Enterpriseの既定です。ここまでの認証情報が無いときに使われます。
このエラーに関係するのは2番目から4番目です。いずれかが残っていると、保存済みの/loginには順番が回りません。キーを消さずに/loginだけやり直しても、次の起動でまた同じキーが送られます。
ログイン済みのClaude appsゲートウェイのセッションはこの一覧の外にあり、クラウドプロバイダーより優先されます。
見落としやすいのが5番目です。/loginの実行中は現在のセッションだけが新しいログインに切り替わりますが、CLAUDE_CODE_OAUTH_TOKENは新しいセッションのたびに読み直されます。シェルの起動ファイルやsettings.jsonのenvブロックから消すまで、古いトークンが居座ります。
優先順位の確認には/statusを使います。Statusタブにはバージョン、モデル、アカウント、接続状態が出ます。unsetと/loginをセットで行い、/statusで使われている認証がサブスクリプションに変わったことを見てから作業に戻ってください。
症状から切り分ける — キーの出どころを順に潰す
メッセージのヒントが/loginとしか言わない、または直したのにまた出る場合は、キーの供給元を1つずつ確かめます。値を画面に出さないよう、変数名だけを見る点がコツです。
env | cut -d= -f1 | grep -E '^(ANTHROPIC_(API_KEY|AUTH_TOKEN)|CLAUDE_CODE_OAUTH_TOKEN)$'
grep -n -E 'ANTHROPIC_API_KEY|CLAUDE_CODE_OAUTH_TOKEN' ~/.zshrc ~/.bashrc ~/.zprofile ~/.profile 2>/dev/null
grep -n -E 'apiKeyHelper|ANTHROPIC_API_KEY' ~/.claude/settings.json .claude/settings.json .claude/settings.local.json 2>/dev/null1行目は、現在のシェルに残る変数の名前を出します。2行目は起動ファイルの書き込み、3行目はapiKeyHelperやenvブロックの記述を探します。プロジェクトの.envは、読み込む仕組みによって別途確認が要ります。
ログインをコマンドで入り直すなら、claude auth loginがあります。--help(v2.1.287)にはこう出ます。
--claudeai Use Claude subscription (default)
--console Use Anthropic Console (API usage billing) instead of Claude
subscription
--email <email> Pre-populate email address on the login page
--sso Force SSO login flowこの組織はAPIキー認証を止めているので、--consoleではなく既定の--claudeaiで入ります。現在の認証状態はclaude auth statusで見られ、--textを付けると人間向けの表示になります。
自動化・CIでは何が起きるか
apiKeyHelper・ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKENが効くのは、CLI本体と、CLIをラップする面です。VS Code拡張、Agent SDK、GitHub Actionsが該当します。Claude Desktopとクラウドセッションはこれらを読まずOAuthで動きます。同じ組織でも、面によって影響の出方が違います。サードパーティの推論構成で動くDesktopセッションだけは、その構成の資格情報で認証します。
非対話モード(-p)では、ANTHROPIC_API_KEYがあれば確認なしで常にそのキーが使われます。組織がAPIキー認証を止めると、CIのスクリプトで先にこのエラーが出ることがあります。認証方式ごとの制約はClaudeのログイン方法3種の使い分けにあります。
CIの代替 — setup-tokenで長期トークンを発行する
ブラウザログインが使えないパイプラインでは、claude setup-tokenで1年有効のOAuthトークンを作れます。/loginと同じブラウザ認可を行うと、トークンがターミナルに表示されます。トークンはどこにも保存されないので、コピーしてCLAUDE_CODE_OAUTH_TOKENとしてCIのシークレットに登録します。Pro・Max・Team・Enterpriseのいずれかが必要です。
v2.1.287で--helpを見ると、このコマンドにオプションは-hしかありません。
claude setup-token --helpUsage: claude setup-token [options]
Set up a long-lived authentication token (requires Claude subscription)
Options:
-h, --help Display help for commandこのトークンはサブスクリプション経由の認証情報なので、APIキー認証だけを止めた組織でも影響を受けません。代わりにできることが絞られます。
setup-tokenで足りるCIと足りないCI
足りる
ローカル設定のMCPサーバーを使いながら、モデルへリクエストするだけの処理です。CLAUDE_CODE_OAUTH_TOKENで動きます。
足りない
Remote Controlセッションの確立、claude.ai connectorsの取得、--bareでの実行。bare modeはこの変数を読みません。
--bareの--helpには、認証についてこう書かれています。
Anthropic auth is strictly ANTHROPIC_API_KEY or apiKeyHelper via --settings
(OAuth and keychain are never read).OAuthもキーチェーンも読まないという意味です。Anthropic APIにANTHROPIC_API_KEYかapiKeyHelperで接続する--bareのパイプラインは、組織がAPIキー認証を止めた時点で動かなくなります。Amazon Bedrock・Google CloudのAgent Platform・Microsoft Foundry経由なら、各プロバイダーの資格情報を従来どおり読むので影響を受けません。管理者に再有効化を頼むか、--bareを外してCLAUDE_CODE_OAUTH_TOKENに移す、のどちらかです。
管理者が確認すること
覚えのない無効化なら、設定の変更元をConsoleの組織設定で確かめます。ログイン方法の配布経路はmanaged settingsによる組織管理ガイドにまとめています。
ログインの方向づけには、managed settingsのforceLoginMethodを使えます。"claudeai"にすると、claude.aiでのサインインへ誘導できます。ゲートウェイ経由の運用には"gateway"も指定できます。forceLoginOrgUUIDは特定の組織のclaude.aiログインだけを許可する設定です。
注意点が2つあります。forceLoginOrgUUIDをどこかの設定ファイルに書くと、キーなしのConsoleサインインが案内されなくなります。この仕組みはConsoleアカウントのままキーを作らずにサインインする方法にあります。もう1つは、forceLoginOrgUUIDやforceLoginMethodが有効な端末の挙動です。ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKEN・apiKeyHelperは起動時にブロックされます。forceLoginOrgUUIDでは、環境変数の資格情報の所属組織を確認できないためです。forceLoginMethodでは、その資格情報が必須のサインインの代わりになってしまいます。
forceLoginMethodを"claudeai"にしても、適用範囲はバージョンで変わります。v2.1.212以降は、対話ログイン画面を除くすべてのログイン経路に適用されます。対話ログイン画面(/loginや初回オンボーディング)ではclaudeaiかconsoleが事前選択されるだけで、強制はされません。このため"claudeai"でも、手元でConsoleログインを完了できてしまいます。
forceLoginOrgUUIDは、claude setup-tokenと/install-github-appには効きません。この2つはforceLoginMethodしか強制しないので、別の組織のトークンも作れます。
自動化でAPIキー認証そのものが必要なメンバーがいるなら、Consoleでの再有効化が必要です。端末側の設定では直りません。
サブスクリプション側も止まっているとき
対になるエラーに、Your organization has disabled Claude subscription access for Claude Codeがあります。claude.ai側の組織設定で、サブスクリプションログインが止められた状態です。サーバー側の設定なので、ローカルの設定・環境変数・CLIフラグでは上書きできません。同じアカウントで/loginし直しても、同じエラーが返ります。
Agent SDKと-pの非対話モードでは、このエラーがoauth_org_not_allowedというエラーコードで返ります。両方が有効な組織では、どちらの認証方式でもClaude Codeにサインインできません。
ログイン情報の保存先
/loginで得た認証情報の置き場所は、OSで違います。
| OS | 保存先 |
|---|---|
| macOS | 保存先暗号化されたKeychain。書き込みが拒否されたとき(SSHセッションでロックされている場合など)は~/.claude/.credentials.json(権限0600)。Consoleログインでキーを作る場合は、Keychainが書き込み可能になるまで失敗する |
| Linux | 保存先~/.claude/.credentials.json(権限0600) |
| Windows | 保存先%USERPROFILE%\.claude\.credentials.json |
CLAUDE_CONFIG_DIRを設定していると、.credentials.jsonもKeychainのエントリもそのディレクトリに紐づきます。設定が違うセッションは別の資格情報を読みます。
まとめ
末尾のヒントがキーの出どころを指しているので、消す場所はそこから決まります。CIは--bareを使っているかどうかで、setup-tokenへ移せるかが分かれます。