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

通过Terraform添加Graph API应用权限显示乱码ID而非范围名称

问题原因

你代码里存在权限类型与属性不匹配的错误:oauth2_permission_scope_ids是用于获取Delegated权限(Scope)的ID,而你要添加的是Application权限(Role),应该使用app_role_ids来获取对应权限的ID。用错属性导致Azure无法识别权限ID,所以门户显示乱码且无详情信息。

修复后的Terraform代码
# Enterprise Application

resource "azuread_application" "enterprise_app_oidc" {
  display_name = "my-case-app"

  required_resource_access {
    resource_app_id = data.azuread_application_published_app_ids.well_known.result.MicrosoftGraph 

    resource_access {
        id   = azuread_service_principal.msgraph.app_role_ids["AccessReview.Read.All"]
        type = "Role" // 应用权限对应Role
    }

    resource_access {
        id   = azuread_service_principal.msgraph.app_role_ids["Application.Read.All"]
        type = "Role" // 应用权限对应Role
    }
  }
  
}


resource "azuread_service_principal" "enterprise_app_sp_oidc" {
  client_id                     = azuread_application.enterprise_app_oidc.client_id
  owners                        = azuread_application.enterprise_app_oidc.owners
  preferred_single_sign_on_mode = "oidc"
  app_role_assignment_required  = true

  feature_tags {
    enterprise = true
  }

  depends_on = [ azuread_application.enterprise_app_oidc ]

}


## Graph API permissions

resource "azuread_service_principal" "msgraph" {
  client_id    = data.azuread_application_published_app_ids.well_known.result.MicrosoftGraph 
  use_existing = true
  
}

data "azuread_application_published_app_ids" "well_known" { 
}
关键修改说明
  • 替换oauth2_permission_scope_ids为app_role_ids:这两个属性分别对应不同类型的Graph API权限:
    • oauth2_permission_scope_ids:对应Delegated权限(以用户身份访问资源)
    • app_role_ids:对应Application权限(以应用自身身份访问资源)
  • 保留type = "Role":该值与Application权限类型匹配,无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:41:05