2016-01-13 35 views
15

Azure ADに対して正しく動作するようにOAuth2ワークフローを取得しようとしています。 https://login.microsoftonline.com/[app-endpoint-id]/oauth2/authorize?response_type=code&client_id=[client-id]&redirect_uri=[redirect-uri]Azure ADを使用したOAuth2 - ユーザーの同意を得ない

が、私はそのようにのようなのHTTP POSTでアクセストークンを要求するために認証コードを使用します。https://msdn.microsoft.com/en-us/library/azure/dn645542.aspx

は、私は正常にこの要求を使用して認証コードの応答を取得することができます。私はこのソースからの指示に従っています(私はポストマンを使用して、これをテストしてい):

POST/[アプリ-エンドポイント-ID] /のOAuth2 /トークンHTTP/1.1 ホスト:login.microsoftonline.com のCache-Control:キャッシュなし ポストマン・トークン: ed098281-9aa4-6e5f-915d-0253d9a876d3 のContent-Type:アプリケーションシートオン/ x-www-form-urlencodedで

grant_type = authorization_code & CLIENT_ID = [クライアントID] &コード= [authorization_code] & REDIRECT_URI = [REDIRECT_URI] & client_secret = [クライアント秘密] &資源= [APP- [エラー: "invalid_grant"、 "error_description": "AADSTS65001:ユーザーまたは管理者がIDを持つアプリケーションを使用することに同意していませんでした。" app-ID: id '。このユーザとリソースの対話許可要求を送信\ R \ nTrace ID:トレースジ\ R nCorrelation ID \:相関IDの\ rを\ nTimestamp:2016年1月13日17:18:39Z」、 "error_codes": [65001]、[タイムスタンプ]: "2016-01-13 17:18:39Z"、 "trace_id": "trace-id"、 "correlation_id": "相関ID"}

キャッシュをクリアすると認証コードの最初のリクエストを私がログインするようにリダイレクトするようにします。しかし、私はこのドキュメントの中で私がこのドキュメントの中で述べるようにログイン後に私のアプリケーションを認証する方法を得ません。

// azure。マイクロソフトのホームページhttp://www.microsoft.com/japan/technet/security/bulletin/ms08-0a2.mspxアクセストークン

+0

具体的に何をしようとしていますか?つまり、AADやモバイルアプリで動作するWebAPIアプリケーションをどの言語で入手しようとしていますか? – theadriangreen

+0

私はJavaでAADを扱うWebAPIアプリケーションを取得しようとしています。 – Spensaur

+0

私は同じ問題に直面していますが、私はPHPを使用しています。 –

答えて

9

実行している問題は、あなたのアプリケーションにアクセスするために使用しているテナントが、サポートされているアプリケーションのリストにアプリケーションを追加していないことです。インタラクティブなフローを管理者として使用するように指示しています。

同意は2段階のプロセスである:

1)まず、テナントの管理者がアプリを承認しなければなりません。これは、1)アプリを起動すると、あなたは、サインインアプリに対して管理者の資格情報を使用して、アプリまたは2)を使用することを希望するテナントのAzureのポータルのいずれかで行うことができAzureのポータル承認の

例:

2)第二に、任意の追加のユーザー(非管理者)は、管理者がアプリを使用することができることを承諾した後に初めてアプリを使用する際に、個々の情報については同意に昇格されます。

+0

ありがとう!何らかの理由で、私はアプリを作成したので私は管理者だったという印象を受けていましたが、私のポストは私が私がそうではなかったことを認識させました。私は実際に私がここに自分の質問を投稿する前に、私は管理者権限を持っていたと信じる前に、テナントアプリのAzureポータルでDelegatedパーミッションを与えました。 – Spensaur

+3

更新 - 私は管理者アカウントでログインできました。同意を求められました。その後、私はアクセストークンを取得しました。その同じ管理者アカウントで私はAzureポータルのアクセス許可をチェックし、テナントに許可が与えられていることを確認した。しかし、管理者以外のユーザーとアクセストークンを取得しようとすると、同じエラーが発生します。私はユーザーの割り当てが必要に設定されている必要があります。しかし、私は自分のユーザーアカウントを割り当てました。サインイン後に管理者以外のユーザーのアクセス許可のプロンプトを表示するには、何か特別な処理を行う必要がありますか? – Spensaur

+0

自分以外の管理者以外のユーザーアカウントを試してみます。次のメッセージが表示されます。申し訳ありませんが、署名に問題があります。不正なリクエストを受け取りました。その他の技術情報:AADSTS90093:この操作は、管理者のみが行うことができます。サインアウトして管理者としてサインインするか、組織の管理者に連絡してください。 – Spensaur

2

投稿リクエストにリソースを 'https://graph.windows.net'としてください。

それは私のために働いた。

+1

これは動作します。保護されたAPIで許可されたオーディエンスは、https://stackoverflow.com/questions/44466189/oauth2-resource-owner-password-grant-via-api/44539932#44539932のようにgraph.windows.netを含むように設定する必要があります – Sentinel

関連する問題