> 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/integrations/examples/redirectevaluator-plugin-configuration.md).

# プラグイン: Redirect Evaluator

<figure><img src="/files/RXJ9diip68kfoSCPwuFL" alt=""><figcaption></figcaption></figure>

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="195.33331298828125">フィールド</th><th>説明</th></tr></thead><tbody><tr><td><code>sourceExePattern</code></td><td>取り込む実行ファイル。名前で照合 (例: <code>rundll32\.exe</code>)</td></tr><tr><td><code>commandLinePattern</code></td><td>コマンドライン全体に照合するパターン (例: <code>ncpa\.cpl</code>)。実行ファイルの特定の呼び出しだけにルールを絞るときに使う</td></tr><tr><td><code>elevationOnly</code></td><td><code>true</code> のとき、ルールは特権昇格要求にだけ適用。多くのリダイレクトで推奨</td></tr><tr><td><code>nonAdminOnly</code></td><td><code>true</code> のとき、ルールは標準 (非管理者) ユーザーにだけ適用。管理者は影響を受けず、通常どおり元のプロセスが実行される</td></tr><tr><td><code>targetExe</code></td><td>起動する代替アプリケーション (例: <code>Keeper.NetworkConnections</code>)。デプロイ済みのEPMプラグインまたは実行ファイルである必要がある</td></tr><tr><td><code>targetArguments</code></td><td>代替に渡す任意の引数。不要なら空のまま</td></tr></tbody></table>

**想定読者:** IT管理者。本ページでは **`RedirectEvaluator`** について取り扱います。EPMプラグインで、許可された特権昇格要求を取り込み、元のプロセスを昇格起動する代わりに代替アプリケーションへ差し替えます。

## `RedirectEvaluator` の役割 <a href="#what-redirectevaluator-does" id="what-redirectevaluator-does"></a>

特権昇格要求がポリシーで許可されると、通常は要求された実行ファイルが昇格付きで起動されます。**`RedirectEvaluator`** はそのフロー内で動作し、別のアプリケーションへ差し替えます。ユーザーは制御された経路で必要な機能を得られ、元のプロセスが昇格状態で実行されることはありません。

よくある例として、標準ユーザーがWindowsのネットワーク接続 (`rundll32.exe` + `ncpa.cpl`) を開く場合があります。そのシステムプロセスを昇格させる代わりに、**`RedirectEvaluator`** が要求を取り込み、**Keeper.NetworkConnections**を起動します。ユーザーは専用UIから同じ結果を得られ、元の特権プロセスは実行されません。

リダイレクトはポリシー許可に加えて働く機能です。ポリシーですでに要求が許可された後にだけ有効になります。MFA、正当な理由、承認などの標準コントロールは従来どおり先に実行されます。

## 動作の流れ <a href="#how-it-works" id="how-it-works"></a>

**`RedirectEvaluator`** は、リダイレクトが有効なとき、**LaunchPrivilegeElevation**ジョブの最初のタスクとして実行されます。

1. 特権昇格要求が届き、ポリシーによって許可されます。
2. **LaunchPrivilegeElevation**ジョブが開始されます。**check-redirect**タスクが **`RedirectEvaluator`** を呼び出し、実行ファイルパス、コマンドライン、ユーザーの管理者ステータス、イベントタイプなどの要求コンテキストを渡します。
3. **`RedirectEvaluator`** は `GET /api/PluginSettings/RedirectEvaluator` で有効なルールを取得し、順に評価します。最初に一致したルールが採用されます。
4. **ルールが一致した場合:** **`RedirectEvaluator`** は代替ターゲットを返します。ジョブは呼び出し元に DENY を送り (元の実行ファイルは起動されません)、代わりに代替を昇格起動します。ユーザーには代替アプリが表示されます。
5. **一致するルールがない、またはリダイレクトが無効な場合:** ジョブは通常どおり進み、当初要求された実行ファイルが昇格起動されます。

**`RedirectEvaluator`** はService実行タイプのプロセスタスクとして動作します。出力は単一のJSONオブジェクト (`denyOriginalRequest`、`redirectTargetExe`、`redirectTargetArgs`) で、ジョブコンテキストにマージされ、後続タスクがこれに基づいて処理されます。

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

**`RedirectEvaluator`** は標準のEPMコンポーネントセットの一部としてデプロイされます。

* **配置先:** `Jobs/bin/RedirectEvaluator/`
* **構成ファイル:** `KeeperPrivilegeManager/Plugins/RedirectEvaluator.json`
* **必要な関連ジョブ:** LaunchPrivilegeElevation — リダイレクトはこのジョブ内で実行され、ジョブがなければ効果はありません。
* **代替アプリ** (例: `Keeper.NetworkConnections`) も `Jobs/bin/` 配下にデプロイする必要があります。

### リダイレクトルール <a href="#redirect-rules" id="redirect-rules"></a>

ルールは `Plugins/RedirectEvaluator.json` の `metadata.redirect.rules` 配下で定義します。各ルールは、何を取り込むか、代わりに何を起動するかを指定します。

<table><thead><tr><th width="194">フィールド</th><th>説明</th></tr></thead><tbody><tr><td><code>sourceExePattern</code></td><td>昇格要求の<strong>実行ファイル名</strong>に照合する正規表現 (例: <code>rundll32\.exe</code>)。大文字・小文字を区別しない。リテラルの `.` には <code>\.</code> を使う</td></tr><tr><td><code>commandLinePattern</code></td><td><strong>コマンドライン全体</strong>に照合する正規表現。「含む」照合として動作。空にはできない — 任意のコマンドラインに一致させる場合は <code>.*</code> を使う</td></tr><tr><td><code>elevationOnly</code></td><td><code>true</code> のとき、ルールは特権昇格要求にだけ適用。多くのリダイレクトで推奨</td></tr><tr><td><code>nonAdminOnly</code></td><td><code>true</code> のとき、ルールは標準 (非管理者) ユーザーにだけ適用。管理者は影響を受けず、元のプロセスが実行される</td></tr><tr><td><code>targetExe</code></td><td>起動する代替の短い名前 (例: <code>Keeper.NetworkConnections</code>)。<code>Jobs/bin/</code> または <code>Plugins/bin/</code> からフルパスに解決される</td></tr><tr><td><code>targetArguments</code></td><td>代替に渡す任意の引数。不要なら空のまま</td></tr></tbody></table>

ルールは順に評価されます。**最初に一致したルールが採用される**ため、より具体的なルールを広いルールより前に置いてください。

### 組み込み例: ncpa.cpl → Keeper.NetworkConnections <a href="#built-in-example-ncpa-cpl-keeper-networkconnections" id="built-in-example-ncpa-cpl-keeper-networkconnections"></a>

デフォルト構成には、Windows ネットワーク接続向けのルールが含まれています。

```json
"redirect": {
  "enabled": true,
  "rules": [
    {
      "sourceExePattern": "rundll32\\.exe",
      "commandLinePattern": "ncpa\\.cpl",
      "elevationOnly": true,
      "nonAdminOnly": true,
      "targetExe": "Keeper.NetworkConnections",
      "targetArguments": ""
    }
  ]
}
```

これは、コマンドラインに `ncpa.cpl` を含む `rundll32.exe` への昇格要求を、非管理者ユーザーにだけ取り込みます。一致した要求は追加引数なしでKeeper.NetworkConnections UIへリダイレクトされます。管理者は影響を受けません。

### リダイレクトの有効化と無効化 <a href="#enabling-and-disabling-redirect" id="enabling-and-disabling-redirect"></a>

リダイレクトは `Plugins/RedirectEvaluator.json` 内の単一フラグで制御します。

* `metadata.redirect.enabled: true` — リダイレクトがオン。許可された昇格要求ごとにルールが評価される。
* `metadata.redirect.enabled: false` — リダイレクトがオフ。check-redirect タスクは完全にスキップされ、通常の launch-elevated パスが実行される。

無効時は **`RedirectEvaluator`** は呼び出されず、昇格フローへのパフォーマンス影響もありません。

### 構成の一元的デプロイ <a href="#deploying-configuration-centrally" id="deploying-configuration-centrally"></a>

各エンドポイントで `Plugins/RedirectEvaluator.json` を手動編集する代わりに、`SettingsUpdate` ポリシーでリダイレクトルールを一元的にプッシュできます。

```json
{
  "PolicyId": "redirect-evaluator-ncpa-redirect",
  "PolicyName": "Redirect ncpa.cpl to Keeper.NetworkConnections",
  "PolicyType": "SettingsUpdate",
  "Status": "enabled",
  "Extension": {
    "PluginName": "RedirectEvaluator",
    "Action": "Update",
    "SettingsJson": "{ ...full RedirectEvaluator plugin JSON including metadata.redirect... }"
  }
}
```

`SettingsJson` には**完全な**プラグイン JSON を含める必要があります。ポリシー適用時、エンドポイント上の既存ファイルはマージされず、丸ごと置き換わります。内側の JSON を別途組み立て、`SettingsJson` 文字列へシリアライズしてエスケープエラーを防いでください。

ポリシーをデプロイし、**Process Configuration Policies**ジョブが実行されると、更新された構成が `Plugins/RedirectEvaluator.json` に書き込まれます。デプロイのバージョンによってはサービスの再起動が必要になる場合があります。

{% hint style="info" %}
**改ざん保護に関する注意:** EPMが通常のポリシーフロー以外で `Plugins/RedirectEvaluator.json` が変更されたと検出した場合、ホットリロード時にファイルの再読み込みをスキップすることがあります。その場合、変更を反映するにはサービスの完全再起動が必要です。**Keeper管理コンソール**からUnified Storageへ設定をプッシュすれば、この制約を回避できます。
{% endhint %}

## まとめ <a href="#summary" id="summary"></a>

<table><thead><tr><th width="191.3333740234375">項目</th><th>内容</th></tr></thead><tbody><tr><td><strong>役割</strong></td><td>許可された昇格要求に対し、別の実行ファイルに差し替える</td></tr><tr><td><strong>実行タイミング</strong></td><td>LaunchPrivilegeElevation 内。ポリシーが要求を許可した後、昇格起動の前</td></tr><tr><td><strong>構成場所</strong></td><td><code>Plugins/RedirectEvaluator.json</code> → <code>metadata.redirect.enabled</code> および <code>metadata.redirect.rules</code></td></tr><tr><td><strong>ルール照合</strong></td><td>最初に一致したルールが採用。具体性の高い順に並べる</td></tr><tr><td><strong>有効化/無効化</strong></td><td><code>metadata.redirect.enabled</code> — 切り替えにサービス再起動は不要</td></tr><tr><td><strong>ルールのデプロイ</strong></td><td><code>SettingsUpdate</code> ポリシー + Process Configuration Policies ジョブ</td></tr><tr><td><strong>代替アプリの要件</strong></td><td>ターゲットは <code>Jobs/bin/</code> または <code>Plugins/bin/</code> 配下にデプロイされている必要がある</td></tr><tr><td><strong>組み込み例</strong></td><td>非管理者ユーザー向けに <code>rundll32.exe</code> + <code>ncpa.cpl</code> → <code>Keeper.NetworkConnections</code></td></tr></tbody></table>


---

# 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:

```
GET https://docs.keeper.io/keeperpam/jp/endpoint-privilege-manager/integrations/examples/redirectevaluator-plugin-configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
