You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python复现Postman中基于Azure AD的OAuth 2.0授权请求?

使用Python复现Azure AD授权请求

要在Python里复现Azure AD的授权请求,最省心的方式是用微软官方的MSAL库,下面分几种常见场景给你代码示例:

1. 客户端凭证流(服务间无用户交互)

适合后台服务调用Azure资源的场景,不需要用户登录授权。

首先安装依赖:

pip install msal

代码示例:

import msal

# 替换成你的Azure AD实际配置
TENANT_ID = "你的租户ID"
CLIENT_ID = "你的应用注册ID"
CLIENT_SECRET = "你的应用客户端密钥"
# 权限范围按需替换,比如调用Graph API就用"https://graph.microsoft.com/.default"
SCOPE = ["https://graph.microsoft.com/.default"]

# 初始化MSAL客户端
app = msal.ConfidentialClientApplication(
    client_id=CLIENT_ID,
    client_credential=CLIENT_SECRET,
    authority=f"https://login.microsoftonline.com/{TENANT_ID}"
)

# 获取访问Token
result = app.acquire_token_for_client(scopes=SCOPE)

if "access_token" in result:
    print("成功获取Token:", result["access_token"])
else:
    print("Token获取失败:", result.get("error_description", result.get("error")))

2. 授权码流(带用户登录交互)

如果你的场景需要用户手动登录授权,用这种流程,需要先引导用户获取授权码,再用码兑换Token。

代码示例:

import msal
import webbrowser

# 替换成你的Azure AD实际配置
TENANT_ID = "你的租户ID"
CLIENT_ID = "你的应用注册ID"
# 必须和应用注册里配置的重定向URI一致
REDIRECT_URI = "http://localhost:8000"
# 按需替换权限,比如读取用户信息用"User.Read"
SCOPE = ["User.Read"]

# 初始化MSAL客户端
app = msal.PublicClientApplication(
    client_id=CLIENT_ID,
    authority=f"https://login.microsoftonline.com/{TENANT_ID}"
)

# 生成授权URL并打开浏览器
auth_url = app.get_authorization_request_url(
    scopes=SCOPE,
    redirect_uri=REDIRECT_URI
)
webbrowser.open(auth_url)

# 手动输入回调URL中的授权码
print("请在浏览器完成登录,然后复制回调URL里的code参数输入:")
auth_code = input("授权码: ")

# 用授权码兑换Token
result = app.acquire_token_by_authorization_code(
    code=auth_code,
    scopes=SCOPE,
    redirect_uri=REDIRECT_URI
)

if "access_token" in result:
    print("成功获取Token:", result["access_token"])
else:
    print("Token获取失败:", result.get("error_description", result.get("error")))

注意事项

  • 确保Azure AD应用注册已配置对应权限,部分高权限需要管理员提前同意
  • 所有占位参数(租户ID、应用ID等)必须替换成你自己的实际配置
  • 如果你的授权请求是其他流程(比如用户名密码流),可以参考MSAL的官方逻辑调整代码

内容的提问来源于stack exchange,提问作者Nuno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 23:50:28