Share via


アプリケーションに対するグループ所有者とチーム所有者の同意を構成する

この記事では、アプリケーションに対するグループ所有者とチーム所有者の同意方法を構成する方法と、アプリケーションに対する今後のグループ所有者とチーム所有者の同意操作をすべて無効にする方法について説明します。

グループ所有者とチーム所有者は、アプリケーション (たとえば、サードパーティ ベンダーによって発行されたアプリケーション) が、グループに関連付けられている組織のデータにアクセスすることを承認できます。 たとえば、Microsoft Teams のチーム所有者は、アプリがチーム内のすべての Teams メッセージを読み取ること、またはグループのメンバーの基本プロファイルを一覧表示することを許可できます。 詳細については、「Microsoft Teams でのリソース固有の同意」を参照してください。

グループ所有者の同意は、Microsoft Entra 管理者センターとアプリの同意ポリシーの作成という 2 つの異なる方法で管理できます。 Microsoft Entra 管理者センターでは、すべてのグループ所有者を有効する、選択したグループ所有者を有効にする、またはアプリケーションに同意するグループ所有者の機能を無効にすることができます。 一方、アプリの同意ポリシーでは、アプリケーションに対するグループ所有者の同意を管理するアプリの同意ポリシーを指定できます。 その後、Microsoft の組み込みポリシーを柔軟に割り当てるか、独自のカスタム ポリシーを作成して、グループ所有者の同意プロセスを効果的に管理できます。

アプリの同意ポリシーを作成してグループ所有者の同意を管理する前に、Microsoft Entra 管理者センターでグループ所有者の同意設定を無効にする必要があります。 この設定を無効にすると、アプリの同意ポリシーの対象となるグループ所有者の同意が可能になります。 この記事では、さまざまな方法でグループ所有者の同意設定を無効にする方法について確認できます。 ニーズに合わせて調整されたアプリの同意ポリシーによるグループ所有者の同意の管理に関する詳細をご確認ください。

前提条件

グループ所有者とチーム所有者の同意を構成するには、次のものが必要です。

グループ データまたはチーム データにアクセスするアプリへの同意を許可するユーザーを構成することも、すべてのユーザーを対象にこの設定を無効にすることもできます。

ヒント

この記事の手順は、開始するポータルによって若干異なる場合があります。

Microsoft Entra 管理センターを使用してグループ所有者とチーム所有者の同意設定を構成するには:

次の手順でグループ データにアクセスするアプリに対するグループ所有者の同意を管理します。

  1. Microsoft Entra 管理センターグローバル管理者としてサインインします。
  2. [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[同意とアクセス許可]>[ユーザーの同意] の設定に移動します。
  3. [アプリがデータにアクセスすることへのグループ所有者の同意] で、有効にするオプションを選択します。
  4. [Save](保存) を選択して設定を保存します。

この例では、すべてのグループ所有者が、そのグループのデータにアクセスするアプリに同意することが許可されています。

Group owner consent settings

Microsoft Graph PowerShell モジュールを使用して、グループ所有者が所有するグループに関連する組織のデータにアクセスするアプリケーションに対してグループ所有者が同意する機能を有効または無効にできます。 このセクションのコマンドレットは、Microsoft.Graph.Identity.SignIns モジュールの一部です。

Microsoft Graph PowerShell に接続し、グローバル管理者としてサインインします。 ユーザーの現在の同意設定を読み取る場合は、Policy.Read.All 権限を使用します。 ユーザーの同意設定を読み取って変更するには、Policy.ReadWrite.Authorization 権限を使用します。

  1. Select-MgProfile コマンドを使用してプロファイルをベータ版に変更します。

    Select-MgProfile -Name "beta"
    
  2. 最小特権のアクセス許可を使用する

    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"
  1. ManagePermissionGrantPoliciesForOwnedResource のスコープが group で設定されているかどうかを確認する

    1. グループ所有者の同意設定の現在の値を取得する

        Get-MgPolicyAuthorizationPolicy | select -ExpandProperty DefaultUserRolePermissions | ft PermissionGrantPoliciesAssigned
      

    ManagePermissionGrantPoliciesForOwnedResourcePermissionGrantPoliciesAssigned で返された場合、グループ所有者の同意設定がアプリの同意ポリシーによって管理されている可能性があります

    1. ポリシーのスコープが group に設定されているかどうかを確認します。

        Get-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | ft AdditionalProperties
      

      resourceScopeType == group の場合、グループ所有者の同意設定はアプリの同意ポリシーによって管理されています

  2. グループ所有者の同意を無効にしてアプリの同意ポリシーを利用するには、コレクションの更新中にグループに適用できない現在の 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
    
    

アプリの同意ポリシーの対象となるグループ所有者の同意を許可するには、アプリに同意を付与するためにグループ所有者の承認を管理するアプリの同意ポリシーを選択します。 コレクションの更新中に現在の 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 エクスプローラーを使用して、所有するグループの組織のデータにアクセスするアプリケーションに同意するユーザーの同意のグループ所有者の機能を制御するグループ所有者の同意ポリシーを選択します。

  1. ManagePermissionGrantPoliciesForOwnedResource のスコープが group で設定されているかどうかを確認する

    1. グループ所有者の同意設定の現在の値を取得する
    GET https://graph.microsoft.com/v1.0/policies/authorizationPolicy
    

    ManagePermissionGrantsForOwnedResourcepermissionGrantPolicyIdsAssignedToDefaultUserRole で返された場合、グループ所有者の同意設定がアプリの同意ポリシーによって管理されている可能性があります。

    2. ポリシーのスコープが group に設定されているかどうかを確認する

    GET https://graph.microsoft.com/beta/policies/permissionGrantPolicies/{microsoft-all-application-permissions-for-group}
    

    resourceScopeType == group の場合、グループ所有者の同意設定はアプリの同意ポリシーによって管理されています。

  2. グループ所有者の同意を無効にしてアプリの同意ポリシーを利用するには、グループに適用できない現在の 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}"
             ]
         }
     }
    

アプリの同意ポリシーの対象となるグループ所有者の同意を許可するには、アプリに同意を付与するためにグループ所有者の承認を管理するアプリの同意ポリシーを選択します。 コレクションの更新中に現在の 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"
        ]
    }
}

次のステップ

ヘルプを表示したり、質問に対する回答を検索したりするには、以下を参照してください。