angular - 在单个授权请求中访问多个资源
问题描述
目前,在 SPA 应用程序 ( Angular 8 ) 上,我们正在使用 ADAL 服务使用 Microsoft 的“ OAuth 2.0 Implicit Grant Type ”授权用户。
加载应用程序时,Adal 服务使用单一环境配置进行初始化。因此,在获取令牌时,它使用该加载的配置。
场景:现在我们有两个资源端点:
- API 资源
- Power BI 资源
解决方法:我们可以首先使用 Graph API 配置获取 API 资源的访问令牌,然后我们将加载 Power BI 配置以获取 Power BI 资源的访问令牌。
但是这里我们有一个主要问题:如果再次用户访问 API 资源,它必须再次加载 API 配置,并且再次提示用户登录。
方法一:我们可以将Microsoft graph API资源和Power BI资源都注册在同一个AD(Active Directory)下,这样两端的资源就可以使用同一个访问令牌访问(我不确定我们是否可以使用访问多个资源相同的访问令牌)。
请建议我们如何处理这个问题。
等待您的宝贵方法作为回应。
解决方案
问题: 我不确定我们是否可以使用同一个访问令牌访问多个资源?
答: 很遗憾,您不能这样做。当您请求令牌时,所有Microsoft Provided
身份验证流程都不允许多个。Resource/Scope
你会遇到流动错误。
AADSTS28000:为输入参数范围提供的值无效,因为它包含多个资源。
因此,您必须分别向每个资源/范围请求令牌。
有关更多详细信息,您可以查看官方文档