为什么我无法通过AZCLI查询Terraform创建的此Azure AD应用程序注册?

aelbi1ox  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(107)

我通过Terraform注册了Azure AD应用程序。我可以通过Azure控制台看到它,我可以看到它有一个客户端和对象ID。我正在尝试通过AZCLI获取客户端ID,以自动执行一些无关的操作。但是,我完全无法通过AZCLI查询此应用程序。
我通过Terraform创建了以下内容:

resource "azuread_application" "test" {
  display_name = "something-something-microsoft"
}

字符串
然后我尝试执行以下命令:

$ az ad sp list --display-name something-something-microsoft
[]
$ az ad sp show --id d5f75adb-XXXX-XXXX-XXXX-1473334f1386
Resource 'd5f75adb-XXXX-XXXX-XXXX-1473334f1386' does not exist or one of its queried reference-property objects are not present.


我在CLI和UI中处于相同的订阅和租户中。
当我通过UI做同样的事情时,它神奇地工作了。从UI和通过Terraform制作的应用程序不同,但是当我手动编辑Terraform创建的应用程序以包含所有相同的选项时,使其完全相同,我仍然无法通过AZCLI查询它。
当我尝试过滤整个应用程序列表时,我也无法找到应用程序注册az ad sp list --all | jq '.[].displayName' | grep something
老实说,我不明白为什么,我一直在努力弄清楚这一整天的大部分时间。我已经无计可施了。

mgdq6dx1

mgdq6dx11#

我尝试通过AZCLI获取Terraform创建的Azure AD应用程序注册,并且能够成功完成。
我试着使用上面提到的terraform配置一个应用程序。

main.tf

provider "azurerm" {
    features {}
  subscription_id = " "
  client_id       = " "
  tenant_id       = " "
  client_secret   = " "
}

resource "azuread_application" "test" {
  display_name = "something-something-microsoft"
}

字符串

输出:

步骤terraform_apply


的数据

门户资源申请:


最初厌倦了查询中提到的命令,最终我面临着同样的错误。
错误的主要原因是CLI中使用的命令。

$ az ad sp list --display-name <>
$ az ad sp show --id <>
$ az ad sp list --all | jq '.[].displayName' | grep <>


但是根据查询,我们试图获取我们使用terraform创建的应用程序的数据,而不是服务主体,因为我们不能使用terraform创建一个。
因此,对于我们使用terraform创建应用程序并尝试使用CLI获取细节的情况,我们需要运行文档中提到的命令。
commandlets应该是如上所述。

az ad app show --id <>


&

az ad app list --display-name <>

命令行输出:



&


相关问题