質問するログイン新規登録

Q&A

0回答

323閲覧

OAuth 2.0のAPIが正しい応答を返してくれません。

masleisii

総合スコア10

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

2クリップ

投稿2017/12/05 08:31

0

2

OAuth 2.0のAPIが正しい応答を返してくれません。https://docs.microsoft.com/ja-jp/azure/active-directory/develop/active-directory-v2-protocols-oauth-code の「アクセス トークンを要求する」のAPIを叩くと、id_tokenとrefresh_tokenしか返ってこず、access_tokenが取得できません。また、refresh_tokenを利用して「アクセス トークンを更新する」を行っても、同じくid_tokenとrefresh_tokenしか返ってきません。

解決方法を教えてください。(「承認コードを要求する」までは成功済です。)

access_token取得のAPIは以下のようになります。

POST /{Azure Active DirectoryのテナントID}/oauth2/v2.0/token HTTP/1.1 Host: https://login.microsoftonline.com Content-Type: application/x-www-form-urlencoded client_id={https://apps.dev.microsoft.com/#/appListで設定したアプリのアプリID} &scope=openid%2Femail &code={authorize APIで取得したcode} &redirect_uri={https://apps.dev.microsoft.com/#/appListで設定したリダイレクト URL} &grant_type=authorization_code &client_secret={https://apps.dev.microsoft.com/#/appListで設定したアプリのアプリケーション シークレットパスワード}

pythonで以下のように実装しています。

python

1payload = { 2 'client_id': self.app_id, 3 'scope': 'openid email', 4 'code': code, 5 'redirect_uri': self.my_url, 6 'grant_type': 'authorization_code', 7 'client_secret': self.app_secret, 8 } 9token_response = requests.post( 10 self.token_url, 11 data=payload, 12 headers={'Content-Type': 'application/x-www-form-urlencoded'} 13 )

目的はaccess_tokenを取得してmicrosoft graph apiを使うことです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問