> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/keeperpam/jp/endpoint-privilege-manager/deployment/deploy-with-macos/macos-system-extension-configuration.md).

# システム拡張の構成

<figure><img src="/files/3y0wC12TD773YA0mAg0J" alt=""><figcaption></figcaption></figure>

macOSシステム拡張 (`KeeperSystemExtension`) は、macOS上の特権昇格リクエスト、コマンドライン呼び出し、パッケージインストールをKEPMが可視化するためのユーザースペースコンポーネントです。AppleのEndpoint Security Frameworkを通じて認可要求がインターセプトされます。これはmacOSがUACに相当する昇格プロンプトに使うのと同じメカニズムです。許可または拒否の前に、リクエストはKEPMポリシーエンジンにルーティングされます。

本ページでは、システム拡張の役割、MDM管理者が許可リストに登録する際に必要な識別子とエンタイトルメント、構成方法、一般的な問題のトラブルシューティングについて取り扱います。

***

## 識別子とコード署名 <a href="#identifiers-and-code-signing" id="identifiers-and-code-signing"></a>

KEPMのmacOSコンポーネントはKeeper Securityが署名して配布しています。以下の値は、MDM管理の許可リスト、PPPCプロファイル、またはシステム拡張ポリシーで必要です。

<table><thead><tr><th width="267.33331298828125">プロパティ</th><th>値</th></tr></thead><tbody><tr><td>アプリ名</td><td><code>Keeper Endpoint Privilege Manager.app</code></td></tr><tr><td>アプリバンドルID</td><td><code>com.keeper.endpoint-privilege-manager</code></td></tr><tr><td>アプリのインストールパス</td><td><code>/Applications/Keeper/Keeper Endpoint Privilege Manager.app</code></td></tr><tr><td>システム拡張名</td><td><code>com.keeper.keeper-privilege-manager.monitor.systemextension</code></td></tr><tr><td>システム拡張バンドルID</td><td><code>com.keeper.keeper-privilege-manager.monitor</code></td></tr><tr><td>システム拡張バイナリパス</td><td><code>/Applications/Keeper/Keeper Endpoint Privilege Manager.app/Contents/Library/SystemExtensions/com.keeper.keeper-privilege-manager.monitor.systemextension/Contents/MacOS/com.keeper.keeper-privilege-manager.monitor</code></td></tr><tr><td>システム拡張タイプ</td><td><code>EndpointSecurityExtension</code></td></tr><tr><td>通知ヘルパーバンドルID</td><td><code>com.keeper.keepernotify</code></td></tr><tr><td>Apple Developer Team ID</td><td><code>234QNB7GCA</code> (インストール済みのMacで <code>codesign -dv "/Applications/Keeper/Keeper Endpoint Privilege Manager.app"</code> により検証可能)</td></tr><tr><td>署名機関</td><td><code>Developer ID Application: Callpod Inc. (234QNB7GCA)</code></td></tr><tr><td>ランタイム識別子 (<code>systemextensionsctl list</code> 内)</td><td><code>com.keeper.keeper-privilege-manager.monitor</code></td></tr><tr><td>コード要件 (拡張機能)</td><td><code>anchor apple generic and identifier "com.keeper.keeper-privilege-manager.monitor" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "234QNB7GCA")</code></td></tr><tr><td>コード要件 (アプリ)</td><td><code>anchor apple generic and identifier "com.keeper.endpoint-privilege-manager" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "234QNB7GCA")</code></td></tr><tr><td>コード要件 (通知ヘルパー)</td><td><code>anchor apple generic and identifier "com.keeper.keepernotify" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "234QNB7GCA")</code></td></tr></tbody></table>

{% hint style="info" %}
Keeper SecurityはCallpod Inc.の完全子会社です。AppleではDeveloper ID証明書を親法人に発行する必要があるため、署名機関の文字列は `Keeper Security, Inc.` ではなく `Callpod Inc.` と表示されます。これは想定どおりの動作であり、この署名機関を持つプロファイルを不審と判断する必要はありません。

Keeperの各macOSコンポーネント (アプリ、拡張機能、通知ヘルパー、プラグインなど) は `com.keeper.*` 名前空間配下の個別バンドルIDで署名され、許可リスト登録、監査、制御をそれぞれ独立して行えます。
{% endhint %}

## 動作の仕組み <a href="#how-it-works" id="how-it-works"></a>

ユーザーが `sudo` 付きでコマンドを実行したり、`.pkg` ファイルをインストールしたり、管理対象Mac上でその他の認可要求をトリガーしたりすると、macOSが処理する前にシステム拡張によってリクエストがインターセプトされます。内部MQTTブローカー経由でリクエストがKEPMポリシーエンジンに送信され、ポリシー判定を待ってから、許可、拒否、またはコントロールフロー (正当化、MFA、承認) のトリガーに応じて応答されます。

`.dmg` ディスクイメージのオープンについては、バーストイベントが統合されます。macOSが同一ファイルに対していくつのopenイベントを生成しても、ユーザーにはポリシープロンプトが1回だけ表示され、エージェントはマウント操作ごとに1件のポリシーリクエストだけを処理します。

システム拡張はAppleのEndpoint Security Frameworkを使ってユーザースペース (カーネルではない) で動作し、有効化前にユーザーの明示的な承認 (またはMDMによる事前承認) が必要です。

**アプリが `/Library/Keeper/` ではなく `/Applications/Keeper/` にインストールされる理由:** Appleの[システム拡張とドライバのドキュメント](https://developer.apple.com/documentation/systemextensions/installing-system-extensions-and-drivers)では、システム拡張フレームワークが有効化を許可する前に「アプリがシステムの適切なApplicationsディレクトリにインストールされている」必要があると定められています。KEPMはこの要件を満たすため、アプリを `/Applications/Keeper/` に配置します。この制約の対象外のサポートバイナリ (CLIツール、プラグイン、ジョブ、構成) は引き続き `/Library/Keeper/` に配置されます。

## MDMデプロイ <a href="#mdm-deployment" id="mdm-deployment"></a>

KEPMのMDM展開を完了するには、以下の3つの構成プロファイルを順番にデプロイする必要があります。

1. **システム拡張の許可リスト:** 拡張機能を事前承認し、インストール時にサイレントで有効化
2. **フルディスクアクセス (PPPC):** アプリと拡張機能に、ポリシー適用に必要なファイルシステムの可視性を付与
3. **通知の権限 (推奨):** KEPMが昇格プロンプトと承認ステータスを表示可能にする

**システム拡張の許可リストをKEPMパッケージのインストール前に**デプロイしてください。許可リストプロファイルが適用される前に拡張機能がインストールされると、ユーザーに「System Extension Blocked」通知が表示され、拡張機能は `[terminated waiting for user]` 状態となり、システム設定での手動承認またはMDMプロファイルの到着を待つ必要があります。

{% stepper %}
{% step %}

### システム拡張許可リストプロファイル <a href="#system-extension-allowlist-profile" id="system-extension-allowlist-profile"></a>

このプロファイルはAppleの `com.apple.system-extension-policy` ペイロードを使い、KEPMのEndpoint Security拡張機能を事前承認します。

```xml
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>PayloadType</key>
  <string>com.apple.system-extension-policy</string>
  <key>PayloadUUID</key>
  <string><!-- generate a UUID --></string>
  <key>PayloadIdentifier</key>
  <string>com.keeper.kepm.system-extension-policy</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
  <key>PayloadDisplayName</key>
  <string>Keeper EPM — System Extension Allowlist</string>
  <key>AllowUserOverrides</key>
  <true/>
  <key>AllowedSystemExtensions</key>
  <dict>
    <key>234QNB7GCA</key>
    <array>
      <string>com.keeper.keeper-privilege-manager.monitor</string>
    </array>
  </dict>
  <key>AllowedSystemExtensionTypes</key>
  <dict>
    <key>234QNB7GCA</key>
    <array>
      <string>EndpointSecurityExtension</string>
    </array>
  </dict>
</dict>
</plist>
```

`AllowUserOverrides` を `true` に設定すると、トラブルシューティング中に管理者が手動で拡張機能を削除できます。厳格なポリシーを適用しローカルでの削除を防ぐ場合は `false` に設定します。
{% endstep %}

{% step %}

### フルディスクアクセス (PPPC) <a href="#full-disk-access-pppc" id="full-disk-access-pppc"></a>

システム拡張とKeeper Endpoint Privilege Managerアプリの両方に、ファイル操作の監視と認可イベントのインターセプトのためにフルディスクアクセスが必要です。

**対話型インストール:** ユーザーがコンソールにログインしている場合、インストーラは自動的に **\[設定]** のフルディスクアクセス画面を開き、承認が必要な項目を一覧表示するフローティングアラートを表示します。

* `Keeper Endpoint Privilege Manager` (`/Applications/Keeper/Keeper Endpoint Privilege Manager.app`)
* `com.keeper.keeper-privilege-manager.monitor` (システム拡張、バンドルIDで表示)

**MDM / ヘッドレスインストール:** MDM経由で展開する場合 (対話型ターミナルなし) 、インストーラはFDAダイアログを自動的にスキップします。以下のPrivacy Preferences Policy Controlペイロードを使ってフルディスクアクセスを付与してください。

```xml
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>PayloadType</key>
  <string>com.apple.TCC.configuration-profile-policy</string>
  <key>PayloadUUID</key>
  <string><!-- generate a UUID --></string>
  <key>PayloadIdentifier</key>
  <string>com.keeper.kepm.pppc</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
  <key>PayloadDisplayName</key>
  <string>Keeper EPM — Full Disk Access</string>
  <key>Services</key>
  <dict>
    <key>SystemPolicyAllFiles</key>
    <array>
      <dict>
        <key>Identifier</key>
        <string>com.keeper.keeper-privilege-manager.monitor</string>
        <key>IdentifierType</key>
        <string>bundleID</string>
        <key>CodeRequirement</key>
        <string>anchor apple generic and identifier "com.keeper.keeper-privilege-manager.monitor" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "234QNB7GCA")</string>
        <key>Allowed</key>
        <true/>
        <key>StaticCode</key>
        <false/>
      </dict>
      <dict>
        <key>Identifier</key>
        <string>com.keeper.endpoint-privilege-manager</string>
        <key>IdentifierType</key>
        <string>bundleID</string>
        <key>CodeRequirement</key>
        <string>anchor apple generic and identifier "com.keeper.endpoint-privilege-manager" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "234QNB7GCA")</string>
        <key>Allowed</key>
        <true/>
        <key>StaticCode</key>
        <false/>
      </dict>
    </array>
  </dict>
</dict>
</plist>
```

{% hint style="info" %}
`CodeRequirement` 内の `certificate leaf[subject.OU] = "234QNB7GCA"` 句は、プロファイルをKeeper署名バイナリに限定します。これがないと、同じバンドルIDを登録した非Keeperバイナリがフルディスクアクセスを継承するおそれがあります。
{% endhint %}
{% endstep %}

{% step %}

### 通知の権限 (推奨) <a href="#notification-permissions-recommended" id="notification-permissions-recommended"></a>

KEPMはSwiftベースのコンパニオンアプリ `KeeperNotify` を使い、昇格プロンプト、承認結果、ポリシー通知をmacOSの通知センターに表示します。このプロファイルがないと、ユーザーがシステム設定で通知を手動承認するまで昇格プロンプトが表示されない場合があります。

```xml
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>PayloadType</key>
  <string>com.apple.notificationsettings</string>
  <key>PayloadUUID</key>
  <string><!-- generate a UUID --></string>
  <key>PayloadIdentifier</key>
  <string>com.keeper.kepm.notifications</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
  <key>PayloadDisplayName</key>
  <string>Keeper EPM — Notifications</string>
  <key>NotificationSettings</key>
  <array>
    <dict>
      <key>BundleIdentifier</key>
      <string>com.keeper.keepernotify</string>
      <key>NotificationsEnabled</key>
      <true/>
      <key>AlertType</key>
      <integer>2</integer>
      <key>BadgesEnabled</key>
      <true/>
      <key>SoundsEnabled</key>
      <true/>
      <key>CriticalAlertEnabled</key>
      <true/>
      <key>ShowInLockScreen</key>
      <false/>
      <key>ShowInNotificationCenter</key>
      <true/>
    </dict>
  </array>
</dict>
</plist>
```

`AlertType: 2` は永続的なアラート (閉じるまで表示されるバナー) を表示し、ユーザー操作が必要な昇格プロンプトに適しています。通知の邪魔になりにくい一時バナーを好む場合は `1` を使用します。
{% endstep %}
{% endstepper %}

## MDMデプロイの検証 <a href="#verifying-mdm-deployment" id="verifying-mdm-deployment"></a>

3つのプロファイルをすべてデプロイし、KEPMパッケージをインストールしたあと、対象Macで以下を確認します。

```bash
# Confirm profiles are installed
profiles show -type configuration | grep -E "Keeper|kepm"

# Confirm extension is activated and enabled
systemextensionsctl list

# Confirm Full Disk Access is granted
sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" \
  "SELECT client, auth_value FROM access WHERE service='kTCCServiceSystemPolicyAllFiles';"
```

拡張機能は `[activated enabled]` と表示されるはずです。TCCデータベースの `auth_value=2` はアクセスが付与されていることを意味します (`0`=拒否、`1`=プロンプト、`2`=許可)。

## 構成ファイル <a href="#configuration-file" id="configuration-file"></a>

システム拡張は `SystemExtension.json` で構成します。`KeeperPrivilegeManager` がこのファイルを読み取り、拡張機能の初期化時または再接続時にHTTPS経由で内容を配信します。ファイルの配置場所は以下のとおりです。

```
/Library/Keeper/sbin/Plugins/SystemExtension.json
```

設定はトップレベルの `"metadata"` キー配下のネストされたJSONオブジェクトとして構成されます。以下の各セクションでは、完全なJSONパス (例: `metadata.mqttOutages.connectionFailureBehavior`) で各設定を示します。すべての設定にはファイル内にデフォルト値が含まれており、デフォルトと異なる値だけを上書きしてください。

### MQTT障害時の動作 <a href="#mqtt-outage-behavior" id="mqtt-outage-behavior"></a>

システム拡張が内部MQTTブローカーへの接続を失うと (サービス再起動中に一時的に発生することがあります) 、保留中の認可要求に対して設定可能なフォールバック動作に切り替わります。これは、KEPMサービスが一時的に利用できない場合にマシンが使用不能になるのを防ぐための、意図的なフェイルオープンのデフォルトです。

<table><thead><tr><th width="208.66668701171875">設定</th><th width="97.33331298828125">デフォルト</th><th>説明</th></tr></thead><tbody><tr><td><code>metadata.mqttOutages.connectionFailureBehavior</code></td><td><code>"allow"</code></td><td>MQTT障害中の認可要求の扱い: <code>"allow"</code> または <code>"deny"</code></td></tr><tr><td><code>metadata.mqttOutages.retries.minDelay</code></td><td><code>1</code></td><td>再接続試行間の最小遅延 (秒)</td></tr><tr><td><code>metadata.mqttOutages.retries.maxDelay</code></td><td><code>20</code></td><td>再接続試行間の最大遅延 (秒、指数バックオフの上限)</td></tr></tbody></table>

**セキュリティに関する注意:** セキュリティ要件上、MQTT障害時にフェイルクローズ (すべて拒否) が必要な場合は、`connectionFailureBehavior` を `"deny"` に設定してください。これにより、KEPMサービスの中断があると、サービスが復旧するまで対象Mac上のすべての特権昇格がブロックされる点に留意してください。

### ポリシーレスポンスのタイムアウト <a href="#policy-response-timeout" id="policy-response-timeout"></a>

ポリシーエンジンが構成されたタイムアウト内に認可要求へ応答しない場合、システム拡張は設定可能なアクションにフォールバックします。

<table><thead><tr><th width="164.66668701171875">設定</th><th width="98.66668701171875">デフォルト</th><th>説明</th></tr></thead><tbody><tr><td><code>metadata.policy.maxResponseTimeout</code></td><td><code>5.0</code></td><td>タイムアウトアクションを適用する前にポリシー判定を待つ秒数</td></tr><tr><td><code>metadata.policy.onPolicyTimeout</code></td><td><code>"allow"</code></td><td>タイムアウト時のアクション: <code>"allow"</code> または <code>"deny"</code></td></tr></tbody></table>

5秒のデフォルトは多くの環境に適しています。リモート承認者の応答を待つ必要がある承認ゲート付きワークフローでは、想定される承認待ち時間に合わせて値を増やしてください (例: 5分の承認ウィンドウなら `300`)。値を高くしすぎると、ポリシーエンジンが利用できない場合に昇格リクエストがその期間、保留されたままになることがあります。

### ポリシーレスポンスキャッシュ <a href="#policy-response-cache" id="policy-response-cache"></a>

拡張機能は、短時間内に同一の繰り返しリクエストを再評価しないよう、ポリシーレスポンスをキャッシュします。

<table><thead><tr><th width="212">設定</th><th width="97.3333740234375">デフォルト</th><th>説明</th></tr></thead><tbody><tr><td><code>metadata.policy.cache.cleanupInterval</code></td><td><code>30</code></td><td>キャッシュをスイープして期限切れエントリを削除する間隔 (分)</td></tr><tr><td><code>metadata.policy.cache.expireAfter</code></td><td><code>60</code></td><td>キャッシュされたポリシーレスポンスの有効期間 (秒)</td></tr></tbody></table>

### 高負荷時の緩和 <a href="#high-load-relief" id="high-load-relief"></a>

ポリシーエンジンが飽和状態になり応答が遅延し始めると、拡張機能は既知の安全なシステムパスからのリクエストを自動的に許可し、過負荷のポリシー評価の背後にキューイングされるのを防ぎます。

<table><thead><tr><th width="239.33331298828125">設定</th><th width="114.6666259765625">デフォルト</th><th>説明</th></tr></thead><tbody><tr><td><code>metadata.policy.highLoad.inflightThreshold</code></td><td><code>200</code></td><td>高負荷緩和が作動する同時進行中のポリシーリクエスト数</td></tr><tr><td><code>metadata.policy.highLoad.fallbackAllowPaths</code></td><td><em>(下記参照)</em></td><td>しきい値超過中に自動許可されるパス</td></tr></tbody></table>

デフォルトの `fallbackAllowPaths` は標準的なmacOSシステムの場所をカバーします。

```json
[
  "/System/Library/PrivateFrameworks",
  "/usr/libexec",
  "/System/Library/CoreServices",
  "/System/Library/Frameworks",
  "/System/Applications",
  "/usr/bin",
  "/usr/sbin",
  "/Library/Keeper"
]
```

影響を検証したうえでのみ、このリストを変更してください。持続的な高負荷時にシステムパスをフォールバックリストから削除すると、システムプロセスが遅延または拒否される場合があります。

### パス許可リスト <a href="#path-allow-lists" id="path-allow-lists"></a>

システム拡張は許可リストを使い、完全なポリシー往復を経ずに通過すべきアクティビティを識別します。通常はKeeper自身のバイナリや、監視が不要な既知のmacOSシステムパスが対象です。

<table><thead><tr><th width="348.66668701171875">設定</th><th>説明</th></tr></thead><tbody><tr><td><code>metadata.fileAccess.allowPaths</code></td><td>ファイルアクセスポリシー評価から除外するファイルパス</td></tr><tr><td><code>metadata.commandLine.allowPaths</code></td><td>コマンドラインポリシー評価から除外する実行ファイルパス</td></tr><tr><td><code>metadata.privilegeElevation.allowPaths</code></td><td>特権昇格ポリシー評価から除外する実行ファイルパス</td></tr></tbody></table>

**例: ファイルアクセス許可リストへのパス追加**

```json
{
  "id": "KeeperSystemExtension",
  "metadata": {
    "fileAccess": {
      "allowPaths": [
        "/System/Library/PrivateFrameworks",
        "/System/Library/CoreServices",
        "/System/Library/Frameworks",
        "/Library/Keeper",
        "/Applications/Keeper/KeeperNotify.app/Contents/MacOS/KeeperNotify",
        "/Applications/Keeper/KeeperTrash.app/Contents/MacOS/KeeperTrash",
        "/usr/libexec",
        "/usr/sbin",
        "/opt/yourcompany/internal-tool"
      ]
    }
  }
}
```

ポリシー対象が不要と確信できるパスだけを追加してください。範囲を広げすぎると、ポリシー適用に抜け穴が生じる可能性があります。

### ポリシーによる設定の更新 <a href="#updating-settings-via-policy" id="updating-settings-via-policy"></a>

システム拡張の設定は、各エンドポイントでの手動ファイル編集なしに、管理コンソールから**UpdateSettings**ポリシーで更新できます。設定更新が適用されると、拡張機能は `KeeperPrivilegeManager` からHTTPS経由で改訂された構成を取得します。フリート全体の構成変更には、この方法が推奨されます。詳しくは[設定更新ポリシータイプ](/keeperpam/jp/endpoint-privilege-manager/policies/policy-types/advanced-policy-types/update-settings-policy-type.md)をご参照ください。

## 拡張機能の状態確認 <a href="#checking-extension-status" id="checking-extension-status"></a>

```bash
# List all loaded system extensions and their status
systemextensionsctl list

# Check System Extension approval status
spctl --status

# Verify the signing identity of the installed app
codesign -dv --verbose=4 "/Applications/Keeper/Keeper Endpoint Privilege Manager.app" 2>&1 | grep -E "Identifier|TeamIdentifier|Authority"

# Verify the signing identity of the System Extension specifically
codesign -dv --verbose=4 "/Applications/Keeper/Keeper Endpoint Privilege Manager.app/Contents/Library/SystemExtensions/com.keeper.keeper-privilege-manager.monitor.systemextension" 2>&1 | grep -E "Identifier|TeamIdentifier|Authority"
```

Keeper拡張機能は `systemextensionsctl list` に `[activated enabled]` ステータスで表示されるはずです。`[terminated waiting for user]` と表示される場合は、システム拡張許可リストプロファイル (上記参照) がデプロイされていないか、ユーザーが **\[設定] > \[プライバシーとセキュリティ]** で拡張機能をまだ承認していません。

`codesign` の出力には以下が含まれるはずです。

* `Identifier=com.keeper.endpoint-privilege-manager` (アプリ) または `Identifier=com.keeper.keeper-privilege-manager.monitor` (拡張機能)
* `TeamIdentifier=234QNB7GCA`
* `Authority=Developer ID Application: Callpod Inc. (234QNB7GCA)` (CallpodはKeeperの親会社です。識別子の表の注記をご参照ください)

## トラブルシューティング <a href="#troubleshooting" id="troubleshooting"></a>

**拡張機能はインストール済みだが、特権昇格がインターセプトされない:** 拡張機能とアプリの両方にフルディスクアクセスが付与されていることを確認してください。**\[設定] > \[プライバシーとセキュリティ] > \[フルディスクアクセス]** で、`Keeper Endpoint Privilege Manager` と `com.keeper.keeper-privilege-manager.monitor` 拡張機能の両方が一覧に表示され、有効になっている必要があります。PPPCプロファイルをデプロイ済みでもFDAがオフのままの場合、プロファイル内の `CodeRequirement` Team IDが `codesign -dv` で返される実際の署名Team IDと一致しているか確認してください。

**認可要求がタイムアウトし、ユーザーがブロックされる:** KEPMサービスが実行されていないか、ポリシーエンジンが応答していない可能性があります。サービスが実行中であること、KeeperPolicyプラグインがRunning状態であることを確認してください。サービスが正常な場合は、タイムアウト値が承認ワークフローに対して短すぎないか確認してください。

**パッケージのインストールがインターセプトされない:** `systemextensionsctl list` で拡張機能が `[activated enabled]` 状態であることを確認してください。有効化されているのにパッケージがインターセプトされない場合、インストール試行時にKEPMサービスが実行されていたか、サービスログにMQTTレベルのエラーがないかを確認してください。

**拡張機能が `systemextensionsctl list` で `[terminated waiting for user]` と表示される:** システム拡張の `allowlist` プロファイルが届いていないか、`AllowedSystemExtensions` のTeam IDがバイナリと一致していません。プロファイルがインストールされているか (`profiles show -type configuration`) を確認し、プロファイル内のTeam IDが `codesign -dv "/Applications/Keeper/Keeper Endpoint Privilege Manager.app/Contents/Library/SystemExtensions/com.keeper.keeper-privilege-manager.monitor.systemextension"` の出力と一致しているか確認してください。MDM管理外のユーザー管理Macでは、`/Applications/Keeper/` からKeeper Endpoint Privilege Managerアプリを再度開き、システム設定で拡張機能を手動承認してください。

**macOSアップグレード後に拡張機能が `[terminated]` と表示される:** `/Applications/Keeper/` からKeeper Endpoint Privilege Managerアプリケーションを再度開いて拡張機能の再インストールをトリガーし、システム設定で承認してください (MDM管理の場合は `allowlist` プロファイルを再プッシュ)。

**ユーザーに「Notification not delivered」が表示される、または昇格リクエストのプロンプトが出ない:** 通知用PPPCプロファイルがデプロイされていないか、ユーザーが通知の権限を取り消しています。通知ヘルパーは独自バンドルID (`com.keeper.keepernotify`) を持つ別バイナリです。`defaults read com.apple.ncprefs apps | grep com.keeper.keepernotify` で確認してください。エントリには通知が有効であることを示すflags値が含まれるはずです。通知プロファイルが誤ったバンドルID (例: `com.keeper.endpoint-privilege-manager`) を対象にしている場合、通知は配信されません。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/endpoint-privilege-manager/deployment/deploy-with-macos/macos-system-extension-configuration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
