アプリケーションに対するグループ所有者とチーム所有者の同意を構成する
この記事では、アプリケーションに対するグループ所有者とチーム所有者の同意方法を構成する方法と、アプリケーションに対する今後のグループ所有者とチーム所有者の同意操作をすべて無効にする方法について説明します。
グループ所有者とチーム所有者は、アプリケーション (たとえば、サードパーティ ベンダーによって発行されたアプリケーション) が、グループに関連付けられている組織のデータにアクセスすることを承認できます。 たとえば、Microsoft Teams のチーム所有者は、アプリがチーム内のすべての Teams メッセージを読み取ること、またはグループのメンバーの基本プロファイルを一覧表示することを許可できます。 詳細については、「Microsoft Teams でのリソース固有の同意」を参照してください。
グループ所有者の同意は、Microsoft Entra 管理者センターとアプリの同意ポリシーの作成という 2 つの異なる方法で管理できます。 Microsoft Entra 管理者センターでは、すべてのグループ所有者を有効する、選択したグループ所有者を有効にする、またはアプリケーションに同意するグループ所有者の機能を無効にすることができます。 一方、アプリの同意ポリシーでは、アプリケーションに対するグループ所有者の同意を管理するアプリの同意ポリシーを指定できます。 その後、Microsoft の組み込みポリシーを柔軟に割り当てるか、独自のカスタム ポリシーを作成して、グループ所有者の同意プロセスを効果的に管理できます。
アプリの同意ポリシーを作成してグループ所有者の同意を管理する前に、Microsoft Entra 管理者センターでグループ所有者の同意設定を無効にする必要があります。 この設定を無効にすると、アプリの同意ポリシーの対象となるグループ所有者の同意が可能になります。 この記事では、さまざまな方法でグループ所有者の同意設定を無効にする方法について確認できます。 ニーズに合わせて調整されたアプリの同意ポリシーによるグループ所有者の同意の管理に関する詳細をご確認ください。
前提条件
グループ所有者とチーム所有者の同意を構成するには、次のものが必要です。
- ユーザー アカウント。 まだアカウントがない場合は、無料でアカウントを作成することができます。
- グローバル管理者ロール。
Microsoft Entra 管理センターを使用してアプリに対するグループ所有者の同意を管理する
グループ データまたはチーム データにアクセスするアプリへの同意を許可するユーザーを構成することも、すべてのユーザーを対象にこの設定を無効にすることもできます。
ヒント
この記事の手順は、開始するポータルによって若干異なる場合があります。
Microsoft Entra 管理センターを使用してグループ所有者とチーム所有者の同意設定を構成するには:
次の手順でグループ データにアクセスするアプリに対するグループ所有者の同意を管理します。
- Microsoft Entra 管理センターにグローバル管理者としてサインインします。
- [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[同意とアクセス許可]>[ユーザーの同意] の設定に移動します。
- [アプリがデータにアクセスすることへのグループ所有者の同意] で、有効にするオプションを選択します。
- [Save](保存) を選択して設定を保存します。
この例では、すべてのグループ所有者が、そのグループのデータにアクセスするアプリに同意することが許可されています。
Microsoft Graph PowerShell モジュールを使用して、グループ所有者が所有するグループに関連する組織のデータにアクセスするアプリケーションに対してグループ所有者が同意する機能を有効または無効にできます。 このセクションのコマンドレットは、Microsoft.Graph.Identity.SignIns モジュールの一部です。
Microsoft Graph PowerShell に接続し、グローバル管理者としてサインインします。 ユーザーの現在の同意設定を読み取る場合は、Policy.Read.All
権限を使用します。 ユーザーの同意設定を読み取って変更するには、Policy.ReadWrite.Authorization
権限を使用します。
Select-MgProfile
コマンドを使用してプロファイルをベータ版に変更します。Select-MgProfile -Name "beta"
最小特権のアクセス許可を使用する
Connect-MgGraph -Scopes "Policy.ReadWrite.Authorization" # If you need to create a new setting based on the templates, please use this permission Connect-MgGraph -Scopes "Directory.ReadWrite.All"
Microsoft Graph PowerShell を使用して現在の設定を取得する
テナントの同意ポリシー設定ディレクトリ設定の現在の値を取得します。 このために、この機能のディレクトリ設定が作成されているかどうかを確認する必要があります。作成されていない場合は、対応するディレクトリ設定テンプレートの値を使用します。
$consentSettingsTemplateId = "dffd5d46-495d-40a9-8e21-954ff55e198a" # Consent Policy Settings
$settings = Get-MgDirectorySetting | ?{ $_.TemplateId -eq $consentSettingsTemplateId }
if (-not $settings) {
$template = Get-MgDirectorySettingTemplate -DirectorySettingTemplateId $consentSettingsTemplateId
$body = @{
"templateId" = $template.Id
"values" = @(
@{
"name" = "EnableGroupSpecificConsent"
"value" = $true
},
@{
"name" = "BlockUserConsentForRiskyApps"
"value" = $true
},
@{
"name" = "EnableAdminConsentRequests"
"value" = $true
},
@{
"name" = "ConstrainGroupSpecificConsentToMembersOfGroupId"
"value" = ""
}
)
}
$settings = New-MgDirectorySetting -BodyParameter $body
}
$enabledValue = $settings.Values | ? { $_.Name -eq "EnableGroupSpecificConsent" }
$limitedToValue = $settings.Values | ? { $_.Name -eq "ConstrainGroupSpecificConsentToMembersOfGroupId" }
Microsoft Graph PowerShell で設定値を理解する
アプリがグループのデータにアクセスすることを許可できるユーザーを定義する設定値は、次の 2 つです。
設定 | Type | 説明 |
---|---|---|
EnableGroupSpecificConsent | Boolean | グループ所有者がグループ固有のアクセス許可を付与できるかどうかを示すフラグです。 |
ConstrainGroupSpecificConsentToMembersOfGroupId | Guid | EnableGroupSpecificConsent が "True" に設定され、この値がグループのオブジェクト ID に設定されている場合、指定されているグループのメンバーは、所有しているグループにグループ固有のアクセス許可を付与する権限を与えられます。 |
Microsoft Graph PowerShell を使用して必要な構成の設定値を更新する
# Disable group-specific consent entirely
$enabledValue.Value = "false"
$limitedToValue.Value = ""
# Enable group-specific consent for all users
$enabledValue.Value = "true"
$limitedToValue.Value = ""
# Enable group-specific consent for users in a given group
$enabledValue.Value = "true"
$limitedToValue.Value = "{group-object-id}"
Microsoft Graph PowerShell を使用して設定を保存する
```powershell
# Update an existing directory settings
Update-MgDirectorySetting -DirectorySettingId $settings.Id -Values $settings.Values
Graph エクスプローラーを使ったディレクトリ設定でグループ所有者とチーム所有者の同意設定を管理するには:
グローバル管理者としてサインインする必要があります。 ユーザーの現在の同意設定を読み取る場合は、Policy.Read.All
権限に同意します。 ユーザーの同意設定を読み取って変更するには、Policy.ReadWrite.Authorization
権限に同意します。
Microsoft Graph API を使用して現在の設定を取得する
テナント内の Microsoft Entra 管理センターから同意ポリシー設定の現在の値を取得します。 このために、この機能のディレクトリ設定が作成されているかどうかを確認する必要があります。作成されていない場合は、2 番目の Microsoft Graph 呼び出しを使用して対応するディレクトリ設定を作成します。
GET https://graph.microsoft.com/beta/settings
回答
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#settings",
"value": [
{
"id": "{ directorySettingId }",
"displayName": "Consent Policy Settings",
"templateId": "dffd5d46-495d-40a9-8e21-954ff55e198a",
"values": [
{
"name": "EnableGroupSpecificConsent",
"value": "true"
},
{
"name": "BlockUserConsentForRiskyApps",
"value": "true"
},
{
"name": "EnableAdminConsentRequests",
"value": "true"
},
{
"name": "ConstrainGroupSpecificConsentToMembersOfGroupId",
"value": ""
}
]
}
]
}
value
が空の場合は、対応するディレクトリ設定を作成します (例として以下を参照)。
GET https://graph.microsoft.com/beta/settings
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#settings",
"value": []
}
POST https://graph.microsoft.com/beta/settings
{
"templateId": "dffd5d46-495d-40a9-8e21-954ff55e198a",
"values": [
{
"name": "EnableGroupSpecificConsent",
"value": "true"
},
{
"name": "BlockUserConsentForRiskyApps",
"value": "true"
},
{
"name": "EnableAdminConsentRequests",
"value": "true"
},
{
"name": "ConstrainGroupSpecificConsentToMembersOfGroupId",
"value": ""
}
]
}
Microsoft Graph API で設定値を理解する
アプリがグループのデータにアクセスすることを許可できるユーザーを定義する設定値は、次の 2 つです。
設定 | Type | 説明 |
---|---|---|
EnableGroupSpecificConsent | Boolean | グループ所有者がグループ固有のアクセス許可を付与できるかどうかを示すフラグです。 |
ConstrainGroupSpecificConsentToMembersOfGroupId | Guid | EnableGroupSpecificConsent が "True" に設定され、この値がグループのオブジェクト ID に設定されている場合、指定されているグループのメンバーは、所有しているグループにグループ固有のアクセス許可を付与する権限を与えられます。 |
Microsoft Graph API を使用して必要な構成の設定値を更新する
現在の設定を取得するときに {directorySettingId}
を value
コレクション内の実際の ID に置き換える
グループ固有の同意を完全に無効にする
PATCH https://graph.microsoft.com/beta/settings/{directorySettingId}
{
"values": [
{
"name": "EnableGroupSpecificConsent",
"value": "false"
},
{
"name": "BlockUserConsentForRiskyApps",
"value": "true"
},
{
"name": "EnableAdminConsentRequests",
"value": "true"
},
{
"name": "ConstrainGroupSpecificConsentToMembersOfGroupId",
"value": ""
}
]
}
すべてのユーザーに対してグループ固有の同意を有効にする
PATCH https://graph.microsoft.com/beta/settings/{directorySettingId}
{
"values": [
{
"name": "EnableGroupSpecificConsent",
"value": "true"
},
{
"name": "BlockUserConsentForRiskyApps",
"value": "true"
},
{
"name": "EnableAdminConsentRequests",
"value": "true"
},
{
"name": "ConstrainGroupSpecificConsentToMembersOfGroupId",
"value": ""
}
]
}
特定のグループ内のユーザーに対してグループ固有の同意を有効にする
PATCH https://graph.microsoft.com/beta/settings/{directorySettingId}
{
"values": [
{
"name": "EnableGroupSpecificConsent",
"value": "true"
},
{
"name": "BlockUserConsentForRiskyApps",
"value": "true"
},
{
"name": "EnableAdminConsentRequests",
"value": "true"
},
{
"name": "ConstrainGroupSpecificConsentToMembersOfGroupId",
"value": "{group-object-id}"
}
]
}
Note
[ユーザーに代わってアプリが会社のデータにアクセスすることに、ユーザーが同意できる] の設定を無効にしても、[ユーザーが所有するグループに代わってアプリが会社のデータにアクセスすることに、ユーザーが同意できる] の設定は無効になりません。
アプリの同意ポリシーによってアプリに対するグループ所有者の同意を管理する
アプリの同意ポリシーを使用してグループ データまたはチーム データにアクセスするアプリへの同意を許可するユーザーを構成できます。 アプリの同意ポリシーの対象となるグループ所有者の同意を許可するには、グループ所有者の同意設定を無効にする必要があります。 無効にすると、現在のポリシーがアプリの同意ポリシーから読み取られます。
アプリケーションに対するユーザーの同意を制御するアプリの同意ポリシーを選択するには、Microsoft Graph PowerShell モジュールを使用します。 ここで使用するコマンドレットは、Microsoft.Graph.Identity.SignIns モジュールに含まれています。
必要な最小限の特権を使用して、Microsoft Graph PowerShell に接続します。 ユーザーの現在の同意設定を読み取る場合は、Policy.Read.All
を使用します。 ユーザーの同意設定を読み取って変更するには、Policy.ReadWrite.Authorization
を使用します。 グローバル管理者としてサインインする必要があります。
# change the profile to beta by using the `Select-MgProfile` command
Select-MgProfile -Name "beta".
Connect-MgGraph -Scopes "Policy.ReadWrite.Authorization"
Microsoft Graph PowerShell を使用してアプリの同意ポリシーを使用するためにグループ所有者の同意を無効にする
ManagePermissionGrantPoliciesForOwnedResource
のスコープがgroup
で設定されているかどうかを確認するグループ所有者の同意設定の現在の値を取得する
Get-MgPolicyAuthorizationPolicy | select -ExpandProperty DefaultUserRolePermissions | ft PermissionGrantPoliciesAssigned
ManagePermissionGrantPoliciesForOwnedResource
がPermissionGrantPoliciesAssigned
で返された場合、グループ所有者の同意設定がアプリの同意ポリシーによって管理されている可能性があります。ポリシーのスコープが
group
に設定されているかどうかを確認します。Get-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | ft AdditionalProperties
resourceScopeType
==group
の場合、グループ所有者の同意設定はアプリの同意ポリシーによって管理されています。
グループ所有者の同意を無効にしてアプリの同意ポリシーを利用するには、コレクションの更新中にグループに適用できない現在の
ManagePermissionGrantsForSelf.*
のポリシーとその他の現在のManagePermissionGrantsForOwnedResource.*
のポリシー (存在する場合) が同意ポリシー (PermissionGrantPoliciesAssigned
) に含まれることを確認します。 これにより、ユーザーの同意設定と他のリソースの同意設定の現在の構成を維持できます。# only exclude policies that are scoped in group $body = @{ "permissionGrantPolicyIdsAssignedToDefaultUserRole" = @( "managePermissionGrantsForSelf.{current-policy-for-user-consent}", "managePermissionGrantsForOwnedResource.{other-policies-that-are-not-applicable-to-groups}" ) } Update-MgPolicyAuthorizationPolicy -AuthorizationPolicyId authorizationPolicy -BodyParameter $body
Microsoft Graph PowerShell を使用してアプリの同意ポリシーをグループ所有者に割り当てる
アプリの同意ポリシーの対象となるグループ所有者の同意を許可するには、アプリに同意を付与するためにグループ所有者の承認を管理するアプリの同意ポリシーを選択します。 コレクションの更新中に現在の ManagePermissionGrantsForSelf.*
のポリシーとその他の ManagePermissionGrantsForOwnedResource.*
のポリシー (存在する場合) が同意ポリシー (PermissionGrantPoliciesAssigned
) に含まれることを確認します。 これにより、ユーザーの同意設定と他のリソースの同意設定の現在の構成を維持できます。
$body = @{
"permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
"managePermissionGrantsForSelf.{current-policy-for-user-consent}",
"managePermissionGrantsForOwnedResource.{other-policies-that-are-not-applicable-to-groups}",
"managePermissionGrantsForOwnedResource.{app-consent-policy-id-for-group}" #new app consent policy for groups
)
}
Update-MgPolicyAuthorizationPolicy -AuthorizationPolicyId authorizationPolicy -BodyParameter $body
{app-consent-policy-id-for-group}
を、適用するポリシーの ID に置き換えます。 作成したカスタム アプリの同意ポリシーを選択することも、次の組み込みポリシーから選択することもできます。
id | 説明 |
---|---|
microsoft-pre-approval-apps-for-group | 事前に承認されたアプリにのみグループ所有者の同意を許可する グループ所有者が所有するグループに対して管理者によって事前に承認されたアプリに対してのみグループ所有者の同意を許可します。 |
microsoft-all-application-permissions-for-group | アプリに対するグループ所有者の同意を許可する このオプションにより、すべてのグループ所有者が、グループ所有者が所有するグループに関して、すべてのアプリケーションに対し、管理者の同意を必要としないすべてのアクセス許可に同意できるようになります。 これには、グループ リソース固有の同意に対するアクセス許可付与の事前適用ポリシーによって事前に承認されたアプリが含まれます。 |
たとえば、組み込みのポリシー microsoft-all-application-permissions-for-group
に従ってグループ所有者の同意を有効にするには、次のコマンドを実行します。
$body = @{
"permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
"managePermissionGrantsForSelf.{current-policy-for-user-consent}",
"managePermissionGrantsForOwnedResource.{all-policies-that-are-not-applicable-to-groups}",
"managePermissionGrantsForOwnedResource.{microsoft-all-application-permissions-for-group}" # policy that is be scoped to group
)
}
Update-MgPolicyAuthorizationPolicy -AuthorizationPolicyId authorizationPolicy -BodyParameter $body
Graph エクスプローラーを使用して、所有するグループの組織のデータにアクセスするアプリケーションに同意するユーザーの同意のグループ所有者の機能を制御するグループ所有者の同意ポリシーを選択します。
Microsoft Graph API を使用してアプリの同意ポリシーを使用するためにグループ所有者の同意を無効にする
ManagePermissionGrantPoliciesForOwnedResource
のスコープがgroup
で設定されているかどうかを確認する- グループ所有者の同意設定の現在の値を取得する
GET https://graph.microsoft.com/v1.0/policies/authorizationPolicy
ManagePermissionGrantsForOwnedResource
がpermissionGrantPolicyIdsAssignedToDefaultUserRole
で返された場合、グループ所有者の同意設定がアプリの同意ポリシーによって管理されている可能性があります。2. ポリシーのスコープが
group
に設定されているかどうかを確認するGET https://graph.microsoft.com/beta/policies/permissionGrantPolicies/{microsoft-all-application-permissions-for-group}
resourceScopeType
==group
の場合、グループ所有者の同意設定はアプリの同意ポリシーによって管理されています。グループ所有者の同意を無効にしてアプリの同意ポリシーを利用するには、グループに適用できない現在の
ManagePermissionGrantsForSelf.*
のポリシーとその他の現在のManagePermissionGrantsForOwnedResource.*
のポリシー (存在する場合) が同意ポリシー (PermissionGrantPoliciesAssigned
) に含まれることを確認します。 これにより、ユーザーの同意設定と他のリソースの同意設定の現在の構成を維持できます。PATCH https://graph.microsoft.com/beta/policies/authorizationPolicy { "defaultUserRolePermissions": { "permissionGrantPoliciesAssigned": [ "managePermissionGrantsForSelf.{current-policy-for-user-consent}", "managePermissionGrantsForOwnedResource.{other-policies-that-are-not-applicable-to-groups}" ] } }
Microsoft Graph API を使用してアプリの同意ポリシーをグループ所有者に割り当てる
アプリの同意ポリシーの対象となるグループ所有者の同意を許可するには、アプリに同意を付与するためにグループ所有者の承認を管理するアプリの同意ポリシーを選択します。 コレクションの更新中に現在の ManagePermissionGrantsForSelf.*
のポリシーとその他の ManagePermissionGrantsForOwnedResource.*
の現在のポリシー (存在する場合) が同意ポリシー (PermissionGrantPoliciesAssigned
) に含まれることを確認します。 これにより、ユーザーの同意設定と他のリソースの同意設定の現在の構成を維持できます。
PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
"defaultUserRolePermissions": {
"managePermissionGrantsForSelf.{current-policy-for-user-consent}",
"managePermissionGrantsForOwnedResource.{other-policies-that-are-not-applicable-to-groups}",
"managePermissionGrantsForOwnedResource.{app-consent-policy-id-for-group}"
}
}
{app-consent-policy-id-for-group}
を、グループに適用するポリシーの ID に置き換えます。 作成したグループのカスタム アプリの同意ポリシーを選択することも、次の組み込みポリシーから選択することもできます。
ID | 説明 |
---|---|
microsoft-pre-approval-apps-for-group | 事前に承認されたアプリにのみグループ所有者の同意を許可する グループ所有者が所有するグループに対して管理者によって事前に承認されたアプリに対してのみグループ所有者の同意を許可します。 |
microsoft-all-application-permissions-for-group | アプリに対するグループ所有者の同意を許可する このオプションにより、すべてのグループ所有者が、グループ所有者が所有するグループに関して、すべてのアプリケーションに対し、管理者の同意を必要としないすべてのアクセス許可に同意できるようになります。 これには、グループ リソース固有の同意に対するアクセス許可付与の事前適用ポリシーによって事前に承認されたアプリが含まれます。 |
たとえば、組み込みのポリシー microsoft-pre-approval-apps-for-group
に従ってグループ所有者の同意を有効にするには、次の PATCH コマンドを使用します。
PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
"defaultUserRolePermissions": {
"permissionGrantPoliciesAssigned": [
"managePermissionGrantsForSelf.{current-policy-for-user-consent}",
"managePermissionGrantsForOwnedResource.{other-policies-that-are-not-applicable-to-groups}",
"managePermissionGrantsForOwnedResource.microsoft-pre-approval-apps-for-group"
]
}
}
次のステップ
ヘルプを表示したり、質問に対する回答を検索したりするには、以下を参照してください。