请求需要征得管理员同意的权限

在本文中,我们将介绍你作为开发人员编写应用代码来请求需要管理员同意的应用程序权限时的权限和同意体验。 权限和同意对话框,以及 Microsoft Entra 管理中心的示例屏幕截图可让你了解用户和租户管理员的体验。 改进与管理员的协作,以在应用程序中实现最低特权“零信任”原则。

在开发应用程序时,你要编写代码,通过请求具有特定作用域(或权限)的访问令牌来请求对资源的访问权限。 如 OAuth 2.0 标准中所述,可以使用作用域参数,也有人称其为权限。 资源所有者授予或拒绝权限请求。 在 Microsoft Entra ID 中,资源所有者是应用的用户,或是有权代表所有用户向该资源授予同意的管理员。

当应用程序请求访问资源的权限时,用户可能会看到“请求的权限”对话框,类似于此示例。

“请求的权限”对话框的屏幕截图,其中描述了应用正在使用“取消”和“接受”按钮请求的权限。

在上面的示例对话框中,用户通过选择“接受”来同意允许应用代表他们读取数据,或者通过选择“取消”来拒绝请求。 应用程序收到访问令牌,并且可以在用户授予同意后继续其进程。 请记住,确保应用在未收到令牌时已准备就绪,能够正常完成处理。

对于某些访问请求,只有管理员才能给予同意。 如果请求的访问权限很高,或涉及的资源所有者不是当前用户,则应编写代码,规定只有管理员才能批准请求。

但是,你永远不知道哪些权限需要管理员同意,哪些权限允许普通用户授予同意,因为租户管理员可以为其租户配置“不允许用户同意”(所有权限都需要管理员同意),如 Microsoft Entra 管理中心“用户同意设置”的以下示例屏幕截图所示。

Microsoft Entra 管理中心“用户同意设置”的屏幕截图,其中配置了应用程序访问组织数据的同意。

管理员还可以针对选定的权限,允许用户同意使用来自已验证发布者的应用,如以下“Microsoft Entra 管理中心”中“用户同意设置的示例截图所示。

Microsoft Entra 管理中心“用户同意设置”的屏幕截图,其中配置了已验证发布者的应用同意。

然后,管理员添加用户可以同意的权限,如以下示例屏幕截图中 Microsoft Entra 管理中心的权限分类所示。

Microsoft Entra 管理中心“权限分类”的屏幕截图,其中配置了允许用户同意的权限分类。

当应用请求需要管理员同意的权限(按设计或管理员配置)时,用户可能会看到“需要管理员批准”对话框,类似于此示例。

“需要管理员批准”对话框的屏幕截图,其中显示了管理员如何授予请求的权限。

上述示例对话框显示了需要管理员同意的权限的默认(开箱即用)体验。 大多数用户不知道在此场景中要执行的操作。 他们不知道自己的管理员是谁,也不知道找谁审批。 这种不确定性可能会限制用户实现所需结果的能力。

为了改进权限和同意体验,租户管理员可以配置管理员同意工作流,如以下示例屏幕截图中“Microsoft Entra 管理中心”的“用户设置”所示。

Microsoft Entra 管理中心“用户设置”的屏幕截图,其中配置了“管理员同意请求。”

在“管理员同意请求”中,租户管理员可以在“用户可以请求管理员同意他们无法同意的应用”上选择“是”并配置其他“管理员同意请求”设置,从而改进用户的权限和同意体验。

租户管理员在“用户可以请求管理员同意他们无法同意的应用”上选择“是”,并且应用程序请求需要管理员同意的权限之后,用户会看到类似于下面的“需要审批”对话框,从而提供更好的用户体验。

“需要审批”对话框的屏幕截图,其中描述了应用正在请求的权限,其中文本字段为“输入请求此应用的理由。”

在上例对话框中,用户可以在选择“请求批准”之前输入申请此应用程序的理由。 然后,审批请求将进入“管理员同意请求”队列(如以下示例屏幕截图中所示),管理员可以在这里根据风险配置文件选择查看、接受或禁止其组织中的应用程序。

Microsoft Entra 管理中心“管理员同意请求”的屏幕截图,其中配置了挂起请求。

如果没有在 Microsoft Entra 管理中心中配置同意,当管理员运行需要管理员同意的应用程序时,管理员用户会看到“请求的权限”对话框,类似于以下示例。

“请求的权限”对话框的屏幕截图,其中描述了应用正在请求的权限,其中复选框用于切换“代表组织同意。”

在上面的示例中,管理员会看到应用程序请求的权限说明。 管理员可以选择“接受”以单独运行应用程序,也可以在选择“接受”之前,代表组织选择“同意”。 管理员向组织授予同意后,除非管理员移除租户“管理员同意请求”配置中的同意,否则将来的组织用户无需再为此应用程序授予权限。

授予租户管理员同意的另一种方法是通过 Microsoft Entra 管理中心的“权限”配置,管理员可以在这里查看以前请求的应用权限的详细信息。

Microsoft Entra 管理中心“权限”的屏幕截图,其中显示了现有应用程序请求的详细信息。

在上述用户同意示例中,管理员可以查看应用的已授予权限,以及有关声明、权限类型和同意者的信息。 管理员可以选择“管理员同意”,以查看需要管理员同意的授予的权限。

最佳应用程序权限策略是在注册应用时提前声明应用可能需要或请求的所有权限。 无需同时请求所有权限,但在声明应用可能需要的所有权限后,管理员可以在租户中的应用配置中选择“授予管理员同意”,以显示类似于此示例的对话框。

“请求的权限 为组织审核”对话框的屏幕截图,其中描述了应用正在使用“取消”和“接受”按钮请求的权限。

上面的示例显示了管理员如何预先同意你声明的权限,并为用户和租户管理员提供最佳体验。

提前请求管理员同意是业务线应用 (LOB) 应用的绝佳选择,尤其是组织正在开发的应用。 通过预先同意这些应用程序,无需询问你的用户是否可以访问贵公司的数据,这样会轻松很多。 你在应用注册过程中发出管理员同意请求。

后续步骤