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

如何通过Client Credential流调用Azure管理REST API?文档仅提及Implicit Grant

使用Client Credential流调用Azure管理API(以角色分配创建API为例)

步骤1:注册Azure AD应用并配置权限

  • 在Azure门户的Azure Active Directory中注册应用程序,记录下客户端ID和租户ID。
  • 为该应用添加应用权限:找到「Azure Service Management」下的Microsoft.Authorization/roleAssignments/write权限,勾选后需要全局管理员或特权角色管理员完成管理员同意。
  • 给应用分配RBAC角色:在目标订阅/资源组层级,将「用户访问管理员」或「所有者」等具备角色分配权限的RBAC角色分配给这个注册的应用(仅配置应用权限不够,必须通过RBAC授予实际操作权限)。

步骤2:获取Client Credential令牌

使用应用的凭据调用Azure AD令牌端点获取访问令牌,示例curl命令:

curl -X POST https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id={你的客户端ID}" \
-d "client_secret={你的客户端密码}" \
-d "scope=https://management.azure.com/.default"

返回结果中的access_token就是后续调用API需要的令牌。

步骤3:调用角色分配创建API

拿到令牌后,构造请求调用目标API,示例curl命令:

curl -X PUT https://management.azure.com/{订阅ID}/resourceGroups/{资源组名称}/providers/Microsoft.Authorization/roleAssignments/{角色分配GUID}?api-version=2022-04-01 \
-H "Authorization: Bearer {你的访问令牌}" \
-H "Content-Type: application/json" \
-d '{
    "properties": {
        "roleDefinitionId": "/subscriptions/{订阅ID}/providers/Microsoft.Authorization/roleDefinitions/{角色定义ID}",
        "principalId": "{被分配角色的主体ID}"
    }
}'

注意:角色分配ID需要生成一个唯一的GUID,角色定义ID可以从Azure RBAC角色的详情中获取。

关键注意事项

  • 确保应用的RBAC权限范围匹配:如果要在订阅层级创建角色分配,就给应用分配订阅级别的RBAC角色;如果是资源组层级,就分配资源组级别的。
  • 客户端密码或证书要妥善保管,避免硬编码到代码中,建议使用Azure Key Vault存储凭据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:32:43