PowerBI AADSTS90002:未找到租户授权

问题描述 投票:6回答:4

参考:Power BI Sample Solution

我已将示例解决方案中的必要代码移至我的解决方案,并在进行身份验证时给出以下错误:

AADSTS90002:未找到租户授权。如果租户没有有效订阅,则可能会发生这种情况。请咨询订阅管理员。

我用这两行进行身份验证:

 var authenticationContext = new AuthenticationContext(AuthorityUrl);
 var authenticationResult = await authenticationContext.AcquireTokenAsync(ResourceUrl, ApplicationId, credential);

错误发生在最后一行。以下是我的web.config中的值:

<add key="authorityUrl" value="https://login.windows.net/common/oauth2/authorize/" />
<add key="resourceUrl" value="https://analysis.windows.net/powerbi/api" />

同样,这在示例应用程序中100%工作,但在我移动到我的应用程序时却不能。有什么想法吗?

在此先感谢您的帮助。

c# powerbi-embedded
4个回答
15
投票

经过一些研究后我发现它与以下nuget包的版本有关:

Microsoft.IdentityModel.Clients.ActiveDirectory
Microsoft.PowerBI.Api

需要使用以下版本:

Microsoft.IdentityModel.Clients.ActiveDirectory v3.13.9
Microsoft.PowerBI.Api V2.0.12

它似乎与使用的端点有关。如果您降级到上面的版本(与提供的示例工具中使用的版本相同),那么它可以正常工作。

最新版本使用类似这样的:https://login.microsoftonline.com/common/,其中版本提供相同的用途:https://login.windows.net/common/oauth2/authorize/

一旦我“降级”了我的版本,就进行了身份验证!

希望这有助于其他人。


8
投票

在我的情况下,我没有降级Microsoft.IdentityModel.Clients.ActiveDirectory,我改变了https://login.windows.net/{My tenant}/oauth2/tokento https://login.microsoftonline.com/{My tenant}的认证终点,解决了这个问题。


2
投票

通过将程序集“Microsoft.IdentityModel.Clients.ActiveDirectory”还原为版本= 3.13.9.1126来解决。

使用此程序集的最新版本引发了此问题。版本= 4.4.0.0


2
投票

是的,所有的答案都是正确的,我只是想说明为什么它在低版本而不是在新版本中工作

根据official doc,这是微软更好的权限验证更新

在AuthenticationContext的构造函数中设置权限时,ADAL.NET 4.x也不如ADAL 3.x宽容。对于Azure AD v1.0,有效权限应为:

© www.soinside.com 2019 - 2024. All rights reserved.