我正在尝试使用 Python 请求库访问 Azure AD Graph API。我的步骤是首先获取授权码。然后,使用授权码,我请求访问令牌/刷新令牌,最后查询 API。
当我通过浏览器时,我可以获得我的授权码。我复制它以获取访问令牌。但是,我无法对 Python 脚本做同样的事情。我被困在获得授权码的部分。
我的脚本返回 200 的响应代码,但响应标头不包含该字段。我希望带有代码的新 URL 位于响应标头中。我还期望响应代码为 301。
有谁知道为什么我的响应标头没有验证码?此外,给定身份验证代码,我将如何将其拉出然后使用 Python 获取访问/刷新令牌?
我的代码如下:
import requests
s = requests.Session()
s.auth = (USERNAME, PASSWORD)
# 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': CLIENT_ID,
'redirect_uri': REDIRECT_URI
}
request = s.get(authorize_url, json=payload, allow_redirects=True)
print request.headers