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

拥有API权限的Service Principal无法通过Terraform创建azuread_application

解决Terraform创建Azure AD应用时的403权限不足问题

问题原因

当前使用的服务主体(Service Principal)仅被授予了Directory.Read.All(只读类应用权限)和User.Read(委派权限),这类权限无法支持创建Azure AD应用程序的操作,必须具备对应的写入类权限。

所需权限配置

要让服务主体成功创建Azure AD应用,需为其添加以下任一Microsoft Graph应用权限:

  • Application.ReadWrite.All:允许管理所有应用程序注册(权限范围较广,适合需要批量管理应用的场景)
  • Application.ReadWrite.OwnedBy:允许创建应用程序,且自动成为该应用的所有者(权限更精细,符合最小权限原则,推荐使用)

操作步骤

  1. 登录Azure门户,进入Azure Active Directory -> 应用注册,找到目标服务主体
  2. 切换到API权限页面,点击添加权限
  3. 选择Microsoft Graph -> 应用权限
  4. 在权限列表中搜索并勾选所需权限(如Application.ReadWrite.OwnedBy)
  5. 点击添加权限后,点击授予管理员同意(操作需全局管理员或应用程序管理员权限)
  6. 等待权限生效(通常1-5分钟)后,重新运行terraform apply --auto-approve tfplan命令

翻译后的错误信息

已将计划保存至: tfplan
要执行这些操作,请运行以下命令:
    terraform apply "tfplan"
$ terraform apply --auto-approve tfplan > terraform_output.json
╷
│ 错误: 创建 {}: ApplicationsClient.BaseClient.Post(): 意外状态码403,伴随OData错误: Authorization_RequestDenied: 权限不足,无法完成操作。
│ 
│   涉及资源 azuread_application_registration.app-test,
│   在 main.tf 第15行,资源 "azuread_application" "app-test" 块中:
│   15: resource "azuread_application" "app-test" {
│ 
│ 创建 {}: ApplicationsClient.BaseClient.Post(): 意外状态码403
│ 伴随OData错误: Authorization_RequestDenied: 权限不足,无法完成操作。
╵
清理项目目录和基于文件的变量
00:01
错误: 任务失败: 退出码1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 18:21:00