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

在本文中,你将了解如何配置用户同意应用程序的方式,以及如何对应用程序禁用以后所有的用户同意操作。

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

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

先决条件

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

提示

本文中的步骤可能因开始使用的门户而略有不同。

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

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

  2. 浏览到“标识”>“应用程序”>“企业应用程序”>“同意和权限”>“用户同意设置”。

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

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

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

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

连接到 Microsoft Graph PowerShell

使用所需的最小特权权限连接到 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 -AuthorizationPolicyId authorizationPolicy -BodyParameter $body

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

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

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

ID 说明
microsoft-user-default-low 允许用户同意来自经过验证的发布者的应用具有所选权限
仅针对经过验证的发布者提供的应用以及在你的租户中注册的应用允许有限用户同意,并只授予你分类为“低影响”的权限。 (请记住对权限进行分类,选择允许用户同意哪些权限。)
microsoft-user-default-legacy 对应用允许用户同意
此选项允许所有用户同意任意应用程序的任意权限,而无需管理员同意

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

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

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

若要禁用用户同意,确保在更新集合时同意策略 (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。 可以选择已创建的自定义应用同意策略,也可以从以下内置策略中选择:

ID 说明
microsoft-user-default-low 允许用户同意来自经过验证的发布者的应用具有所选权限
仅针对经过验证的发布者提供的应用以及在你的租户中注册的应用允许有限用户同意,并只授予你分类为“低影响”的权限。 (请记住对权限进行分类,选择允许用户同意哪些权限。)
microsoft-user-default-legacy 对应用允许用户同意
此选项允许所有用户同意任意应用程序的任意权限,而无需管理员同意

例如,如果要根据内置策略 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}"
        ]
    }
}

提示

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

后续步骤