Share via


設定群組和小組擁有者同意應用程式

在本文中,您將瞭解如何設定群組和小組擁有者同意應用程式的方式,以及如何停用所有未來的群組和小組擁有者的同意作業給應用程式。

群組和小組擁有者可以授權應用程式,例如第三方廠商所發行的應用程式,以存取與群組相關聯的組織數據。 例如,Microsoft Teams 中的小組擁有者可以允許應用程式讀取小組中的所有 Teams 訊息,或列出群組成員的基本配置檔。 若要深入瞭解,請參閱 Microsoft Teams 中的資源特定同意。

群組擁有者同意可以透過兩種不同的方式進行管理:透過 Microsoft Entra 系統管理中心和建立應用程式同意原則。 在 Microsoft Entra 系統管理中心,您可以啟用所有群組擁有者、啟用選取的群組擁有者,或停用群組擁有者同意應用程式的能力。 另一方面,應用程式同意原則可讓您指定哪些應用程式同意原則會控管應用程式的群組擁有者同意。 然後,您可以彈性地指派 Microsoft 內建原則,或建立自己的自定義原則,以有效管理群組擁有者的同意程式。

建立應用程式同意原則來管理群組擁有者同意之前,您必須透過 Microsoft Entra 系統管理中心停用群組擁有者同意設定。 停用此設定可讓群組擁有者同意受限於應用程式同意原則。 您可以透過本文中的各種方式,瞭解如何停用群組擁有者同意設定。 深入瞭解如何 根據您需求量身訂做的應用程式同意原則 來管理群組擁有者同意。

必要條件

若要設定群組和小組擁有者同意,您需要:

您可以設定允許哪些使用者同意存取其群組或小組數據的應用程式,或者您可以停用所有用戶的設定。

提示

本文中的步驟可能會根據您從開始的入口網站稍有不同。

若要透過 Microsoft Entra 系統管理中心設定群組和小組擁有者同意設定:

請遵循下列步驟來管理群組擁有者同意存取群組資料的應用程式:

  1. 以至少 [特殊權限角色管理員] 身分登入 Microsoft Entra 系統管理中心
  2. 流覽至 [身分>識別應用程式>企業應用程式>同意] 和 [使用者同意設定] 許可權。>
  3. [群組擁有者同意存取數據 的應用程式] 下,選取您想要啟用的選項。
  4. 選取 [儲存] 以儲存您的設定。

在這裡範例中,允許所有群組擁有者同意存取其群組資料的應用程式:

群組擁有者同意設定

您可以使用 Microsoft Graph PowerShell 模組來啟用或停用群組擁有者同意應用程式存取組織數據的能力,以取得其擁有的群組。 本節中的 Cmdlet 是 Microsoft.Graph.Identity.SignIns 模組的一部分。

連線 至 Microsoft Graph PowerShell 並至少登入特殊許可權角色 管理員 istrator。 若要讀取目前的使用者同意設定,請使用 Policy.Read.All 許可權。 若要讀取和變更使用者同意設定,請使用 Policy.ReadWrite.Authorization 許可權。

  1. 使用 Select-MgProfile 命令將配置文件變更為Beta。

    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 中的設定值

有兩個設定值可定義哪些使用者能夠允許應用程式存取其群組的數據:

設定 類型 描述
EnableGroupSpecificConsent 布林值 旗標,指出是否允許群組擁有者授與群組特定許可權。
ConstrainGroupSpecificConsentToMembersOfGroupId Guid 如果 EnableGroupSpecificConsent 設定為 「True」,且此值設定為群組的物件識別碼,則識別群組的成員將獲授權將群組特定許可權授與其擁有的群組。

使用 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 總管透過目錄設定來管理群組和小組擁有者同意設定:

您必須以特殊許可權角色 管理員 istrator 登入。 若要讀取目前的使用者同意設定,請同意 Policy.Read.All 許可權。 若要讀取和變更使用者同意設定,請同意 Policy.ReadWrite.Authorization 許可權。

使用 Microsoft Graph API 擷取目前的設定

從租使用者中的 Microsoft Entra 系統管理中心擷取同意原則 設定 目前的值。 這需要檢查此功能的目錄設定是否已建立,如果不是,請使用第二個 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 中的設定值

有兩個設定值可定義哪些使用者能夠允許應用程式存取其群組的數據:

設定 類型 描述
EnableGroupSpecificConsent 布林值 旗標,指出是否允許群組擁有者授與群組特定許可權。
ConstrainGroupSpecificConsentToMembersOfGroupId Guid 如果 EnableGroupSpecificConsent 設定為 「True」,且此值設定為群組的物件識別碼,則識別群組的成員將獲授權將群組特定許可權授與其擁有的群組。

使用 Microsoft Graph API 更新所需組態的設定值

在擷取目前設定時,將 取代 {directorySettingId} 為集合中 value 的實際標識符

完全停用群組特定同意

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}"
        }
    ]
}

注意

使用者可以同意代表他們 存取公司數據的應用程式設定,當關閉時,不會停用 [使用者可以同意應用程式存取其擁有 群組的公司數據] 選項。

您可以設定哪些用戶可透過應用程式同意原則,同意存取其群組或小組數據的應用程式。 若要允許群組擁有者同意受限於應用程式同意原則,必須停用群組擁有者同意設定。 停用之後,您目前的原則會從應用程式同意原則讀取。

若要選擇哪個應用程式同意原則可控管應用程式的使用者同意,您可以使用 Microsoft Graph PowerShell 模組。 此處使用的 Cmdlet 包含在 Microsoft.Graph.Identity.SignIns 模組中。

使用所需的最低許可權許可權,連線 Microsoft Graph PowerShell。 若要讀取目前的使用者同意設定,請使用 Policy.Read.All。 若要讀取與變更使用者同意設定, 請使用 Policy.ReadWrite.Authorization。 您必須以特殊許可權角色 管理員 istrator 登入

# 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. 若要停用群組擁有者同意以利用應用程式同意原則,請確定同意原則 (PermissionGrantPoliciesAssigned) 在更新集合時,如果任何不適用於群組,則包含目前的 ManagePermissionGrantsForSelf.* 原則和其他目前 ManagePermissionGrantsForOwnedResource.* 原則。 如此一來,您可以維護使用者同意設定和其他資源同意設定的目前組態。

    # 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
    
    

若要允許群組擁有者同意受限於應用程式同意原則,請選擇哪些應用程式同意原則應控管群組擁有者的授權,以授與應用程式同意。 如果更新集合時,請確定同意原則 (PermissionGrantPoliciesAssigned) 包含目前的 ManagePermissionGrantsForSelf.* 原則和其他 ManagePermissionGrantsForOwnedResource.* 原則。 如此一來,您可以維護使用者同意設定和其他資源同意設定的目前組態。

$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} 為您想要套用的原則標識碼。 您可以選擇 您已建立的自訂應用程式同意原則 ,也可以從下列內建原則中選擇:

識別碼 描述
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. 若要停用群組擁有者同意以利用應用程式同意原則,請確定同意原則 (PermissionGrantPoliciesAssigned) 如果任何不適用於群組,則包含目前的 ManagePermissionGrantsForSelf.* 原則和其他目前 ManagePermissionGrantsForOwnedResource.* 原則。 如此一來,您可以維護使用者同意設定和其他資源同意設定的目前組態。

    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}"
             ]
         }
     }
    

若要允許群組擁有者同意受限於應用程式同意原則,請選擇哪些應用程式同意原則應控管群組擁有者的授權,以授與應用程式同意。 請確定同意原則 (PermissionGrantPoliciesAssigned) 在更新集合時包含目前的 ManagePermissionGrantsForSelf.* 原則和其他目前 ManagePermissionGrantsForOwnedResource.* 原則。 如此一來,您可以維護使用者同意設定和其他資源同意設定的目前組態。

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} 為您要套用至群組的原則標識碼。 您可以建立群組選擇自訂應用程式同意原則,也可以從下列內建原則中選擇:

識別碼 描述
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"
        ]
    }
}

下一步

若要取得協助或尋找問題解答: