配置用户对应用程序表示同意的方式

本文介绍如何在 Microsoft Entra ID 中配置用户同意设置,以控制用户何时以及如何向应用程序授予权限。 本指南通过限制或禁用用户同意来帮助 IT 管理员降低安全风险。

用户必须先授权应用程序访问,然后应用程序才可访问你组织的数据。 权限不同,访问级别就不同。 默认情况下,允许所有用户同意应用程序获取无需管理员同意的权限。 例如,默认情况下,用户可同意允许应用访问其邮箱,但无法同意允许应用具有不受限制的访问权限来读写你组织中的所有文件。

为了降低恶意应用程序试图欺骗用户授予对组织数据的访问权限的风险,我们建议你仅允许用户同意已 验证发布者发布的应用程序。

注意

要求分配用户到应用程序的应用必须获得管理员的权限同意,即使目录的用户同意策略通常允许用户为自己同意也是如此。

先决条件

若要配置用户同意,你需要:

可以使用 Microsoft Entra 管理中心、Microsoft Graph PowerShell 或 Microsoft Graph API 在 Microsoft Entra ID 中配置用户同意设置。 配置的设置适用于组织中的所有用户。

通过 Microsoft Entra 管理中心配置用户同意设置:

  1. 特权角色管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到 Entra ID>企业应用>许可和权限>用户同意设置

  3. 在“针对应用程序的用户同意”下,选择想要为所有用户配置的同意设置。

  4. 选择“保存”以保存设置 。

“用户同意设置”窗格的屏幕截图。

若要选择哪个应用许可策略控制应用程序的用户同意,请使用 Microsoft Graph PowerShell 模块。 此处使用的 cmdlet 包含在 Microsoft.Graph.Identity.SignIns 模块中。

使用所需的最小特权权限连接到 Microsoft Graph PowerShell。 若要读取当前用户同意设置,请使用 Policy.Read.All。 若要读取和更改用户同意设置,请使用 Policy.ReadWrite.Authorization。 需要以 特权角色管理员身份登录。

Connect-MgGraph -Scopes "Policy.ReadWrite.Authorization"

若要禁用用户同意,确保在更新集合时同意策略 (PermissionGrantPoliciesAssigned) 包括其他当前 ManagePermissionGrantsForOwnedResource.* 策略(如果有)。 这样,便可维护用户同意设置和其他资源同意设置的当前配置。

# only exclude user consent policy
$body = @{
    "permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
        "managePermissionGrantsForOwnedResource.{other-current-policies}" 
    )
}
Update-MgPolicyAuthorizationPolicy -BodyParameter $body

若要允许用户同意,请选择应由哪个应用同意策略来管理用户向应用授予同意的授权。 确保在更新集合时同意策略 (PermissionGrantPoliciesAssigned) 包括其他当前 ManagePermissionGrantsForOwnedResource.* 策略(如果有)。 这样,便可维护用户同意设置和其他资源同意设置的当前配置。

$body = @{
    "permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
        "managePermissionGrantsForSelf.{consent-policy-id}",
        "managePermissionGrantsForOwnedResource.{other-current-policies}"
    )
}
Update-MgPolicyAuthorizationPolicy -BodyParameter $body

{consent-policy-id} 替换为要应用的策略的 ID。 可以选择已创建的 自定义应用同意策略 ,也可以从以下内置策略中进行选择:

身份证件 说明
微软用户默认低级 允许用户同意来自经过验证的发布者的应用具有所选权限
仅针对经过验证的发布者提供的应用以及在你的租户中注册的应用允许有限用户同意,并只授予你分类为“低影响”的权限。 (请记得 对权限进行分类 ,以选择允许用户同意的权限。
微软用户默认遗留 允许用户同意应用
此选项允许所有用户同意任意应用程序的任意权限,而无需管理员同意

例如,如果要根据内置策略 microsoft-user-default-low 启用用户同意,可以运行以下命令:

$body = @{
    "permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
        "managePermissionGrantsForSelf.managePermissionGrantsForSelf.microsoft-user-default-low",
        "managePermissionGrantsForOwnedResource.{other-current-policies}"
    )
}

使用 Graph 资源管理器 选择哪个应用同意策略可控制应用程序的用户同意。 需要以 特权角色管理员身份登录。

若要禁用用户同意,确保在更新集合时同意策略 (PermissionGrantPoliciesAssigned) 包括其他当前 ManagePermissionGrantsForOwnedResource.* 策略(如果有)。 这样,便可维护用户同意设置和其他资源同意设置的当前配置。

PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
   "defaultUserRolePermissions": {
       "permissionGrantPoliciesAssigned": [
           "managePermissionGrantsForOwnedResource.{other-current-policies}"
        ]
    }
}

若要允许用户同意,请选择应由哪个应用同意策略来管理用户向应用授予同意的授权。 确保在更新集合时同意策略 (PermissionGrantPoliciesAssigned) 包括其他当前 ManagePermissionGrantsForOwnedResource.* 策略(如果有)。 这样,便可维护用户同意设置和其他资源同意设置的当前配置。

PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy

{
    "defaultUserRolePermissions": {
        "managePermissionGrantsForSelf.{consent-policy-id}",
        "managePermissionGrantsForOwnedResource.{other-current-policies}"
   }
}

{consent-policy-id} 替换为要应用的策略的 ID。 可以选择已创建的 自定义应用同意策略 ,也可以从以下内置策略中进行选择:

身份证件 说明
微软用户默认低级 允许用户同意来自经过验证的发布者的应用具有所选权限
仅针对经过验证的发布者提供的应用以及在你的租户中注册的应用允许有限用户同意,并只授予你分类为“低影响”的权限。 (请记得 对权限进行分类 ,以选择允许用户同意的权限。
微软用户默认遗留 允许用户同意应用
此选项允许所有用户同意任意应用程序的任意权限,而无需管理员同意

例如,如果要根据内置策略 microsoft-user-default-low 启用用户同意,请使用以下 PATCH 命令:

PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy

{
    "defaultUserRolePermissions": {
        "permissionGrantPoliciesAssigned": [
            "managePermissionGrantsForSelf.microsoft-user-default-low",
            "managePermissionGrantsForOwnedResource.{other-current-policies}"
        ]
    }
}

提示

若要允许用户请求管理员审查和批准不允许用户同意的应用程序, 请启用管理员同意工作流。 例如,你可以在用户同意已禁用或应用程序请求用户不被允许授予的权限时执行此操作。

后续步骤