プラグイン: Redirect Evaluator

sourceExePattern
取り込む実行ファイル。名前で照合 (例: rundll32\.exe)
commandLinePattern
コマンドライン全体に照合するパターン (例: ncpa\.cpl)。実行ファイルの特定の呼び出しだけにルールを絞るときに使う
elevationOnly
true のとき、ルールは特権昇格要求にだけ適用。多くのリダイレクトで推奨
nonAdminOnly
true のとき、ルールは標準 (非管理者) ユーザーにだけ適用。管理者は影響を受けず、通常どおり元のプロセスが実行される
targetExe
起動する代替アプリケーション (例: Keeper.NetworkConnections)。デプロイ済みのEPMプラグインまたは実行ファイルである必要がある
targetArguments
代替に渡す任意の引数。不要なら空のまま
想定読者: IT管理者。本ページでは RedirectEvaluator について取り扱います。EPMプラグインで、許可された特権昇格要求を取り込み、元のプロセスを昇格起動する代わりに代替アプリケーションへ差し替えます。
RedirectEvaluator の役割
RedirectEvaluator の役割特権昇格要求がポリシーで許可されると、通常は要求された実行ファイルが昇格付きで起動されます。RedirectEvaluator はそのフロー内で動作し、別のアプリケーションへ差し替えます。ユーザーは制御された経路で必要な機能を得られ、元のプロセスが昇格状態で実行されることはありません。
よくある例として、標準ユーザーがWindowsのネットワーク接続 (rundll32.exe + ncpa.cpl) を開く場合があります。そのシステムプロセスを昇格させる代わりに、RedirectEvaluator が要求を取り込み、Keeper.NetworkConnectionsを起動します。ユーザーは専用UIから同じ結果を得られ、元の特権プロセスは実行されません。
リダイレクトはポリシー許可に加えて働く機能です。ポリシーですでに要求が許可された後にだけ有効になります。MFA、正当な理由、承認などの標準コントロールは従来どおり先に実行されます。
動作の流れ
RedirectEvaluator は、リダイレクトが有効なとき、LaunchPrivilegeElevationジョブの最初のタスクとして実行されます。
特権昇格要求が届き、ポリシーによって許可されます。
LaunchPrivilegeElevationジョブが開始されます。check-redirectタスクが
RedirectEvaluatorを呼び出し、実行ファイルパス、コマンドライン、ユーザーの管理者ステータス、イベントタイプなどの要求コンテキストを渡します。RedirectEvaluatorはGET /api/PluginSettings/RedirectEvaluatorで有効なルールを取得し、順に評価します。最初に一致したルールが採用されます。ルールが一致した場合:
RedirectEvaluatorは代替ターゲットを返します。ジョブは呼び出し元に DENY を送り (元の実行ファイルは起動されません)、代わりに代替を昇格起動します。ユーザーには代替アプリが表示されます。一致するルールがない、またはリダイレクトが無効な場合: ジョブは通常どおり進み、当初要求された実行ファイルが昇格起動されます。
RedirectEvaluator はService実行タイプのプロセスタスクとして動作します。出力は単一のJSONオブジェクト (denyOriginalRequest、redirectTargetExe、redirectTargetArgs) で、ジョブコンテキストにマージされ、後続タスクがこれに基づいて処理されます。
デプロイ
RedirectEvaluator は標準のEPMコンポーネントセットの一部としてデプロイされます。
配置先:
Jobs/bin/RedirectEvaluator/構成ファイル:
KeeperPrivilegeManager/Plugins/RedirectEvaluator.json必要な関連ジョブ: LaunchPrivilegeElevation — リダイレクトはこのジョブ内で実行され、ジョブがなければ効果はありません。
代替アプリ (例:
Keeper.NetworkConnections) もJobs/bin/配下にデプロイする必要があります。
リダイレクトルール
ルールは Plugins/RedirectEvaluator.json の metadata.redirect.rules 配下で定義します。各ルールは、何を取り込むか、代わりに何を起動するかを指定します。
sourceExePattern
昇格要求の実行ファイル名に照合する正規表現 (例: rundll32\.exe)。大文字・小文字を区別しない。リテラルの `.` には \. を使う
commandLinePattern
コマンドライン全体に照合する正規表現。「含む」照合として動作。空にはできない — 任意のコマンドラインに一致させる場合は .* を使う
elevationOnly
true のとき、ルールは特権昇格要求にだけ適用。多くのリダイレクトで推奨
nonAdminOnly
true のとき、ルールは標準 (非管理者) ユーザーにだけ適用。管理者は影響を受けず、元のプロセスが実行される
targetExe
起動する代替の短い名前 (例: Keeper.NetworkConnections)。Jobs/bin/ または Plugins/bin/ からフルパスに解決される
targetArguments
代替に渡す任意の引数。不要なら空のまま
ルールは順に評価されます。最初に一致したルールが採用されるため、より具体的なルールを広いルールより前に置いてください。
組み込み例: ncpa.cpl → Keeper.NetworkConnections
デフォルト構成には、Windows ネットワーク接続向けのルールが含まれています。
これは、コマンドラインに ncpa.cpl を含む rundll32.exe への昇格要求を、非管理者ユーザーにだけ取り込みます。一致した要求は追加引数なしでKeeper.NetworkConnections UIへリダイレクトされます。管理者は影響を受けません。
リダイレクトの有効化と無効化
リダイレクトは Plugins/RedirectEvaluator.json 内の単一フラグで制御します。
metadata.redirect.enabled: true— リダイレクトがオン。許可された昇格要求ごとにルールが評価される。metadata.redirect.enabled: false— リダイレクトがオフ。check-redirect タスクは完全にスキップされ、通常の launch-elevated パスが実行される。
無効時は RedirectEvaluator は呼び出されず、昇格フローへのパフォーマンス影響もありません。
構成の一元的デプロイ
各エンドポイントで Plugins/RedirectEvaluator.json を手動編集する代わりに、SettingsUpdate ポリシーでリダイレクトルールを一元的にプッシュできます。
SettingsJson には完全なプラグイン JSON を含める必要があります。ポリシー適用時、エンドポイント上の既存ファイルはマージされず、丸ごと置き換わります。内側の JSON を別途組み立て、SettingsJson 文字列へシリアライズしてエスケープエラーを防いでください。
ポリシーをデプロイし、Process Configuration Policiesジョブが実行されると、更新された構成が Plugins/RedirectEvaluator.json に書き込まれます。デプロイのバージョンによってはサービスの再起動が必要になる場合があります。
改ざん保護に関する注意: EPMが通常のポリシーフロー以外で Plugins/RedirectEvaluator.json が変更されたと検出した場合、ホットリロード時にファイルの再読み込みをスキップすることがあります。その場合、変更を反映するにはサービスの完全再起動が必要です。Keeper管理コンソールからUnified Storageへ設定をプッシュすれば、この制約を回避できます。
まとめ
役割
許可された昇格要求に対し、別の実行ファイルに差し替える
実行タイミング
LaunchPrivilegeElevation 内。ポリシーが要求を許可した後、昇格起動の前
構成場所
Plugins/RedirectEvaluator.json → metadata.redirect.enabled および metadata.redirect.rules
ルール照合
最初に一致したルールが採用。具体性の高い順に並べる
有効化/無効化
metadata.redirect.enabled — 切り替えにサービス再起動は不要
ルールのデプロイ
SettingsUpdate ポリシー + Process Configuration Policies ジョブ
代替アプリの要件
ターゲットは Jobs/bin/ または Plugins/bin/ 配下にデプロイされている必要がある
組み込み例
非管理者ユーザー向けに rundll32.exe + ncpa.cpl → Keeper.NetworkConnections
最終更新

