我通过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
老实说,我不明白为什么,我一直在努力弄清楚这一整天的大部分时间。我已经无计可施了。
1条答案
按热度按时间mgdq6dx11#
我尝试通过AZCLI获取Terraform创建的Azure AD应用程序注册,并且能够成功完成。
我试着使用上面提到的terraform配置一个应用程序。
main.tf
字符串
输出:
步骤
terraform_apply
的数据
门户资源申请:
最初厌倦了查询中提到的命令,最终我面临着同样的错误。
错误的主要原因是CLI中使用的命令。
型
但是根据查询,我们试图获取我们使用terraform创建的应用程序的数据,而不是服务主体,因为我们不能使用terraform创建一个。
因此,对于我们使用terraform创建应用程序并尝试使用CLI获取细节的情况,我们需要运行文档中提到的命令。
commandlets
应该是如上所述。型
&
型
命令行输出:
的
&
的