你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft 标识平台同意框架

多租户应用程序允许用户帐户从 Azure AD 租户(应用最初注册的租户除外)登录。 Microsoft 标识平台同意框架使这些其他租户中的租户管理员或用户能够同意(或拒绝)应用程序对其资源的访问权限请求。

例如,Web 应用可能要求对 Microsoft 365 中用户的日历进行只读访问。 标识平台的同意框架会允许发出提示,要求用户同意应用对其日历的读取权限请求。 如果用户同意,应用程序可以代表他们调用 Microsoft Graph API 并获取他们的日历数据。

以下步骤说明应用程序开发人员和用户如何使用同意体验。

  1. 假设某个 Web 客户端应用程序需要请求资源/API 的特定访问权限。 下一部分将介绍如何执行此配置,但实质上,配置时需使用 Azure 门户来声明权限请求。 这些配置与其他配置设置一样,将会成为应用程序的 Azure AD 注册的一部分:

    Permissions to other applications

  2. 考虑已更新应用程序的权限,该应用程序正在运行,并且某个用户即将首次使用该应用程序。 首先,应用程序需要从 Azure AD 的 /authorize 终结点获取授权代码。 然后,可以使用该授权代码获取新的访问令牌和刷新令牌。

  3. 如果用户尚未经过身份验证,Azure AD 的 /authorize 终结点会提示用户登录。

    User or administrator sign in to Azure AD

  4. 用户登录后,Azure AD 将决定是否要向该用户显示同意页。 此决定基于该用户(或其组织的管理员)是否已授予应用程序许可。 如果尚未授予许可,Azure AD 会提示用户授予许可,并显示运行该应用程序所需的权限。 许可对话框中显示的权限集与在 Azure 门户中的“委托权限” 中选择的权限集相匹配。

    Shows an example of permissions displayed in the consent dialog

  5. 用户授予许可后,授权代码会返回到应用程序,应用程序可凭此获取访问令牌和刷新令牌。 有关此流的详细信息,请参阅 OAuth 2.0 授权代码流

  6. 作为管理员,还可以代表租户中的所有用户同意应用程序的委派权限。 管理许可可防止针对租户中的每个用户显示许可对话框,可通过具有管理员角色的用户在 Azure 门户中执行。 若要了解哪些管理员角色可以同意委托的权限,请参阅 Azure AD 中的管理员角色权限

    同意应用的委托权限

    1. 转到应用程序的“API 权限” 页

    2. 单击“授予管理员同意” 按钮。

      Grant permissions for explicit admin consent

    重要

    使用 MSAL.js 的单页应用程序 (SPA) 目前要求使用“授予权限”按钮授予显式许可。 否则,在请求访问令牌时应用程序会失败。

后续步骤

请参阅如何将应用转换为多租户应用