在 Azure 中,设置身份验证(即简单的用户名/密码输入、不记名令牌输出流程)的最佳方法是什么?

问题描述 投票:0回答:1

我来自 AWS,在那里设置 cognito 来管理用户并获取用户名/密码、对其进行身份验证并返回令牌非常简单。我期望将用户名和密码从邮递员发送到端点,并接收令牌,仅此而已。我一直试图找到如何在 Azure 中简单地执行此操作的解释,但尚未找到。谁能给我指出一个好的简单的解决方案?

我尝试过使用应用服务的内置身份验证。它确实设置正确,并按预期 401 我的请求,但我找不到明确说明如何获取令牌然后放置我的授权标头来调用端点的文档。

azure authentication azure-active-directory bearer-token
1个回答
0
投票

第 1 步:设置 Azure Active Directory

  1. 转到 Azure 门户。
  2. 创建新的 Azure AD(如果尚不可用)。

第 2 步:注册您的应用程序

  1. 导航到 Azure AD。
  2. 进入“应用程序注册”->“新注册”。
  3. 填写详细信息并点击“注册”。

第 3 步:获取客户端 ID 和客户端密钥

  1. 记下概述部分中的“应用程序(客户端)ID”。
  2. 转到“证书和机密”->“新客户端机密”并记下生成的机密。

第4步:配置API权限

  1. 在“API 权限”下,添加所需的权限(例如,Microsoft Graph ->
    user.read
    )。

第五步:获取Token

使用以下 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 请求。

© www.soinside.com 2019 - 2024. All rights reserved.