> 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/policies/policy-reference/policy-evaluation/setup-entra-id-group-filters-in-privilege-elevation-policies.md).

# Entra IDのグループフィルターを特権昇格ポリシーに設定する

特権昇格のグループフィルターがAzure ADユーザーに一致しない

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2Fgit-blob-723fed487cc158eca5ae482c931ab9f59b172679%2Fentra-id-group-filters1.png?alt=media" alt=""><figcaption></figcaption></figure>

Entra ID (Azure AD) ユーザーをグループコレクション経由で選択している場合、特権昇格ポリシーがそのユーザーを非メンバーとして評価することがあります。この場合、本来の強制は行われず、代わりにWindows標準のUACが表示されます。

{% hint style="danger" %}
特権昇格ポリシーにグループを直接追加するとコントロールを通過します。同じグループをグループコレクション経由で追加すると `EnforcementDisabled` になります。
{% endhint %}

## 本ページで解決する内容 <a href="#overview-heading" id="overview-heading"></a>

{% columns %}
{% column %}

### テナントでの一度限りの設定

エンドポイントがサインイン中のユーザーのグループメンバーシップを解決できるように、Microsoft Entra IDにネイティブ/パブリッククライアントを登録します。
{% endcolumn %}

{% column %}

### エンドポイント設定の暗号化配信

`SettingsUpdate` ポリシーを使って、**\[アプリケーション (クライアント) ID]** をエンドポイントに配信します。クライアントシークレットは不要です。
{% endcolumn %}
{% endcolumns %}

{% stepper %}
{% step %}

### テナントごとに一度だけ実施

### EntraのクライアントIDを取得する <a href="#client-id-heading" id="client-id-heading"></a>

Azureポータルで **\[Microsoft Entra ID]** → **\[アプリの登録]** → **\[新規登録]** を開きます。名前は任意で構いません。組織で別のアカウント種別が求められていない限り、**\[この組織ディレクトリのみに含まれるアカウント (シングル テナント)]** を選択します。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2Fgit-blob-db5049005c5f831e5c24353a430795f1e5452357%2Fimage%20(497).png?alt=media" alt="ネイティブ/パブリッククライアントアプリケーションを登録します。この名前はエンドポイントでは使用されません。"><figcaption><p>ネイティブ/パブリッククライアントアプリケーションを登録します。この名前はエンドポイントでは使用されません。</p></figcaption></figure>

#### モバイルおよびデスクトップのリダイレクトURIを追加する

Windows: **\[リダイレクト URI]** で **\[モバイル アプリケーションとデスクトップ アプリケーション]** を選択し、以下のURLを追加します。`CLIENT_ID` は、このアプリ登録の `client_id` に置き換えてください。

`ms-appx-web://Microsoft.AAD.BrokerPlugin/<CLIENT_ID>`

macOS: **\[リダイレクト URI]** で **\[iOS / macOS]** を選択し、以下の **\[Bundle ID]** を追加します。

`com.keeper.endpoint-privilege-manager.usergroupresolver`

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2Fgit-blob-76d1c5efc8aed1e6e0544fc8c49e9b89bd1f045e%2FScreenshot%202026-10-08%20at%208.32.47%E2%80%AFPM.png?alt=media" alt=""><figcaption></figcaption></figure>

**\[パブリック クライアント フローを許可する]** が **\[はい]** になっていることを確認してください。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2Fgit-blob-91e2137638498bf2ecf98120da3d08b0e5bac2cf%2FScreenshot%202026-10-09%20at%2010.10.19%E2%80%AFAM.png?alt=media" alt=""><figcaption></figcaption></figure>

#### デフォルトの委任された権限をそのまま使用する

Microsoft Graphの**User.Read** (委任された権限) はそのままにします。**\[アプリケーション (クライアント) ID]** をコピーします。これが次の手順で使う `ClientId` の値です。

Default Directoryに対して **\[管理者の同意の付与]** をクリックし、**\[はい]** を選択します。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2Fgit-blob-c13dd835a11b4b605548a6c7bc32a841a87c9c24%2Fentra-id-group-filters3.png?alt=media" alt="[モバイル アプリケーションとデスクトップ アプリケーション]プラットフォームを選択し、ネイティブクライアントのリダイレクトURIを使用します。"><figcaption><p><strong>[モバイル アプリケーションとデスクトップ アプリケーション]</strong>プラットフォームを選択し、ネイティブクライアントのリダイレクトURIを使用します。</p></figcaption></figure>

{% hint style="info" %}
**同意:** テナントで委任された権限に管理者の同意が必要な場合は、一度だけ同意を許可します。サイレントトークン取得では同意を許可できないため、各ユーザーの最初のサインインでは対話的な同意プロンプトが表示されることがあります。
{% endhint %}
{% endstep %}

{% step %}

### エンドポイントへの展開

### セキュア設定ポリシーでクライアントIDを配信する <a href="#secure-settings-heading" id="secure-settings-heading"></a>

以下の `SettingsUpdate` ポリシーを展開します。プレースホルダーはPart 1でコピーしたクライアントIDに置き換えます。サンプルは `src/KeeperPEDM_VS2022/Examples/sample/UserGroupResolver-ClientId-SecureSettingsPolicy.json` にもあります。

```
{
  "PolicyId": "usergroupresolver-clientid-secure",
  "PolicyName": "UserGroupResolver Entra ClientId (encrypted)",
  "PolicyType": "SettingsUpdate",
  "Status": "enforce",
  "Extension": {
    "Action": "Update",
    "SecureSettings": {
      "UserGroupResolver:ClientId": "<your Application (client) ID from Part 1>"
    }
  }
}
```

#### 完全なポリシー例

{% code overflow="wrap" %}

```
{
	"PolicyName": "Assign Azure Client ID",
	"PolicyType": "SettingsUpdate",
	"PolicyId": "AdCKQ7svb7yvsvWH5QYKgg",
	"Status": "enforce",
	"Actions": {
		"OnSuccess": {
			"Controls": []
		},
		"OnFailure": {
			"Command": ""
		}
	},
	"NotificationMessage": "A policy has been set to monitor mode.  When this policy is enabled, [mfa, justification, request] will be required to run this process as an administrator.",
	"NotificationRequiresAcknowledge": false,
	"RiskLevel": 50,
	"Operator": "And",
	"Rules": [
		{
			"RuleName": "UserCheck",
			"ErrorMessage": "This user is not included in this policy",
			"RuleExpressionType": "BuiltInAction",
			"Expression": "CheckUser()"
		},
		{
			"RuleName": "MachineCheck",
			"ErrorMessage": "This Machine is not included in this policy",
			"RuleExpressionType": "BuiltInAction",
			"Expression": "CheckMachine()"
		},
		{
			"RuleName": "ApplicationCheck",
			"ErrorMessage": "This application is not included in this policy",
			"RuleExpressionType": "BuiltInAction",
			"Expression": "CheckFile(false)"
		},
		{
			"RuleName": "DateCheck",
			"ErrorMessage": "Current date is not covered by this policy",
			"RuleExpressionType": "BuiltInAction",
			"Expression": "CheckDate()"
		},
		{
			"RuleName": "TimeCheck",
			"ErrorMessage": "Current time is not covered by this policy",
			"RuleExpressionType": "BuiltInAction",
			"Expression": "CheckTime()"
		},
		{
			"RuleName": "DayCheck",
			"ErrorMessage": "Today is not included in this policy",
			"RuleExpressionType": "BuiltInAction",
			"Expression": "CheckDay()"
		},
		{
			"RuleName": "CertificateCheck",
			"ErrorMessage": "Certificate hash is not included in this policy",
			"RuleExpressionType": "BuiltInAction",
			"Expression": "CheckCertificate()"
		}
	],
	"UserCheck": [
		"*"
	],
	"MachineCheck": [
		"*"
	],
	"ApplicationCheck": [
		"*"
	],
	"DayCheck": [],
	"DateCheck": [],
	"TimeCheck": [],
	"CertificationCheck": [],
	"Extension": {
		"Action": "Update",
		"SecureSettings": {
			"UserGroupResolver:ClientId": "<your Application (client) ID from Part 1>"
		}
	}
}
```

{% endcode %}

* ポリシーのステータスは**enforce**です。
* 値は **\[アプリケーション (クライアント) ID]** で、**\[オブジェクトID]** や **\[ディレクトリ (テナント) ID]** ではありません。
* 値は `SecureSettings` 配下に保存されます。クライアントシークレットは配布しません。
  {% endstep %}

{% step %}

### ポリシーの一致を確認する

### グループを特権昇格ポリシーに直接追加する <a href="#test-heading" id="test-heading"></a>

特権昇格ポリシーを作成または編集し、Entraグループを (コレクションとしてではなく) グループフィルターとして**直接**追加して、任意のコントロールでポリシーをテストします。

{% hint style="success" %}

#### 想定される結果: コントロールの通過

グループメンバーシップが解決され、特権昇格ポリシーが適用されます。
{% endhint %}
{% endstep %}

{% step %}

### コレクション経由での問題を再現する

### グループをグループコレクション経由で追加する <a href="#results-heading" id="results-heading"></a>

同じテストを、Entraグループを特権昇格ポリシーに直接追加する代わりに、グループコレクション経由で追加してもう一度実施します。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2Fgit-blob-039ab80eadad9f79b9fa9f1a46d42109ca4b5c3e%2Fentra-id-group-filters5.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

{% columns %}
{% column %}

#### 直接指定のグループフィルター

コントロールを通過し、特権昇格ポリシーが適用されます。
{% endcolumn %}

{% column %}

#### グループコレクションのフィルター

コントロールが `EnforcementDisabled` で失敗し、代わりにWindows標準のUACが表示されます。
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
グループを直接指定したテストは通過するのに、コレクション経由のテストが `EnforcementDisabled` になる場合、そのエンドポイントは本ページで説明しているAzure ADのグループコレクションフィルターの問題を再現しています。エスカレーションする前に、クライアントIDポリシーを確認し、エンドポイントのログを収集してください。
{% endhint %}

***

## トラブルシューティング

トラブルシューティング用コマンドプロンプトの例

{% code overflow="wrap" %}

```
C:\Users\JohnDoe>"C:\Program Files\Keeper Security\Endpoint Privilege Manager\Jobs\bin\UserGroupResolver\UserGroupResolver.exe" --dry-run --client-id <your Application (client) ID from Part 1>
```

{% endcode %}

成功時のレスポンス例

{% code overflow="wrap" %}

```
{
    "userSid": "S-1-12-1-1230035805-203337995-2932204708-3501512273",
    "userName": "AzureAD\\JohnDoe",
    "windowsStatus": "Ok",
    "entraStatus": "Ok",
    "local": [
        {
            "name": "Remote Desktop Users",
            "sid": "S-1-5-32-555"
        },
        {
            "name": "Users",
            "sid": "S-1-5-32-545"
        }
    ],
    "ad": [],
    "azure": [
        {
            "sid": "S-1-12-1-3835191376-1160143123-1997930151-2855338395",
            "domain": "AzureAD",
            "id": "e4986050-6113-4526-a7fe-15779b0131aa"
        },
        {
            "sid": "S-1-12-1-3739764121-1102381688-1139556528-502970863",
            "domain": "AzureAD",
            "id": "dee84599-0278-41b5-b040-ec43efb9fa1d"
        }
    ]
}
```

{% endcode %}

***

## 関連ページ

* [特権昇格ポリシー](/keeperpam/jp/endpoint-privilege-manager/policies/policy-types/privilege-elevation-policy-type.md)
* [ポリシー評価](/keeperpam/jp/endpoint-privilege-manager/policies/policy-reference/policy-evaluation.md)
* [参照ターゲティング](/keeperpam/jp/endpoint-privilege-manager/collections/reference-targeting.md)
* [構成設定](/keeperpam/jp/endpoint-privilege-manager/architecture/configuration-settings.md)


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.keeper.io/keeperpam/jp/endpoint-privilege-manager/policies/policy-reference/policy-evaluation/setup-entra-id-group-filters-in-privilege-elevation-policies.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
