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を使うことです。
よろしくお願いします。
あなたの回答
tips
プレビュー