我来自 AWS,在那里设置 cognito 来管理用户并获取用户名/密码、对其进行身份验证并返回令牌非常简单。我期望将用户名和密码从邮递员发送到端点,并接收令牌,仅此而已。我一直试图找到如何在 Azure 中简单地执行此操作的解释,但尚未找到。谁能给我指出一个好的简单的解决方案?
我尝试过使用应用服务的内置身份验证。它确实设置正确,并按预期 401 我的请求,但我找不到明确说明如何获取令牌然后放置我的授权标头来调用端点的文档。
user.read
)。使用以下 Python(或等效)代码通过 OAuth 2.0 ROPC 流程获取访问令牌。
import requests
token_url = "https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/token"
token_data = {
'grant_type': 'password',
'client_id': 'YOUR_CLIENT_ID',
'client_secret': 'YOUR_CLIENT_SECRET',
'resource': 'https://graph.microsoft.com',
'scope': 'user.read',
'username': 'YOUR_USERNAME',
'password': 'YOUR_PASSWORD'
}
token_r = requests.post(token_url, data=token_data)
token = token_r.json().get('access_token')
将占位符(
YOUR_TENANT_ID
、YOUR_CLIENT_ID
等)替换为您的实际值。
现在,在
Authorization
标头中使用此令牌进行 API 调用:
headers = {'Authorization': f'Bearer {token}'}
response = requests.get('YOUR_API_ENDPOINT', headers=headers)
注意:一般不建议新应用程序使用 OAuth 2.0 ROPC,并且不支持具有多重身份验证 (MFA) 的帐户。
就是这样。这应该会为您提供一个令牌,您可以在
Authorization
标头中使用该令牌来验证您的 API 请求。