授权Oauth2对PowerBI用户

时间:2015-08-28 05:34:42

标签: oauth-2.0 azure-active-directory powerbi

我正在构建一个示例ASP.NET 5(vNext)Web应用程序,以通过Power BI API代表PowerBI用户。

我按照所有步骤here注册我的应用程序,我有ClientId。 该应用已添加到我的Azure Active Directory realavaloro.onmicrosoft.com

我的网络应用程序能够将用户重定向到权限https://login.windows.net/common/oauth2/authorize/,作为response_typeclientIdresourceredirect_uri

 "response_type": "code"
 "resourceUri":  "https://analysis.windows.net/powerbi/api",
 "clientId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
 "redirectUri": "http://localhost:59136/"

浏览器已正确重定向到Microsoft页面,用户输入其Power BI凭据。如果经过身份验证,则会使用代码+ session_state

将其重定向到redirect_uri

问题是我不完全理解这种机制.. :)

如果我使用我的PowerBI测试帐户凭据(diego @ realavaloro.onmicrosoft.com ),则验证成功,并且使用代码+ session_state正确重定向浏览器

但是,如果我尝试使用其他PowerBI凭据进行身份验证,例如joe@companyb.com,则无法使用错误请求消息进行身份验证: AADSTS70001: Application with identifier 408c866f-ad71-4354-b9fd-c954cae84dd7 was not found in the directory companyb.com

我认为任何拥有PowerBI帐户的用户都可以通过我们的网络应用程序通过我们的网络应用程序获得许可的API使用他的PowerBI帐户。

但似乎如果我们希望通过此方法实现这一点每个用户都需要自己的Azure Active Directory进行身份验证

这里有什么我想念的吗?

是否有任何选项允许我们的应用程序代表任何Power BI用户?

谢谢!

PS:我按照https://github.com/PowerBI/getting-started-web-app-asp.net

的指南制作了我的测试网络应用程序

1 个答案:

答案 0 :(得分:1)

我会自己回答。我的Web应用程序无法使用其Power BI凭据对外部用户进行身份验证的原因是(呃!)因为我没有在Azure AD中将我的Web应用程序配置为多租户

感谢这个精彩的演讲https://channel9.msdn.com/Events/Ignite/2015/BRK3551我找到了一些很好的答案,包括多租户的含义:)

我仍然需要调查Azure库来管理所有这些身份验证标头并让我了解OAuth2,但至少我现在可以说该身份验证适用于外部用户。