Claude Media
Claude Codeで組織限定ログインを強制する方法

Claude Codeで組織限定ログインを強制する方法

managed settingsのforceLoginMethodとforceLoginOrgUUIDで、claude.aiログインを自社組織のアカウントだけに絞れます。設定場所・対象外になる経路・CIトークンとの関係まで扱います。

Claude Codeで組織限定ログインを強制するとは何か

組織限定ログインとは、開発者がClaude Codeにclaude.aiアカウントでログインするとき、自社が管理する組織に属するアカウントしか使えないようにする制限です。個人のclaude.aiアカウントで誤ってログインしてしまう事故や、社外のアカウントで社内コードに触れる状態を防ぎます。設定するキーは2つだけです。forceLoginMethodでログイン方式そのものを絞り、forceLoginOrgUUIDで許可する組織のUUIDを指定します。どちらも管理者専用の設定ファイル、managed settingsに書きます。ユーザーが自分のsettings.jsonを書き換えても上書きできない、管理側だけが触れる層です。

組織限定ログインを検討するきっかけは主に3つです。個人のclaude.aiアカウントで会社のリポジトリを扱わせない情報漏えい対策、退職者や異動者のアカウントを組織単位で締め出すオフボーディング、そしてConsole従量課金の請求先を特定の組織に固定するコスト管理です。どれも「開発者が使う認証方式そのもの」ではなく「使わせる組織」を絞る話なので、権限やモデルの許可リストとは別の管理者設定が必要になります。

managed settingsにforceLoginMethodとforceLoginOrgUUIDを書く

組織のIDは2種類の管理画面から取得します。Claude for TeamsやEnterpriseのclaude.ai組織なら、claude.ai/admin-settings/organizationの管理画面に表示されるUUIDです。Claude Consoleの従量課金組織なら、platform.claude.com/settings/organizationに表示されるIDを使います。両者は別物なので、どちらの認証方式を制限したいかによって参照先の画面を変えます。

書き方はシンプルです。

{
  "forceLoginMethod": "claudeai",
  "forceLoginOrgUUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

forceLoginOrgUUIDは配列にして複数組織を許可することもできます。

{
  "forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]
}

配列にするとサインイン画面での組織の事前選択は行われません。単一のUUIDを指定した場合だけ、ログイン画面でその組織があらかじめ選ばれます。またforceLoginOrgUUIDが制限として実際に効くのはmanaged source(端末側の管理ソース)に書いた場合だけで、それ以外の設定ファイルに単一UUIDを書いても事前選択にしかなりません。

このファイルは、macOSなら/Library/Application Support/ClaudeCode/managed-settings.json、LinuxとWSLなら/etc/claude-code/managed-settings.json、WindowsならC:\Program Files\ClaudeCode\managed-settings.jsonに置きます。デバイス管理ツールで各端末へ配布する運用が前提です。

forceLoginMethodの3つの値をどう使い分けるか

forceLoginMethodは文字列の設定で、値は3つあります。

効果
"claudeai"効果claude.aiアカウントでのログインだけを許可する
"console"効果Claude Consoleアカウントでのログインだけを許可する
"gateway"効果自前のクラウドゲートウェイへ誘導し、Anthropicへの直接サインイン画面を外す

"gateway"を選ぶ場合はforceLoginGatewayUrlも一緒に設定します。このキーが無いと、ログイン画面にゲートウェイのURL欄が表示されず、開発者には「IT管理者に問い合わせてください」という案内だけが出ます。forceLoginGatewayUrlにゲートウェイのURLを設定すると、その値が画面に表示され、Enterキーを押すだけで接続できるようになります。forceLoginMethodを空にしたままforceLoginGatewayUrlだけ設定しても、Cloud gateway画面自体は開きます。

どのログイン経路が制限の対象になるか

Claude Codeへのログイン経路は複数あり、forceLoginOrgUUIDが効くかどうかは経路によって違います。

ログイン経路制限キーの効き方
ターミナルの対話ログイン画面(/login・初回オンボーディング)制限キーの効き方方式(claudeai/console)を事前選択するだけで、forceLoginMethodを強制しない。所属組織が違ってもConsoleログインを完了できてしまう
VS Code拡張・Agent SDK制限キーの効き方claude.aiアカウントの所属組織を検証する
Claude Consoleログイン制限キーの効き方サインイン画面での組織の事前選択にのみ使う。所属組織の検証はしない
claude setup-token/install-github-app制限キーの効き方forceLoginMethodのみ適用。所属組織が違ってもトークンを発行できる
クラウドゲートウェイ経由のサインイン制限キーの効き方適用されない。制限はIDプロバイダー側で行う

Claude Console経由のログインでは、forceLoginOrgUUIDを単一のConsole組織IDに設定してもサインインページでの事前選択にしか使われません。発行された認証情報が実際にその組織に属しているかまでは検証しないので注意が必要です。すでにConsoleアカウントでログイン済みの開発者は、このキーを配布した後もそのままログイン状態を保ちます。

forceLoginMethodはv2.1.212から、ターミナルの対話ログイン画面を除く全経路に適用されるようになりました。それより前のバージョンでは、ターミナルの/loginだけがこのキーを見ており、VS Code拡張やAgent SDK、claude setup-tokenは制限の外にありました。ただしv2.1.212以降でも、ターミナルの対話ログイン画面自体は方式を事前選択するだけで強制はしないため、forceLoginMethod"claudeai"に設定していても、そこからConsoleログインを完了させることは可能です。

環境変数で認証するセッションはどう扱われるか

ANTHROPIC_API_KEYANTHROPIC_AUTH_TOKENapiKeyHelperで認証するセッションは、forceLoginOrgUUIDを配布した環境では起動時にブロックされます。環境変数由来の認証情報がどの組織に属しているかを、Claude Code側で検証できないためです。CI環境でAPIキー認証を使っているチームは、このキーを配布した瞬間に既存のパイプラインが止まりかねません。設定前の周知が要ります。挙動の詳細は環境変数認証とAPIキーの扱いにまとめています。

一方、Amazon Bedrockなどクラウドプロバイダー経由のセッションはブロックされません。認証がクラウドプロバイダー側で完結するため、組織の制限はクラウド側のIAMポリシーで別途かける設計です。Anthropicプロファイルやfederation認証情報も同様にブロック対象外で、これらのキーはプロファイルがどの組織に属しているかを確認しません。

CI・自動化向けにclaude setup-tokenで長期トークンを発行する運用は、前の表の通りforceLoginOrgUUIDの対象外です。発行の手順と運用上の注意点はCI向けに長期トークンを発行するにまとめています。

制限した後、開発者側の画面はどう変わるか

許可されていない組織のclaude.aiアカウントでログインしようとすると、Claude Codeは起動時にエラーを表示してセッションを終了します。開発者はいったんログアウトし、自社の組織に属するアカウントで/loginやり直す必要があります。ローカルでうまくいかない場合、まず自分のアカウントがどの組織に紐づいているかをclaude.aiの画面で確認してもらうのが早道です。

IT部門側がforceLoginOrgUUIDを配布したこと自体をチームに伝えていないと、原因不明のログイン失敗として問い合わせが増えます。展開前に、対象チームへ「別組織のclaude.aiアカウントではログインできなくなる」ことを周知しておくと事故を減らせます。配布後は、許可されていない組織のテストアカウントで一度ログインを試し、意図通りブロックされるかを確認しておくと安心です。

設定しても効かないときに確認すること

バージョンを確認します。v2.1.212より前ではforceLoginMethodがターミナル以外の経路に効きません。claude --versionで確かめ、古ければ更新します。

配列を空にしないことも重要です。管理ソースでforceLoginOrgUUIDを空配列にすると、設定ミスとしてすべてのログインがブロックされます。パースできない値を渡した場合も同じ挙動になります。

forceLoginMethod"gateway"にする場合は、書く場所にも注意します。この値は端末上の管理ソース、つまりmanaged-settings.json・macOSのplist・WindowsのHKLMレジストリ・ポリシーヘルパーのいずれかからしか読まれません。ユーザー設定やプロジェクト設定、サーバー管理設定に書いても無視されます。

最後に、起動後/statusを実行して「Setting sources」の行を確認します。どの経路の設定が実際に効いているかがここに表示されるので、意図したmanaged-settings.jsonが読まれているか、それとも別の管理ソースに上書きされているかをここで切り分けられます。設定を変えたのに挙動が変わらない場合は、まずこの行を見てから個々の値を疑うほうが早く原因にたどり着けます。

まとめ

組織限定ログインはforceLoginMethodforceLoginOrgUUIDの2つをmanaged settingsに書くだけで設定できますが、経路ごとに効き方が違う点が実務では一番の落とし穴です。forceLoginOrgUUIDはVS Code拡張やAgent SDKなど主要な経路で所属組織を検証しますが、ターミナルの対話ログイン画面は事前選択にとどまり、forceLoginMethodを強制しません。claude setup-tokenforceLoginMethodしか見ず、所属組織までは検証しません。CIトークンの発行自体は制限の外側にあります。管理者設定全体の設計はClaude Code組織管理ガイド、ログイン方式そのものの比較はClaude Codeログイン方法3種の使い分けを参照してください。設定を配ってから「効いているか」を確認するまでを一連の作業として扱うと、展開後の問い合わせを最小限に抑えられます。

よくある質問

許可する組織を後から増減できますか

できます。managed-settings.jsonforceLoginOrgUUID配列を書き換えて再配布するだけです。組織を配列から外すと、その組織のclaude.aiアカウントはClaude Codeの次回起動時にエラーで弾かれます。すでにConsoleアカウントでログイン済みの開発者への影響は別枠で、こちらはすぐには切れません。

CI用トークンも組織チェックされますか

されません。claude setup-token/install-github-appforceLoginMethodだけを適用し、所属組織までは検証しません。制限をかけている組織とは別の組織でもトークンを発行できてしまうため、CI用の認証情報は発行元のアカウントを運用ルールで別途縛る必要があります。GitHub Actionsへの組み込み方も参照してください。

クラウドプロバイダー経由のセッションも制限できますか

forceLoginOrgUUID自体は効きません。Amazon Bedrockなどクラウドプロバイダー経由のセッションは、認証がクラウド側で完結するため、組織の制限はクラウドのIAMポリシーで別途かける設計になっています。

すでにログイン済みの開発者はどうなりますか

Claude Consoleアカウントでログイン済みの開発者は、forceLoginOrgUUIDを配布した後もそのままログイン状態を保ちます。新規ログインだけが制限の対象になるため、既存ユーザーへの周知や再ログインの依頼は別途必要です。組織のサブスクリプション自体が無効化された場合の挙動は別物で、組織のサブスクリプションが無効化されたときのアクセスで扱っています。

gatewayを使う場合、forceLoginGatewayUrlも必須ですか

forceLoginMethod"gateway"にしただけでも画面は開きますが、forceLoginGatewayUrlが無いと接続先URLが表示されず、開発者は先へ進めません。ゲートウェイ経由でサインインさせたいなら、2つのキーは両方セットで、しかも端末上の管理ソースに配布します。

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