0

承認コードをdocumented hereとしてリクエストしようとしています。私は上記のコードを実行したときにAzureアクセストークンリクエスト返信HTML

import requests 
auth_endpoint = 'https://login.microsoftonline.com/%s/oauth2/authorize?api-version=1.0' % TENANT_ID 

payload = { 
    'client_id': CLIENT_ID, 
    'response_type': 'code', 
    'resource': APP_ID_URI, 
    'redirect_uri': REPLY_URL 
} 
response = requests.get(url=auth_endpoint, data=payload) 

は、しかし、私は身体に戻ってHTMLを取得していない私は期待してい応答:私は、Pythonを使用しています は、この操作を行うと、以下の例のコードを持っているパッケージを要求します。 HTMLコードはログインページ用のようです。 フォーマット済みのエンドポイントURIをブラウザに接続すると、リダイレクトURIから認証コードを取得できます。しかし、依頼パッケージを使用している間に応答の本文からこれを取得する方法はありますか?

+1

'params = payload'を試しましたか?それとも、ポストの意味ですか? –

+0

認可コード許可フローにはユーザーの操作が必要です。つまり、URLを作成してWebブラウザに配置し、ユーザー名とパスワードでログインし、リダイレクトURLで認証コードを取得する必要があります。アクセストークンのみが必要な場合は、認証コード許可フローを使用する必要はありません。認証コードの代わりにクライアントの資格情報を試すことができます。 –

答えて

1

リクエストモジュールのセッションクラスを使用して要件を実装してください。次のコードサンプルを参照してください。

import requests 

s = requests.Session() 
USERNAME = '<username_email>' 
PASSWORD = '<userpassword>' 
s.auth = (USERNAME, PASSWORD) 
TENANT_ID = '<tenant_id>' 
# Authorize URL 
authorize_url = 'https://login.microsoftonline.com/%s/oauth2/authorize' % TENANT_ID 
# Token endpoint. 
token_url = 'https://login.microsoftonline.com/%s/oauth2/token' % TENANT_ID 

payload = { 'response_type': 'code', 
      'client_id': '<tenant_id>', 
      'redirect_uri': 'http://localhost', 
      'authority' :'authority' 
      } 

response = s.get(authorize_url, params=payload ,allow_redirects=True) 
print response 
print response.url 

さらに詳しいことがあれば教えてください。

関連する問題