OAuth2を使用してExchangeメールボックスにアクセスしようとしていますが、OAuthプロトコルに問題があります。私はlibcurlを使って直接httpコールを行うだけで、ライブラリを使用していません。今、私がアクセストークンを取得するためにそれを使用しようとしている、私は成功した認証コードを取得しているExchangeでOAuth2を使用してアクセストークンを取得できません
:私はここで見つけるのドキュメントを使用しています。返されるjsonの応答は、 "無効な許可、送信データパーサーの失敗:認証コードが不正または無効です。"です。このURLを
スタートIE:認証コードの取得
:HTTPエラー以下は400が全体の私が生成てる流れである。この時点で
https://login.microsoftonline.com/common/oauth2/authorize?client_id=38f1da80-9f80-4ff6-84a8-27c83d7212d3&redirect_uri=https%3A%2F%2Flogin.microsoftonline.com%2Fcommon%2Foauth2%2Fnativeclient&resource=https%3A%2F%2Foutlook.office.com%2F&response_type=code&scope=openid+Mail.ReadWrite
、ユーザーが提示されますMicrosoftのログイン画面。彼は信任状を入力し、要求されたスコープへのアクセスを承認するよう求められます。彼はそうする。次に、リダイレクトURLで、我々はデータを受け取る:
https://login.microsoftonline.com/common/oauth2/token
:アプリケーションがこのURLにポストした後、 "=コード" の後にデータを抽出:
https://login.microsoftonline.com/common/oauth2/nativeclient?code=AQABAAIAAAA9kTklhVy7SJTGAzR-p1BcUmXu0izUoOslqxHN85yR0vAVKicFVbtjs3IsKScxeBuTmxBsVy8qT3axn5YaDt_O6M4YVcAk--kpJ-dnNbKtnovjHIxGwtdRawo53UU9u19YP5ST5a8Ekffnxh0Z2gbBM_sKbmbhx2E-y_xs1spgV8gF6im39tLWo
は、トークンを取得します
このデータ:HTTP ER内
grant_type=authorization_code&client_id=38f1da80-9f80-4ff6-84a8-27c83d7212d3&code=AQABAAIAAAA9kTklhVy7SJTGAzR-p1BcUmXu0izUoOslqxHN85yR0vAVKicFVbtjs3IsKScxeBuTmxBsVy8qT3axn5YaDt_O6M4YVcAk--kpJ-dnNbKtnovjHIxGwtdRawo53UU9u19YP5ST5a8Ekffnxh0Z2gbBM_sKbmbhx2E-y_xs1spgV8gF6im39tLWo&redirect_uri=https%3A%2F%2Flogin.microsoftonline.com%2Fcommon%2Foauth2%2Fnativeclient&resource=https%3A%2F%2Foutlook.office.com%2F
この投稿結果ROR 400、および返されたデータは次のとおりです。
{"error":"invalid_grant","error_description":"AADSTS70000: Transmission data parser failure:Authorization Code is malformed or invalid....}
誰も私が何をやったかを見て、私は間違って行くよどこ示唆することはできますか?私は、Shawnが提案したPowershellスクリプトを実行しようとしました。このスクリプトは既存のアプリケーションIDを使用し、ADALを使用して認証コードとトークンを取得します。これはうまくいくように思えたので、Azureのアプリケーション設定ではなく、私のコードに問題があると思われます。
ご意見ありがとうございます。私は、アプリケーション登録ポータルとAzure管理ポータルの両方で行った登録を使用して、両方のエンドポイントを試しています。私のテストでは、実際にAzureポータルで作成されたアプリケーションで2.0以外のエンドポイントを使用しました。まだ動かない。私は「リソース」を追加しようとしましたが、オプションとも言えます。 Azureでサポートケースを開いた場合、私はこの問題を解決することができますか?非常に多くの可動部分があります - 私はいくつかの詳細なコンサルティングが必要だと思っています。 –
こんにちはジェフ、あなたが別のものを試したならば、あなたはそれらの異なるステップで得られる特定のエラーメッセージと結果を投稿する必要があります。これらの詳細がなければ、状況をデバッグするのは難しいです。 ** right **エンドポイントを使用して元のメッセージを更新することができ、その結果としてエラーが発生した場合は、多くの手助けをします。また、私たちは[GitHub here](https://github.com/azure-samples)でサンプルを終わらせるために、完全な作業終了が必要です。 –
OK、投稿内容と場所を正確に反映するように元の投稿を編集しました。 –