グループ所有者のアプリ同意ポリシーを管理する
アプリの同意ポリシーは、アプリが組織内のデータにアクセスするために必要なアクセス許可を管理する方法です。 ユーザーが同意できるアプリを制御し、ユーザーがデータにアクセスする前にアプリが特定の条件を満たしていることを確認するために使用されます。 これらのポリシーは、組織がデータの制御を維持し、信頼できるアプリのみがアクセスできるようにするのに役立ちます。
この記事では、組み込みおよびカスタムのアプリ同意ポリシーを管理して、どのような場合にグループ所有者の同意を許可できるかを制御する方法について説明します。
Microsoft Graph と Microsoft Graph PowerShell を使用すると、グループ所有者の同意ポリシーを表示および管理できます。
グループ所有者の同意ポリシーは、1 つ以上の "包含" 条件セットと、0 個以上の "除外" 条件セットで構成されます。 イベントがグループ所有者の同意ポリシーにおいて考慮されるには、"包含" 条件セットがいずれの "除外" 条件セットとも一致することはできません。
各条件セットは、いくつかの条件で構成されます。 イベントが条件セットに一致するためには、条件セット内の "すべての" 条件が満たされる必要があります。
ID が "microsoft-" で始まるグループ所有者の同意ポリシーは、組み込みのポリシーです。 たとえば、グループ所有者の microsoft-pre-approval-apps-for-group
同意ポリシーでは、管理者が自ら所有するグループのデータにアクセスするために、事前に承認された一覧からアプリケーションに同意を付与することがグループ所有者に許可されている条件について説明します。 組み込みのポリシーは、カスタム ディレクトリ ロール内で、また、ユーザーの同意設定を構成するために使用できますが、編集または削除することはできません。
前提条件
- 次のいずれかのロールを持つユーザーまたはサービス:
- 特権ロール管理者
- グループ所有者の同意ポリシーを管理するために必要なアクセス許可を持つカスタム ロール
- Microsoft Graph アプリ ロール (アプリケーションのアクセス許可) Policy.ReadWrite.PermissionGrant (アプリまたはサービスとして接続する場合)
- アプリの同意ポリシーの対象となるグループ所有者の同意を許可するには、グループ所有者の同意設定を無効にする必要があります。 無効にすると、現在のポリシーがアプリの同意ポリシーから読み取られます。 グループ所有者の同意を無効にする方法については、「グループ所有者の同意設定を無効にする」を参照してください
Microsoft Graph PowerShell を使用してアプリケーションのグループ所有者の同意ポリシーを管理するには、Microsoft Graph PowerShell に接続し、「前提条件」セクションに記載されているロールのいずれかでサインインします。 Policy.ReadWrite.PermissionGrant
アクセス許可に同意する必要もあります。
# change the profile to beta by using the `Select-MgProfile` command
Select-MgProfile -Name "beta"
Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"
PowerShell を使用して、グループ所有者の同意ポリシーの現在の値を取得する
グループ所有者の同意設定が他の方法で承認されているかどうかを確認する方法について説明します。
グループ所有者の同意設定の現在の値を取得する
Get-MgPolicyAuthorizationPolicy | select -ExpandProperty DefaultUserRolePermissions | ft PermissionGrantPoliciesAssigned
ManagePermissionGrantPoliciesForOwnedResource
がPermissionGrantPoliciesAssigned
で返された場合、グループ所有者の同意設定が他の方法で承認されている可能性があります。ポリシーのスコープが
group
に設定されているかどうかを確認します。Get-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | Select -ExpandProperty AdditionalProperties
ResourceScopeType
== group
の場合、グループ所有者の同意設定は他の方法で承認されています。 さらに、グループのアプリ同意ポリシーに microsoft-pre-approval-apps-for-group
が割り当てられている場合は、テナントに対して事前適用機能が有効になっていることを意味します。
PowerShell を使用して、既存のグループ所有者の同意ポリシーを一覧表示する
まず、組織内の既存のグループ所有者の同意ポリシーについて理解しておくことをお勧めします。
グループ所有者の同意ポリシーを一覧表示する
Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
ポリシーの "包含" 条件セットを表示します。
Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
"除外" 条件セットを表示します。
Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
PowerShell を使用して、カスタム グループ所有者の同意ポリシーを作成する
カスタムのグループ所有者の同意ポリシーを作成するには、次の手順に従います。
新しい空のグループ所有者の同意ポリシーを作成します。
New-MgPolicyPermissionGrantPolicy ` -Id "my-custom-app-consent-policy-for-group" ` -DisplayName "My first custom app consent policy for group" ` -Description "This is a sample custom app consent policy for group." ` -AdditionalProperties @{includeAllPreApprovedApplications = $false; resourceScopeType = "group"}
"包含" 条件セットを追加します。
# Include delegated permissions classified "low", for apps from verified publishers New-MgPolicyPermissionGrantPolicyInclude ` -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group" ` -PermissionType "delegated" ` -PermissionClassification "low" ` -ClientApplicationsFromVerifiedPublisherOnly
この手順を繰り返して、さらに "包含" 条件セットを追加します。
必要に応じて、"除外" 条件セットを追加します。
# Retrieve the service principal for the Azure Management API $azureApi = Get-MgServicePrincipal -Filter "servicePrincipalNames/any(n:n eq 'https://management.azure.com/')" # Exclude delegated permissions for the Azure Management API New-MgPolicyPermissionGrantPolicyExclude ` -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group" ` -PermissionType "delegated" ` -ResourceApplication $azureApi.AppId
この手順を繰り返して、さらに "除外" 条件セットを追加します。
グループのアプリ同意ポリシーが作成されたら、このポリシーに従って、グループ所有者の同意を許可することができます。
PowerShell を使用して、カスタム グループ所有者の同意ポリシーを削除する
カスタムのグループ所有者の同意ポリシーを削除する方法を次に示します。
Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group"
グループ所有者の同意ポリシーを管理するには、前提条件セクションに記載されているいずれかのロールで Graph エクスプローラーにサインインします。 Policy.ReadWrite.PermissionGrant
アクセス許可に同意する必要もあります。
Microsoft Graph を使用して、グループ所有者の同意ポリシーの現在の値を取得する
グループ所有者の同意設定が他の方法で承認されているかどうかを確認する方法について説明します。
現在のポリシー値を取得する
GET /policies/authorizationPolicy
ManagePermissionGrantPoliciesForOwnedResource
が表示されたら、グループ所有者の同意設定が他の方法で承認されている可能性があります。ポリシーのスコープが
group
に設定されているかどうかを確認するGET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }
resourceScopeType
==group
の場合、グループ所有者の同意設定は他の方法で承認されています。 さらに、グループのアプリ同意ポリシーにmicrosoft-pre-approval-apps-for-group
が割り当てられている場合は、テナントに対して事前適用機能が有効になっていることを意味します。
Microsoft Graph を使用して、既存のグループ所有者の同意ポリシーを一覧表示する
まず、組織内の既存のグループ所有者の同意ポリシーについて理解しておくことをお勧めします。
すべてのアプリ同意ポリシーを一覧表示します。
GET /policies/permissionGrantPolicies
ポリシーの "包含" 条件セットを表示します。
GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }/includes
"除外" 条件セットを表示します。
GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }/excludes
Microsoft Graph を使用して、カスタム グループ所有者の同意ポリシーを作成する
カスタムのグループ所有者の同意ポリシーを作成するには、次の手順に従います。
新しい空のグループ所有者の同意ポリシーを作成します。
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies { "id": "my-custom-app-consent-policy-for-group", "displayName": "My first custom app consent policy for group", "description": "This is a sample custom app consent policy for group", "includeAllPreApprovedApplications": false, "resourceScopeType": "group" }
"包含" 条件セットを追加します。
検証済みの発行元からのアプリに対して、"低" に分類されている委任されたアクセス許可を含める
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-app-consent-policy-for-group }/includes { "permissionType": "delegated", "permissionClassification": "low", "clientApplicationsFromVerifiedPublisherOnly": true }
この手順を繰り返して、さらに "包含" 条件セットを追加します。
必要に応じて、"除外" 条件セットを追加します。 Azure Management API の委任されたアクセス許可を除外する (appId 00001111-aaaa-2222-bbbb-3333cccc4444)
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-app-consent-policy-for-group }/excludes { "permissionType": "delegated", "resourceApplication": "00001111-aaaa-2222-bbbb-3333cccc4444 " }
この手順を繰り返して、さらに "除外" 条件セットを追加します。
グループ所有者の同意ポリシーが作成されたら、このポリシーに従って、グループ所有者の同意を許可することができます。
Microsoft Graph を使用して、カスタム グループ所有者の同意ポリシーを削除する
カスタムのグループ所有者の同意ポリシーを削除する方法を次に示します。
DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
警告
削除したグループ所有者の同意ポリシーは復元できません。 カスタムのグループ所有者の同意ポリシーを誤って削除した場合は、ポリシーを再作成する必要があります。
サポートされている条件
次の表に、グループ所有者の同意ポリシーでサポートされている条件の一覧を示します。
条件 | 説明 |
---|---|
PermissionClassification | 付与されるアクセス許可を表すアクセス許可の分類。または、任意のアクセス許可の分類 (分類されていないアクセス許可を含む) と一致する "all"。 既定値は "all" です。 |
PermissionType | 付与されるアクセス許可を表すアクセス許可の種類。 アプリケーションのアクセス許可 (アプリ ロールなど) を表す "application"、または委任されたアクセス許可を表す "delegated" を使用します。 注: 値 "delegatedUserConsentable" は、API 発行元によって管理者の同意を必要とするように構成されていない委任されたアクセス許可を示しています。 この値は、組み込みのアクセス許可付与ポリシーで使用できますが、カスタムのアクセス許可付与ポリシーでは使用できません。 必須。 |
ResourceApplication | アクセス許可が付与されるリソース アプリケーション (API など) の AppId。または、任意のリソース アプリケーションや API と一致する "any"。 既定値は "any" です。 |
アクセス許可 | 一致する特定のアクセス許可のアクセス許可 ID の一覧。または、任意のアクセス許可と一致する "all" という単一の値。 既定値は単一の値 "all" です。 - 委任されたアクセス許可 ID は、API の ServicePrincipal オブジェクトの OAuth2Permissions プロパティで確認できます。 - アプリケーションのアクセス許可 ID は、API の ServicePrincipal オブジェクトの AppRoles プロパティで確認できます。 |
ClientApplicationIds | 一致するクライアント アプリケーションの AppId 値の一覧。または、任意のクライアント アプリケーションと一致する単一の値 "all" を含む一覧。 既定値は単一の値 "all" です。 |
ClientApplicationTenantIds | クライアント アプリケーションが登録されている Microsoft Entra テナント ID の一覧、または任意のテナントに登録されているクライアント アプリと一致する単一の値 "all" を含む一覧。 既定値は単一の値 "all" です。 |
ClientApplicationPublisherIds | クライアント アプリケーションの確認済みの発行元を表す Microsoft Partner Network (MPN) ID の一覧。または、任意の発行元のクライアント アプリと一致する単一の値 "all" を含む一覧。 既定値は単一の値 "all" です。 |
ClientApplicationsFromVerifiedPublisherOnly | このスイッチを設定すると、確認済みの発行元のクライアント アプリケーションでのみ一致します。 このスイッチ (-ClientApplicationsFromVerifiedPublisherOnly:$false ) を無効にすると、確認済みの発行元がない場合でも、任意のクライアント アプリで一致します。 既定値は $false です。 |
警告
削除したグループ所有者の同意ポリシーは復元できません。 カスタムのグループ所有者の同意ポリシーを誤って削除した場合は、ポリシーを再作成する必要があります。
ヘルプを表示したり、質問に対する回答を検索したりするには、以下を参照してください。