我有一个与 Azure AD 中的 Yammer 集成的现有自定义应用程序。在此应用程序中,我利用
user_impersonation
委派权限来获取在 Yammer 网络上发布的数据。此外,我的应用程序请求 Sites.Read.All
权限来访问 Yammer 中共享的 SharePoint 附件。
我当前的流程包括:
user_impersonation
的访问令牌https://login.microsoftonline.com/common/adminconsent?client_id=6731de76-14a6-49ae-97bc-6eba6914391e&state=12345&redirect_uri=http://localhost/myapp/permissions.
我稍后将使用此同意来获取访问令牌
Sites.Read.All
通过客户端凭证流程。
但是,我注意到,当管理员授予同意时,它会将同意范围扩展到 Azure AD 应用程序中配置的所有权限。我最近发现了一个用于管理员同意的 v2 端点,我可以在其中传递同意 URL 中的范围列表。虽然委派的“user_impersonation”权限足以访问 Yammer 网络中的所有数据,但我注意到,在管理员同意的情况下,我似乎获得了额外的权限。
鉴于此设置,管理员同意对我现有的自定义应用程序中的
user_impersonation
委托权限可能有何影响?
我创建了一个 Azure AD 应用程序并添加了 API 权限:
为了授予管理员同意,我使用了以下端点:
https://login.microsoftonline.com/common/adminconsent?client_id=ClientID&state=12345&redirect_uri=https://jwt.ms
授予 API 权限的管理员同意:
对于示例,如果您不需要某个API权限,您还可以撤销管理员同意,如下所示:
注意:管理员同意使管理员能够代表所有租户用户向应用程序授予权限。
user_impersonation
委派权限使应用程序能够代表用户连接到 Yammer 网络并访问所有 Yammer 数据。Sites.Read.All
权限。参考: