# リダイレクト機能

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

**対象:** IT管理者向けです。本ページでは**リダイレクト**機能について説明します。ユーザーが昇格を許可されたとき、製品はユーザーが要求した実行ファイルの代わりに**別の実行ファイル**を起動できます。代表例は **ncpa.cpl** (Windowsのネットワーク接続) を **Keeper.NetworkConnections** に差し替える構成です。

***

### リダイレクトの動作 <a href="#what-redirect-does" id="what-redirect-does"></a>

**特権昇格**のリクエストがポリシーで**許可**されると、通常は**LaunchPrivilegeElevation**ジョブが、要求された実行ファイルを昇格付きで起動します。製品の昇格フロー (例: 一時アカウント経由) では、**元の**実行ファイルが正しく動作しない場合があります。**リダイレクト**を使うと、ユーザーには**代替**の実行ファイルを起動させ、意図した操作を制御された形で実現できます。

* **ユーザー体験:** ユーザーがおこなう操作は従来どおりです (例: 「ネットワーク接続を開く」)。ポリシーで許可されたあと、製品は**元の**プロセスの起動を**拒否**し、代わりに**代替を昇格付きで起動**します。ユーザーには代替アプリ (例: Keeper.NetworkConnections) が表示され、常時の管理者権限なしに必要な設定が行えます。
* **制御:** リダイレクトのルールはお客様が定義します。どの実行ファイルとコマンドラインの組み合わせを、どの代替に送るかを選べます。

リダイレクトは全体で**有効または無効**にできます。無効のときはルールは評価されず、通常の昇格起動フローのみが使われます。

***

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

**シナリオ:** Windowsでは、ユーザーが `rundll32.exe` とコマンドラインの `ncpa.cpl` から**ネットワーク接続**を開くことがよくあります。標準ユーザーにもその昇格を許可したいが、製品の昇格パスで実際の `rundll32` + `ncpa.cpl` を起動すると正しく動かない、という場合があります。**リダイレクト**はこれらのリクエストを**Keeper.NetworkConnections**に送ります。ネットワークアダプターのプロパティ (IP、DNSなど) を、ローカル管理者グループへの追加なしで変更できる専用UIです。

**結果:** 標準ユーザーは従来どおり「ネットワーク接続」を開きます。OSのダイアログの代わりに**Keeper.NetworkConnections**のUIが表示され、操作感を保ちつつ最小権限を維持できます。

#### ルールの構成

リダイレクトのルールは**RedirectEvaluator**プラグインの構成 `metadata.redirect` で定義します。ncpa.cpl → Keeper.NetworkConnections の例は次のとおりです。

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

**各フィールドの意味**

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="206.66668701171875">フィールド</th><th>説明</th></tr></thead><tbody><tr><td><strong>sourceExePattern</strong></td><td>リクエストの<strong>実行ファイル名</strong>に照合する正規表現です (例: <code>rundll32.exe</code>)。リテラルの <code>.</code> は <code>\\.</code> と書きます。大文字・小文字は区別されません。</td></tr><tr><td><strong>commandLinePattern</strong></td><td><strong>コマンドライン全体</strong>に照合する正規表現です (例: <code>ncpa\\.cpl</code> は <code>ncpa.cpl</code> を含むコマンドラインに一致します)。大文字・小文字は区別されません。</td></tr><tr><td><strong>elevationOnly</strong></td><td><code>true</code> のとき、このルールは<strong>特権昇格</strong>のリクエストにだけ適用されます。一般的なリダイレクトでは <code>true</code> にします。</td></tr><tr><td><strong>nonAdminOnly</strong></td><td><code>true</code> のとき、<strong>リクエストしたユーザーが管理者でない場合</strong>にだけ適用されます。標準ユーザーには代替が使われ、管理者は他ポリシーでブロックされない限り元の実行ファイルを実行できます。</td></tr><tr><td><strong>targetExe</strong></td><td><strong>代替</strong>の実行ファイル名です (例: <code>Keeper.NetworkConnections</code>)。製品はこれを Jobs/bin (または Plugins/bin) 配下のフルパスに解決します。代替はエンドポイントに配置されている必要があります。</td></tr><tr><td><strong>targetArguments</strong></td><td>代替に渡す任意の引数です。多くの場合は空 (<code>""</code>) です。</td></tr></tbody></table>

**評価順:** リクエストに**最初に**一致したルールが使われます。より具体的なルールを、汎用なルールより前に置いてください。

***

### リダイレクトルールが一致したときの流れ <a href="#flow-when-a-redirect-rule-matches" id="flow-when-a-redirect-rule-matches"></a>

1. ユーザーがコマンドラインに**ncpa.cpl**を含む**rundll32.exe**の昇格を要求します。ユーザーは標準ユーザー (非管理者) です。
2. ポリシーがリクエストを**許可**します。必要に応じてMFA、正当化、承認が実行されます。
3. **LaunchPrivilegeElevation**ジョブが動きます。リダイレクトが**有効**なときだけ**check-redirect**タスクが実行されます。
4. **RedirectEvaluator**が、リクエストのコンテキスト (実行ファイル、コマンドライン、ユーザー、イベント種別) で呼び出されます。ルールを評価し、リダイレクトするかどうかと、どの代替を使うかを返します。
5. ルールが一致した場合:
   * ジョブは呼び出し元に**DENY**を返し、**元の**exeは起動**されません**。
   * ジョブは**代替** (例: Keeper.NetworkConnections) を**昇格付きで起動**します。
   * 成功時、クライアントには昇格が成功したと伝わり、ユーザーには代替アプリ (例: ネットワーク接続UI) が表示されます。

リダイレクトが**無効**のとき、または**どのルールも一致しない**ときは、ジョブは通常どおり、要求された実行ファイルを昇格付きで起動し、成功または失敗を報告します。

***

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

* **構成ファイル:** Keeper特権マネージャーのインストールディレクトリ配下の `Plugins/RedirectEvaluator.json`
  * **metadata.redirect.enabled** = **true** → リダイレクト有効。check-redirect が動き、ルールが評価されます。
  * **metadata.redirect.enabled** = **false** → リダイレクト無効。check-redirect タスクは RedirectEvaluator を実行せず、ジョブは常に通常の昇格起動パスを使います。
* **構成のプッシュ:** **SettingsUpdate**の構成ポリシーでRedirectEvaluator (リダイレクトのルールを含む) を更新でき、ダッシュボードまたはポリシーストアがプラグインJSON全体を `Plugins/RedirectEvaluator.json` に書き込みます。**Process Configuration Policies**ジョブが構成プロセッサを実行して反映します。ファイル更新後、新しい設定が適用されます。再読み込みにはプラグインの再起動や次のリクエストが必要になることがあり、バージョンによって異なります。

***

### Keeper.NetworkConnections (代替アプリ) <a href="#keeper-networkconnections-substitute-app" id="keeper-networkconnections-substitute-app"></a>

**Keeper.NetworkConnections**は、Windowsのネットワーク接続に相当する代替UIです。**標準ユーザー**が、特別なグループに入らずにネットワークアダプターのプロパティ (例: IP、DNS) を変更できます。昇格は製品の一時アカウントとリダイレクトの流れで処理されます。

* **展開:** Keeper.NetworkConnections は製品と一緒に**ビルドして配置**する必要があります (例: `Jobs/bin/Keeper.NetworkConnections/` 配下)。存在しない場合、そこへのリダイレクトでは代替を起動できません。
* **ユーザーの入り口:** 上記の ncpa.cpl 向けルールがあるとき、ユーザーは従来どおり「ネットワーク接続」を開く操作で利用できます。ショートカットやメニューから「ネットワーク接続 (拡張)」などを用意することもできます。

***

### リダイレクトルールの追加・変更 <a href="#adding-or-changing-redirect-rules" id="adding-or-changing-redirect-rules"></a>

1. RedirectEvaluator プラグインの構成 (`metadata.redirect` セクションを **Plugins/RedirectEvaluator.json** 内で) **編集**します。
2. リダイレクトを有効にする場合は**redirect.enabled**を**true**にします。
3. **redirect.rules**のオブジェクトを追加または変更します。各ルールに**sourceExePattern**、**commandLinePattern**、**elevationOnly**、**nonAdminOnly**、**targetExe**、**targetArguments**があります。
4. **順序:** 最初に一致したルールが採用されます。具体的なルールを先に書いてください。
5. **targetExe** (例: Keeper.NetworkConnections) を展開し、製品が Jobs/bin または Plugins/bin 配下のパスに解決できるようにします。

**正規表現のヒント:** パターンは大文字・小文字を区別しません。リテラルの `.` は `\\.` とエスケープします (例: `ncpa\\.cpl`、`rundll32\\.exe`)。意図しないアプリまでリダイレクトしないよう、パターンは十分に絞り込んでください。

***

#### Windows Server 2025の保護プロセスに関する回避策 <a href="#windows-server-2025-protected-process-workaround" id="windows-server-2025-protected-process-workaround"></a>

Microsoftは最近、`rundll32.exe` の起動方法を変更しました。標準の実行ファイルとしてではなく **Protected Process Light (PPL) またはCOM**経由で起動される**保護プロセス**として扱われます。その結果、WindowsはCode Integrity Guardを適用し、カーネルレベルで `rundll32.exe` に対するインジェクション方式のフックを無効化します。これにより、Windows Server 2025のエンドポイントでは、KEPMの標準のインジェクション機構では **`rundll32.exe` をフックまたはインターセプトできません**。

**リダイレクトベースのワークフローには影響しません。** リダイレクト機能が有効で、`rundll32.exe` + `ncpa.cpl` を**Keeper.NetworkConnections**に差し替えるルールが構成されている場合、リダイレクトは `Keeper.NetworkConnections` を**直接**起動し、`rundll32.exe` をまったく経由しません。この方法はWindows Server 2025でも正しく動作し、そのプラットフォームではネットワーク接続の昇格に**推奨される解決策**です。

Windows Server 2025のエンドポイントにKEPMを展開し、`rundll32.exe` ベースのコントロールパネル操作 (例: `ncpa.cpl`) に依存している場合は、リダイレクト機能を有効にし、**Keeper.NetworkConnections**をデプロイしてください。

***

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

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="180.66668701171875">項目</th><th>内容</th></tr></thead><tbody><tr><td><strong>リダイレクトとは</strong></td><td>昇格が許可されたリクエストで、元の exe を起動せず別の実行ファイルに差し替え、ユーザーが意図した操作をおこなえるようにします。</td></tr><tr><td><strong>ncpa.cpl の例</strong></td><td>非管理者ユーザー向けに、<strong>rundll32</strong> と <strong>ncpa.cpl</strong> (ネットワーク接続) を <strong>Keeper.NetworkConnections</strong> へリダイレクトします。</td></tr><tr><td><strong>設定場所</strong></td><td><strong>Plugins/RedirectEvaluator.json</strong> の <code>metadata.redirect.enabled</code> と <code>metadata.redirect.rules</code> です。</td></tr><tr><td><strong>プッシュ方法</strong></td><td>RedirectEvaluator プラグインを対象とする <strong>SettingsUpdate</strong> ポリシーを使い、<strong>Process Configuration Policies</strong> を実行します。</td></tr><tr><td><strong>代替アプリ</strong></td><td><strong>Keeper.NetworkConnections</strong> をビルドして展開する必要があります (例: Jobs/bin 配下)。ncpa.cpl 向けリダイレクトでは必須です。</td></tr></tbody></table>


---

# Agent Instructions: 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/reference/redirect-capability.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.
