web-dev-qa-db-ja.com

PowerBI AADSTS90002:テナント許可が見つかりません

リファレンス:Power BIサンプルソリューション

必要なコードをサンプルソリューションから自分のソリューションに移動しました。認証時に次のエラーが表示されました。

AADSTS90002:テナント許可が見つかりません。これは、テナントのアクティブなサブスクリプションがない場合に発生する可能性があります。サブスクリプション管理者に確認してください。

私はこれらの2行で認証しています:

 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%動作しますが、アプリに移動しても動作しません。なぜアイデアがありますか?

助けてくれてありがとう。

7
AxleWack

いくつかの調査の結果、次の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/

バージョンを「ダウングレード」すると、認証されました!

これが他の人の助けになることを願っています。

15
AxleWack

私の場合、Microsoft.IdentityModel.Clients.ActiveDirectory、認証エンドポイントをhttps://login.windows.net/{My tenant}/oauth2/tokento https://login.microsoftonline.com/{My tenant}問題を解決しました。

10
Amir Chatrbahr

アセンブリ「Microsoft.IdentityModel.Clients.ActiveDirectory」をバージョン= 3.13.9.1126に戻すことで解決しました。

このアセンブリの最新バージョンを使用すると、この問題が発生しました。バージョン= 4.4.0.0

2
Kaushal Khamar

はい、すべての答えは正しいです。新しいバージョンではなく、低いバージョンで動作している理由など、いくつかの点に注目したいだけです。

公式ドキュメント に従って、これはMicrosoftからのより良い権限検証アップデートです

ADAL.NET 4.xは、AuthenticationContextのコンストラクターで権限を設定するときにADAL 3.xよりも寛容ではありません。有効な機関は、Azure AD v1.0の場合:

2
Jayendran