在单个授权请求中访问多个资源

时间:2019-08-09 05:40:13

标签: angular azure-active-directory powerbi microsoft-graph adal

当前,在SPA应用程序( Angular 8 )上,我们正在授权用户使用Microsoft的“ OAuth 2.0隐式授予类型”通过ADAL服务。

加载应用程序后,将使用单个环境配置来初始化Adal服务。因此,在获取令牌时,它会使用加载的配置。

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

  1. API资源
  2. Power BI资源

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

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

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

请提出我们该如何处理。

等待您宝贵的回应方法。

1 个答案:

答案 0 :(得分:2)

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

答案:很遗憾,您不能这样做。当您请求令牌时,所有$json = @" { "Job1": [ { "Name": "Ram", "Location" : "India" }, { "Name": "Anthony", "Location": "London" }, { "Name": "Elena" , "Location": "Zurich" } ], "Job2": [ { "Build" : "fail", "Anthony" : "right", "Sam" : "left" }]} "@ | convertfrom-json foreach ($obj in $json.Job1) { $key = $obj.Name $values = [PSCustomObject][ordered]@{Key = $key; Value = $obj."$key" } $values } 身份验证流程都不允许多个Microsoft Provided

您将遇到流动错误。

  

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

enter image description here

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

enter image description here

有关更多详细信息,您可以查看official docs