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

非交互式使用个人ID访问Azure API的流程及权限模拟问询

已知Azure API使用流程

  • 进入应用注册页面创建新应用
  • 获取client id、Directory (tenant) ID和密钥
  • 进入API permission区域添加所需访问的API,或将应用ID作为服务主体(SP)添加至billing reader等角色中
  • 调用/oauth2/token接口,传入client_id和client_secret以获取Bearer令牌
  • 在请求头中传入Bearer {{access_token}}即可调用目标API

技术疑问解答

1. 使用个人ID(AD邮箱)访问指定API的流程及令牌获取方式

权限前提

首先确保你的个人AD账号已获得对应API的访问权限:

  • 对于Billing、Cost Management或存储账户这类管理类API,需在Azure RBAC中为你的账号分配对应角色(比如Billing Reader、Storage Account Contributor等);
  • 若涉及特定API的委派权限,需确认账号已被允许访问目标API。

流程及令牌获取

若要直接通过/oauth2/token接口获取令牌,可使用OAuth 2.0的资源所有者密码凭据流(注:该方式因安全性问题不推荐生产环境使用,更建议授权码流或设备代码流),请求参数如下:

POST https://login.microsoftonline.com/{tenant_id}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=password
&client_id={公共客户端ID(可使用Azure CLI的客户端ID:04b07795-8ddb-461a-bbee-02f9e1bf7b46)}
&username={你的AD邮箱}
&password={你的账号密码}
&resource={目标API的资源ID,例如:
  - 管理类API(Billing/Cost Management/存储账户):https://management.azure.com/
  - 存储Blob API:https://storage.azure.com/
}
&tenant_id={你的租户ID}

返回结果中的access_token即为可用的Bearer令牌,后续在请求头中携带Bearer {access_token}即可调用目标API。

更安全的授权码流流程:

  1. 注册一个公共客户端应用(无需设置密钥);
  2. 引导用户访问授权端点完成身份验证,获取授权码;
  3. 使用授权码调用/oauth2/token交换令牌,同时可获取refresh_token用于后续续期,无需重复输入密码。

2. 无密码使用自身权限及授权App ID模拟身份

无密码使用自身权限

可通过以下两种方式实现无需输入密码访问API:

  • 设备代码流:适用于无界面设备或无法输入密码的场景。调用设备端点获取设备代码和用户验证URL,用户在其他设备上完成身份验证后,应用即可获取令牌,全程无需输入密码;
  • 授权码流+刷新令牌:用户首次授权应用后,应用会获得refresh_token,后续可通过该令牌调用/oauth2/token刷新获取新的access_token,无需再次输入密码。

授权App ID模拟自身身份

可以实现授权某个App ID模拟你的身份操作,步骤如下:

  1. 在Azure AD中注册目标应用(即需授权的App ID);
  2. 为该应用添加委派权限(对应你需要模拟操作的API,比如Billing、存储账户的委派权限);
  3. 你作为用户,对该应用进行权限同意(可通过管理员批量同意或个人手动同意);
  4. 应用通过授权码流或设备代码流获取代表你的身份令牌,即可模拟你执行操作;
  5. 若需长期使用,应用可存储refresh_token,定期刷新获取新的访问令牌,无需你重复操作。

这种方式适合HR等场景,应用可在你授权的范围内,以你的身份执行指定操作,全程无需输入密码。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:45:41