如何通过UUID查找Azure资源?Terraform部署EA权限配置疑问
问题解答
1. 通过UUID查找Azure资源
有两种实用方式:
- Azure CLI:
- 若目标是应用注册或服务主体关联的权限ID,用应用查询命令精准过滤:
az ad application list --filter "oauth2PermissionScopes/id eq '<你的权限UUID>'" - 通用资源查找,遍历所有资源匹配UUID:
az resource list --query "[?id contains('<目标UUID>')]"
- 若目标是应用注册或服务主体关联的权限ID,用应用查询命令精准过滤:
- Azure Portal:直接在顶部搜索框输入UUID,系统会自动匹配关联的资源(如应用注册、服务主体、权限范围等)。
2. Terraform配置对应参数的资源
你提到的oauth2_permission_scope_ids是azuread_application资源的参数,它需要引用应用自身定义的OAuth2权限范围ID。手动创建企业应用时Azure自动生成的user_impersonation权限,在Terraform中需要显式定义应用的API权限范围,再引用其ID,示例代码如下:
resource "azuread_application" "test" { display_name = "你的企业应用名称" # 定义应用自身的OAuth2权限范围,对应手动创建时自动生成的user_impersonation api { oauth2_permission_scope { name = "user_impersonation" admin_consent_description = "允许应用模拟用户访问Web API" admin_consent_display_name = "访问你的企业应用" user_consent_description = "允许应用模拟你访问Web API" user_consent_display_name = "访问你的企业应用" type = "User" value = "user_impersonation" } } # 引用上面定义的权限范围ID oauth2_permission_scope_ids = { "user_impersonation" = azuread_application.test.api.0.oauth2_permission_scope.0.id } } # 服务主体会自动关联应用的权限配置,无需额外手动指定 resource "azuread_service_principal" "test" { application_id = azuread_application.test.application_id }
说明:当你在azuread_application的api块中定义oauth2_permission_scope后,Terraform会自动生成对应的权限ID,直接通过内置引用即可填充oauth2_permission_scope_ids参数,无需手动填写固定UUID。
内容的提问来源于stack exchange,提问作者todd_dsm
相关产品推荐
相关产品推荐

