首页 > 解决方案 > 在单个授权请求中访问多个资源

问题描述

目前,在 SPA 应用程序 ( Angular 8 ) 上,我们正在使用 ADAL 服务使用 Microsoft 的“ OAuth 2.0 Implicit Grant Type ”授权用户。

加载应用程序时,Adal 服务使用单一环境配置进行初始化。因此,在获取令牌时,它使用该加载的配置。

场景:现在我们有两个资源端点:

  1. API 资源
  2. Power BI 资源

解决方法:我们可以首先使用 Graph API 配置获取 API 资源的访问令牌,然后我们将加载 Power BI 配置以获取 Power BI 资源的访问令牌。

但是这里我们有一个主要问题:如果再次用户访问 API 资源,它必须再次加载 API 配置,并且再次提示用户登录。

方法一:我们可以将Microsoft graph API资源和Power BI资源都注册在同一个AD(Active Directory)下,这样两端的资源就可以使用同一个访问令牌访问(我不确定我们是否可以使用访问多个资源相同的访问令牌)。

请建议我们如何处理这个问题。

等待您的宝贵方法作为回应。

标签: angularazure-active-directorypowerbimicrosoft-graph-apiadal

解决方案


问题: 我不确定我们是否可以使用同一个访问令牌访问多个资源?

答: 很遗憾,您不能这样做。当您请求令牌时,所有Microsoft Provided身份验证流程都不允许多个。Resource/Scope

你会遇到流动错误。

AADSTS28000:为输入参数范围提供的值无效,因为它包含多个资源。

在此处输入图像描述

因此,您必须分别向每个资源/范围请求令牌。

在此处输入图像描述

有关更多详细信息,您可以查看官方文档


推荐阅读