Power BI始终返回403禁止

时间:2019-08-02 21:30:41

标签: azure azure-active-directory powerbi

我正在尝试开发一个利用Power BI API的应用程序。

问题是,即使我具有有效的身份验证令牌,到目前为止,我尝试访问的每个API端点都返回403(禁止访问)Http状态,响应主体上没有内容。

我认为我获得的令牌是有效的,因为第二天当我尝试使用相同的令牌时,它会给我一个“令牌过期消息”。

我使用的不是公司管理员的Azure Azure Active Directory帐户。但是我可以完全访问Power BI工作区和web interface上的报告。

我目前正在使用Azure AD Oatuh2 v1进行身份验证,但是我也尝试了v2,但没有成功(我仍在使用v1,因为在v2上我不确定我的范围和资源参数是否正确)。

以下是我发送的请求:

GET
https://login.microsoftonline.com/{tenant}/oauth2/authorize?
client_id=<my client id>
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%3A8080/azureLogin/authorize
&response_mode=query

localhost:8080/azureLogin/authorize上的重定向中获取授权代码,然后

POST https://login.microsoftonline.com/{tenant}/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=<my client id>
&code=<the code I just got>
&redirect_uri=http%3A%2F%2Flocalhost%3A8080/azureLogin/authorize
&client_secret=<my client secret>

作为“租户”,我同时尝试了“ common”和我的组织ID。

但是当我尝试使用https://api.powerbi.com/v1.0/myorg/reports标头访问Authorization: Bearer <token>时。我收到403禁止响应。

在Azure AD上,我可以看到我的用户已授予我注册的该应用程序的所有权限。

我想念什么吗?我该怎么解决?

1 个答案:

答案 0 :(得分:1)

为使答案对其他人可见,我在注释中总结了答案:

您错过了resource参数,您正在访问powerbi,因此应该是

resource: https://analysis.windows.net/powerbi/api

资源是目标Web API(安全资源)的应用ID URI。它也可能是外部资源,例如https://graph.microsoft.comhttps://analysis.windows.net/powerbi/api等。在授权或令牌请求之一中,这是必需的。