通过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
相关产品推荐
相关产品推荐

