Claude Code Desktop SSOとデバイス管理ポリシーの設定
Team・EnterpriseプランのDesktopアプリは、管理コンソール・managed settings・MDM/グループポリシーの3手段とSSOで統制できます。適用範囲の違いが分かります。
TeamプランとEnterpriseプランでは、Desktopアプリの挙動を組織側から統制できます。手段は管理コンソール・managed settingsファイル・デバイス管理ポリシーの3つで、効く範囲が違います。ここにSSOの必須化が加わります。
設定で迷うのは手段の選び方より、「入れたはずの制限が届かない」場面です。Desktopのキー名はCLIと別物で、同じ名前の設定でもセッションの種類によって届く経路が変わります。
やりたいことから手段を選ぶ
| やりたいこと | 使う手段 |
|---|---|
| Desktopのcodeタブ自体を組織で止めたい | 使う手段管理コンソール、またはデバイス管理ポリシーのisClaudeCodeForDesktopEnabled |
| 権限モードやBrowserペインの動作を縛りたい | 使う手段managed settingsファイル |
| 端末上のローカルセッションだけ禁止したい | 使う手段managed settingsのdisableDesktopLocalSessions |
| 自動更新を止めたい・特定の組織でしかログインさせたくない | 使う手段デバイス管理ポリシー(disableAutoUpdates・forceLoginOrgUUID) |
| ログイン方法をIdP経由に限定したい | 使う手段SSOの必須化 |
管理コンソールの操作は組織の管理者権限、ファイル配布とMDM・グループポリシーはIT部門の権限が必要です。この統制はTeam・Enterprise向けです。
管理コンソールで組織全体の機能を切り替える
管理設定コンソール(claude.ai/admin-settings/claude-code)から、組織全体に対して次の4項目を切り替えられます。
| 設定項目 | できること |
|---|---|
| Code in the desktop | できることユーザーがDesktopアプリでClaude Codeを使えるかどうか |
| Code in the web | できることクラウドセッションの有効・無効 |
| Remote Control | できることRemote Controlの有効・無効 |
| Disable Bypass permissions mode | できることBypass permissionsモードの有効化を組織で禁止 |
TeamとEnterpriseのプランでは、Bypass permissionsモードの有効化にSettings画面のトグルがありません。組織のポリシーで制御する扱いです。より細かい権限ルールやツールの制限は、次のmanaged settingsで行います。
managed settingsでDesktopの細部を縛る
managed settingsはプロジェクト設定・ユーザー設定より優先され、Desktop上のClaude Codeセッションに適用されます。ファイルを配布するか、管理コンソールからリモート配布します。
| キー | 用途 |
|---|---|
permissions.disableBypassPermissionsMode | 用途"disable" でBypass permissionsモードを禁止 |
disableAutoMode | 用途"disable" でAutoモードをモード選択肢から除外 |
autoMode | 用途Autoモード分類器が何を信頼し何をブロックするかを組織単位でカスタマイズ |
browserExternalPageTools | 用途"disabled" でBrowserペイン上の外部ページを読む・操作するClaudeのツールを禁止。ユーザー自身の閲覧は可能 |
disableBrowserExternalNavigation | 用途true でBrowserペインの外部ナビゲーションを、ユーザーとClaudeの両方に対して禁止 |
disableMobileSimulatorTools | 用途true でiOS SimulatorペインへのClaudeのアクセスを禁止。ユーザー自身のタップは使える |
disableDesktopLocalSessions | 用途true で端末上のローカルセッションを禁止。SSHとクラウドは使える。Desktop v1.37937.0以降 |
sshConfigs | 用途環境ドロップダウンに出すSSH接続を事前設定。ユーザーは編集・削除できない |
sshHostAllowlist | 用途接続できるSSHホストを制限。空配列でSSHセッション自体を無効化 |
managedMcpServers | 用途サードパーティー版Desktopデプロイ限定で、MCPサーバー構成を全ユーザーへ配布 |
disableMobileSimulatorTools・disableBrowserExternalNavigation・disableDesktopLocalSessionsは、JSONの真偽値trueでなければ効きません。文字列の"true"を書くと無視されます。
disableDesktopLocalSessionsを有効にすると、環境ドロップダウンの「Local」は消えずにグレーアウトします。選ぼうとするとツールチップで組織が無効化したことが示され、SSH接続が設定されていれば、新規セッションは先頭の接続を既定にします。既存のローカルセッションを続けようとすると、この端末ではローカルセッションが使えない旨のメッセージが出ます。WindowsのWSLエントリも同じくグレーアウトしますが、その可用性は管理端末向けの設定で別に管理されます。
sshHostAllowlistはDesktopアプリだけが読むキーで、CLIやIDE拡張は読みません。BashツールのSSHコマンドも制限しないため、ネットワーク境界が必要なときはゼロトラスト側の制御と組み合わせます。availableModelsによるモデル制限は、Desktop上のClaude Codeセッションでもターミナルと同じように強制されます。permissions.disableBypassPermissionsModeとdisableAutoModeはユーザー・プロジェクト設定にも書けますが、managed settingsに置くとユーザー側で上書きできません。
セッションの種類で届く経路が変わる
managed settingsが届くセッション
ローカルセッション
端末に置いたmanaged settingsファイルが届きます。組織ログインまたは直接設定したAPIキーで認証していれば、管理コンソールからのリモート配布分も届きます。
クラウドセッション
サーバー管理設定(server-managed settings)を受け取ります。Anthropic管理のVM上で動くため、端末に置いたファイルは届きません。
SSHセッション
リモートホスト側のmanaged settingsファイルを読みます。
sshConfigs・sshHostAllowlist・disableDesktopLocalSessionsだけは、Desktopがローカル端末の設定から読みます。Cowork セッション
この端末上のCoworkセッションでは、Team・Enterpriseアカウントでサインインしていても管理コンソールの設定を取得しません。端末に配布したポリシーは読みます(Desktop構成で
requireCoworkFullVmSandboxを設定した場合を除く)。リモートのCoworkセッションは、管理コンソールの設定も端末のポリシーも受け取りません。
self-hosted-runnerに振り分けたクラウドセッションは、ランナーイメージ内のmanaged settingsファイルも読みます。既定では、サーバー管理設定がポリシーキーを1つも届けないときだけ、そのファイルを読みます。例外として、すべての管理ソースから読まれるキーもあります。
managedな設定をデバイスごとに動的に組み立てたいなら、policyHelper設定が使えます。
デバイス管理ポリシーでアプリそのものを管理する
IT部門はMDMやグループポリシーで、Desktopアプリ自体を管理できます。managed settingsが「セッションの中で何ができるか」を決めるのに対し、こちらは「アプリがどう動くか」を決める手前のレイヤーです。
Windowsは管理者権限のPowerShellで直接書き込んで試すこともできます。公式の例から3つを抜き出すと次の形です。
New-Item -Path "HKLM:\SOFTWARE\Policies\Claude" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Claude" -Name "disableAutoUpdates" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Claude" -Name "autoUpdaterEnforcementHours" -Value 72 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Claude" -Name "isClaudeCodeForDesktopEnabled" -Value 1 -Type DWord主なキーと既定値は次のとおりです。
| キー | 型・既定値 | 効果 |
|---|---|---|
isClaudeCodeForDesktopEnabled | 型・既定値Boolean・true | 効果Desktopでのcodeタブの有効化 |
disableAutoUpdates | 型・既定値Boolean・false | 効果自動更新を止める。MDMでバージョンを管理するときに設定 |
autoUpdaterEnforcementHours | 型・既定値1〜72の整数・72 | 効果準備済みの更新を適用するための強制再起動までの時間 |
forceLoginOrgUUID | 型・既定値文字列または配列・なし | 効果指定した組織に属するアカウントでしかログインさせない |
effortLevel | 型・既定値文字列・なし | 効果Claude Codeセッションの既定の推論量(low〜max)。セッション開始ごとに適用。Coworkには効かない。Desktop 1.25927.0以降 |
isLocalDevMcpEnabled | 型・既定値Boolean・true | 効果ローカルMCPサーバーの有効化 |
isDesktopExtensionEnabled | 型・既定値Boolean・true | 効果拡張機能の有効化 |
isDesktopExtensionDirectoryEnabled | 型・既定値Boolean・true | 効果拡張機能ディレクトリへのアクセス |
secureVmFeaturesEnabled | 型・既定値Boolean・true | 効果DesktopでのCoworkの有効化 |
allowedWorkspaceFolders | 型・既定値文字列の配列(JSON)・制限なし | 効果Coworkにマウントできるパス |
forceLoginOrgUUIDにUUID1つを渡すとログイン時にその組織が事前選択され、配列を渡すと一覧のどれかに属していれば通ります。事前選択はされません。どちらの形でも、一覧の組織に属さないアカウントのログインは失敗します。
同じ「ポリシー」でもCLI側は別の場所を読む
Desktopアプリ用とClaude Code用の配布先
Desktopアプリのポリシー
macOSはcom.anthropic.claudefordesktop、WindowsはSOFTWARE\Policies\Claude。下のキー表の設定を置きます。
Claude Codeのmanaged settings
macOSはcom.anthropic.claudecodeの管理プリファレンス、WindowsはHKLM\SOFTWARE\Policies\ClaudeCodeのSettings値(JSON)。ファイルならmacOSは/Library/Application Support/ClaudeCode/managed-settings.json、WindowsはC:\Program Files\ClaudeCode\managed-settings.jsonです。
名前が似ているので、置き場所の取り違えが起きやすい組み合わせです。権限ルールはClaude Code側、アプリの更新やログイン先はDesktop側に置きます。
ファイアウォールの許可
DesktopはAnthropicのCDNホストからアプリコードとユーザーコンテンツを読み込みます。許可するのはanthropic.com・claude.ai・claude.com・claude.appとそのサブドメイン、*.claudeusercontent.com、*.claudemcpcontent.comです。ワイルドカードを減らしたいときは、api.anthropic.comやassets.claude.aiなど個別ホストの一覧に切り替えられます。
IPアドレス許可リストを使っている組織は、bridge.claudeusercontent.comをclaude.aiと同じプロキシ経路に通します。通さないと、Claude in Chromeなどbridge経由の機能だけが止まり、アプリのほかの部分は動き続けます。
SSOを必須にするまでの手順
SSOはTeam・Enterprise・Claude Console組織のいずれでも設定できます。必要な役割は、Team・EnterpriseならOwnerまたはPrimary Owner、ConsoleならAdminです。
SSO必須化の流れ
- 1
ドメインを検証する
「Organization and access」(Consoleでは「Identity and access」)でドメインを追加し、DNSにTXTレコードを置いて検証します。TXTの値は、ステータスがPendingになった後は管理コンソールに再表示されません。失うとドメインを削除して再追加することになり、値も変わります。
- 2
IdPと接続して試験ログインする
SAMLでIdPを接続し、最後に表示されるTest Single Sign-onで成功を確認します。OIDCは「Claude Enterprise Administrator Guide」が手順の置き場です。
- 3
Require SSOをオンにする
ClaudeとConsoleで別々のトグルがあります。必須にすると全員が「Continue with SSO」でしかログインできません。必須にしなければ、メールログインとの選択制のままです。
- 4
IdP側の割り当てを先に確認する
IdPのAnthropicアプリに割り当てられていないユーザーは、必須化後にログインできなくなります。親組織に複数のClaude・Console組織をつなぐ場合は、組織ごとにIdPグループを分ける考え方が案内されています。
ドメイン検証だけでは、既存ユーザーのアクセスは変わりません。影響が出るのは、SSOを設定して明示的に必須にした時点からです。
SSOはサインイン方法の統制で、managed settingsはサインイン後のセッションの統制です。
アプリの配布とデータの流れ
macOSでは.dmgをMDM(Jamf・Kandjiなど)で配布し、WindowsではMSIXパッケージで配布します。Windowsにはサイレントインストールを含む企業向けデプロイのオプションがあります。
コードの処理先は、セッションの実行環境で決まります。ローカルとSSHのセッションはコードをローカルで処理し、クラウドセッションはAnthropic管理のインフラで処理します。自己ホスト環境へ振り分けていない限り、クラウドセッションは会話とコードのコンテキストをAnthropicのAPIへ送ります。ローカルとSSHの送信先は、デプロイで設定したモデルプロバイダー(既定はAnthropicのAPI)です。
統制が効かないときの確認先
サードパーティー版のDesktopデプロイにmanagedMcpServersが届かない
3P(third-party)デプロイは管理コンソールの設定を受け取りません。managed settingsファイル・MDM経由の配布・Claude apps gatewayのdesktopブロックのいずれかで届けます。gateway経由ではgatewayサーバー側のClaude Codeがv2.1.232以降であることも条件です。
Code tabのテレメトリの置き場所
Code tabのテレメトリを出したいときは、管理コンソールのOpenTelemetryフォームではなく、managed settingsのenvブロックにCLAUDE_CODE_ENABLE_TELEMETRYとOTEL_*変数を置きます。
まとめ
制限が効かないときは、キーを疑う前に、そのセッションがローカル・クラウド・SSH・Coworkのどれかを見ます。
managed settingsの使い方全般はClaude Code組織管理ガイドに、TeamとEnterpriseの契約形態の違いはClaude法人プランの契約ガイドにあります。