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にforceLoginOrgUUIDを書いても、組織の事前選択になるだけで制限にはなりません。
ただし、この2つのキーが同じ強さで効くわけではありません。ログイン経路ごとに、方式を強制するか、組織を検証するかが違います。以下は、症状や目的から入る順に並べました。
目的別:どの設定を配ればよいか
| やりたいこと | 書くキー | 補足 |
|---|---|---|
| claude.aiのログインを自社組織に限る | 書くキーforceLoginMethod: "claudeai" と forceLoginOrgUUID | 補足組織IDはclaude.aiの管理画面で確認する |
| 複数の自社組織を許可する | 書くキーforceLoginOrgUUIDを配列にする | 補足サインイン画面での事前選択は行われない |
| Console従量課金の組織を固定したい | 書くキー検証はできない | 補足UUIDは事前選択に使われるだけで、発行された認証情報の所属組織は検証されない |
| 自前ゲートウェイ経由に一本化する | 書くキーforceLoginMethod: "gateway" と forceLoginGatewayUrl | 補足組織の制限はゲートウェイ側のIDプロバイダーで行う |
組織のIDは2種類の管理画面から取得します。Claude for TeamsやEnterpriseの組織はclaude.ai/admin-settings/organizationに、Claude Console組織はplatform.claude.com/settings/organizationに表示されます。両者は別のIDです。
managed settingsにキーを書いて配る
書き方は次のとおりです。
{
"forceLoginMethod": "claudeai",
"forceLoginOrgUUID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}複数組織を許可するなら、配列にします。
{
"forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]
}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です。デバイス管理ツールで各端末へ配る運用が前提です。
配布から確認までの流れ
- 1
組織IDを控える
claude.aiの管理画面でUUIDを確認します。複数組織なら全部控えます。
- 2
managed-settings.jsonを端末へ配る
サーバー管理設定は認証済みのアカウントにしか届かないため、初回ログインを誘導できません。端末側の管理ソースで配ります。
- 3
配布した旨をチームへ周知する
別組織のアカウントではログインできなくなります。環境変数のAPIキーで動くCIも止まることがあるので、先に伝えます。
- 4
/statusで効いているか確かめる
Claude Codeの中で
/statusを開き、Setting sourcesの行にEnterprise managed settingsと配布元が出ているかを見ます。
どのログイン経路で何が効くか
Claude Codeへのログイン経路は複数あり、2つのキーの効き方は経路ごとに違います。
| ログイン経路 | forceLoginMethod | forceLoginOrgUUID |
|---|---|---|
ターミナルの対話ログイン(/login・初回オンボーディング) | forceLoginMethod方式を事前選択するだけで強制しない | forceLoginOrgUUIDclaude.aiログインの所属組織を検証する |
| VS Code拡張・Agent SDK | forceLoginMethod強制する | forceLoginOrgUUIDclaude.aiログインの所属組織を検証する |
claude setup-token・/install-github-app | forceLoginMethod強制する | forceLoginOrgUUID検証しない。別組織でもトークンを発行できる |
| Claude Consoleログイン | forceLoginMethod方式に従う | forceLoginOrgUUID事前選択のみ |
| クラウドゲートウェイのサインイン | forceLoginMethod"gateway"で選ぶ対象で、制限ではない | forceLoginOrgUUID適用されない。制限はIDプロバイダー側 |
forceLoginMethodがターミナル以外の全経路に効くのはv2.1.212以降です。それより前はターミナルのログインだけがこのキーを見ていました。v2.1.212以降でも、ターミナルの対話ログイン画面は事前選択止まりなので、"claudeai"を指定していてもそこからConsoleログインを完了できます。
キーを配った後、続くセッションと止まるセッション
そのまま続くもの
配布前にConsoleアカウントでログイン済みの開発者は、保存済みのキーで作業を続けられます。
止まるもの
ゲートウェイのサインインを必須にした端末では、保存済みのキーも使えなくなります。ほかの止まり方は次の節で扱います。
forceLoginOrgUUIDを設定した環境では、もうひとつ副作用があります。ConsoleのAPIキー不要のサインイン(v2.1.242以降)が提供されなくなり、代わりにAPIキーが作られます。claude.aiのサインインへ誘導したければ、forceLoginMethodを"claudeai"にします。
環境変数やクラウドプロバイダーのセッションはどうなるか
ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKEN・apiKeyHelperで認証するセッションは、forceLoginOrgUUIDかforceLoginMethodを配った環境では起動時にブロックされます。前者は環境変数の認証情報の所属組織を検証できないため、後者は必須のサインインの代わりになってしまうためです。CIでAPIキー認証を使っているチームは、キーを配った瞬間にパイプラインが止まりかねません。挙動の詳細は環境変数認証とAPIキーの扱いにあります。
Amazon Bedrockなどクラウドプロバイダー経由のセッションは、原則としてブロックされません。ただし、ANTHROPIC_API_KEYなどの認証情報や、以前のConsoleログインで保存されたAPIキーがマシンに残っている間はブロックされます。そのキーを消せばセッションは始まります。クラウド側の認証は、クラウドプロバイダーのアクセスポリシーが管轄します。
Anthropicプロファイルやfederation認証情報も、同じ条件でブロックされません。forceLoginOrgUUIDとforceLoginMethodは、プロファイルの所属組織を確認しません。
CI向けにclaude setup-tokenで長期トークンを発行する運用は、forceLoginOrgUUIDの対象外です。制限をかけた組織とは別の組織でもトークンを発行できてしまうため、発行元のアカウントは運用ルールで別途縛る必要があります。発行の手順はCI向けに長期トークンを発行する、ワークフローへの組み込みはGitHub Actionsへの組み込み方にあります。
forceLoginMethodの値とgatewayの落とし穴
forceLoginMethodの値は3つです。
| 値 | 効果 |
|---|---|
"claudeai" | 効果claude.aiアカウントでのログインだけを許可する |
"console" | 効果Claude Consoleアカウントでのログインだけを許可する |
"gateway" | 効果自前のクラウドゲートウェイへ誘導し、Anthropicへの直接サインインを外す |
"gateway"は、書く場所が限られます。managed-settings.json・macOSのplist・WindowsのHKLMレジストリ・ポリシーヘルパーのいずれかからしか読まれません。ユーザー設定・プロジェクト設定・サーバー管理設定に書いても、未設定として扱われます。
forceLoginGatewayUrlも同じ制約を受けます。これが無いとCloud gateway画面はURLを表示せず、IT管理者への問い合わせを促すだけになります。設定すると、URLが表示されてEnterキーで接続できます。forceLoginMethodを空にしてforceLoginGatewayUrlだけ設定しても、その端末はゲートウェイ専用になります(CLAUDE_CODE_USE_BEDROCKなどでクラウドプロバイダーを選んだセッションを除く)。ゲートウェイ経由でサインインさせるなら、2つのキーを両方配ります。
制限後、開発者の画面はどう変わるか
許可されていない組織のclaude.aiアカウントでログインしようとすると、エラーが表示されます。起動時に所属組織が許可リストに無い認証情報だと、セッションは終了します。開発者は、いったんログアウトして、自社の組織のアカウントで/loginをやり直します。
まず自分のアカウントがどの組織に紐づいているかを、claude.aiの画面で確認してもらうのが早道です。配布後は、許可されていない組織のテストアカウントで一度ログインを試し、意図どおりブロックされるかを確かめておくと、展開後の問い合わせを減らせます。許可リストから組織を外すと、その組織のアカウントは次回起動時にエラーで弾かれます。
組織のサブスクリプション自体が無効化された場合の挙動は別物です。組織のサブスクリプションが無効化されたときのアクセスで扱っています。
設定しても効かない、または全員が入れなくなったとき
症状ごとに、原因の候補を並べます。
| 症状 | 確認すること |
|---|---|
| 制限が効かない | 確認することclaude --versionでv2.1.212以降か。ターミナルの/loginは方式を強制しない仕様でもある |
| 全員がログインできない | 確認することforceLoginOrgUUIDが空配列か、パースできない値になっていないか |
| gatewayが効かない | 確認すること"gateway"を、端末上の管理ソース以外に書いていないか |
| どの設定が読まれているか分からない | 確認すること/statusのSetting sourcesと、Skipped sources(v2.1.242以降) |
管理ソースでforceLoginOrgUUIDを空配列にしたり、パースできない値を渡したりすると、すべてのログインがブロックされ、設定ミスのメッセージが出ます。このキーは、不正な値のまま許可組織なしとして扱われる、フェイルクローズ型です。
Setting sourcesの行が出ないときは、managed settingsのファイルが置き場所を間違えているか、ポリシーキーを含んでいません。行が別のソースを指しているときは、上位のソースが優先され、Skipped sourcesにスキップされたソースが並びます。
手元のClaude Code(v2.1.285)で確認できること
ログインに関わるコマンドの入口だけ、手元で確かめました。ログイン操作そのものは行っていません。
$ claude --version
2.1.285 (Claude Code)
$ claude auth login --help
Usage: claude auth login [options]
Sign in to your Anthropic account
Options:
--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
-h, --help Display help for command
--sso Force SSO login flowclaude authにはlogin・logout・statusがあります。--claudeaiと--consoleは方式を選ぶフラグで、forceLoginMethodと同じ2択に対応します。claude setup-tokenのヘルプは「長期認証トークンを設定する(Claudeサブスクリプションが必要)」とだけ示し、組織を指定するオプションはありません。組織の絞り込みが、コマンド側ではなく管理設定側の仕事だと分かります。
クリーンな環境では、macOSの/Library/Application Support/ClaudeCodeディレクトリも存在しませんでした。managed-settings.jsonはClaude Codeが生成するものではなく、管理者が置くものです。
まとめ
組織限定ログインは、2つのキーをmanaged settingsへ配れば入り口が閉まりますが、Consoleログインとclaude setup-tokenは組織を検証しません。この2つを許すかどうかは、配布の前に決めておく判断になります。管理者設定全体の設計はClaude Code組織管理ガイド、ログイン方式そのものの比較はClaude Codeログイン方法3種の使い分けにあります。