web-dev-qa-db-ja.com

ユーザーまたは管理者がアプリケーションの使用に同意していません-このユーザーとリソースにインタラクティブな認証リクエストを送信してください

this CRM Web APIプロジェクトを行っています。プロジェクトはDynamics CRMオンラインインスタンスにログインし、アカウントのリストを取得します。

ログインは正常に行われているようです。ただし、アカウントリストには以下のエラーが表示されます。

AADSTS65001:ユーザーまたは管理者は、ID 'xxxx-xxxxx-xxxx-xxx'のアプリケーションの使用に同意していません。このユーザーとリソースの対話型承認リクエストを送信します。トレースID:e3b360d6-39fb-4e61-87d9-26531f30fd7b相関ID:9b2cff0c-074e-44fe-a169-77c8061a7312タイムスタンプ:2016-10-18 10:12:49Z

許可が適切に設定されている

Azure permissions

何が問題ですか?

19
student

管理者は許可に同意する必要があります。パラメーターPrompt=admin_consentを含むAzure ADに承認要求を行う必要があります。

ドキュメント here のように、Promptパラメーターには3つの値を指定できます:ログイン、同意、またはadmin_consent。

したがって、 https://login.microsoftonline.com/tenant-id/oauth2/authorize?client_id=app-client-id&redirect_uri=encoded-reply-url&response_type=code&PromptなどのURLに移動する必要があります= admin_consent

tenant-idをAzure ADテナントID /ドメイン名に置き換えるか、commonアプリがマルチテナントの場合。 app-client-idをアプリのクライアントIDに置き換えます。 encoded-reply-urlをアプリのURLエンコードされた返信URLに置き換えます。

必要なURLを作成する簡単な方法は、認証を通過し、Azure ADにアクセスしたときにアドレスバーでURLを取得することです。次に、&Prompt=admin_consentをURLに追加します。

編集:Azureポータルの最新の更新では、ポータルから直接アクセス許可を付与する機能が追加されました。

新しいポータルでAzure Active Directoryにアクセスする場合は、そこにあるアプリの登録を見つけて、[必要なアクセス許可]ブレードの下のアクセス許可の付与をクリックします。

New Grant Permissions button

32
juunas

ADALを使用するネイティブアプリケーションでこのエラーが発生していました。すべての正しいアクセス許可を与えましたが、以前のサインインからトークンを既に受け取っていました。私の問題は、以前のトークンが古く、更新されたクレームが含まれていないことでした。私にとっての解決策は、以下のコードに従ってPromptBehavior.RefreshSessionを使用することでした。

   AuthenticationResult result = await authenticationContext.AcquireTokenAsync(resourceId, clientId, redirectURI, new PlatformParameters(PromptBehavior.RefreshSession, false));

[〜#〜] msdn [〜#〜] により、PromptBehavior.RefreshSession "(webviewの表示を通じて)リソースの使用を再認証し、結果のアクセストークンに更新されたクレームが含まれていることを確認します。ログオンCookieを使用できます。ユーザーは再度資格情報の入力を求められることはなく、ログオンダイアログは自動的に閉じられます。」

4
msplants

私にとって、このエラーは突然発生したものであり、少数のユーザーのみに発生しました。

私の設定は、SPAアプリがAPIにアクセスしようとしたことです。 SPAアプリの登録からAPI権限を削除し、再度追加しました。出来た。

2
J Santosh

[〜#〜] all [〜#〜]許可を与えます。複数のドロップダウンがあります(スクリーンショットに表示されているようなもの)。

各ドロップダウン項目には、異なる資格情報を参照する複数のチェックボックスがあります。それぞれを確認し、あなたはオーケーです。

0
bigbooz