0

我有一个服务主体,它在运行我的 Terraform 脚本时使用,它适用于我需要做的 99% 的事情。但是,然后我需要使用 terraform 运行以下脚本来更新应用程序注册上的属性 - 因为这是可以完成的唯一方法(此处供参考 - https://github.com/hashicorp/terraform-provider-azuread /问题/188)。

resource "null_resource" "access_token_accepted_version" {
   depends_on = [
   azuread_application.appname
]
provisioner "local-exec" {
command = <<EOF
  az login --service-principal --username ${var.az_client_id} --password 
${var.az_client_secret} --tenant ${var.az_tenant_id}
  az rest \
    --method PATCH \
    --headers "Content-Type=application/json" \
    --uri "https://graph.microsoft.com/v1.0/applications/${azuread_application.appname.id}" \
    --body '{"api":{"requestedAccessTokenVersion":2}}'
EOF
  }
}

Az 登录部分似乎运行成功,但随后 PATCH 调用总是会导致以下错误 -

ERROR: Forbidden({"error":{"code":"Authorization_RequestDenied","message":"Insufficient privileges to complete the operation."

我想有一个权限可以添加到服务主体的关联应用程序注册中,但我找不到合适的权限。这是我目前拥有的(有些是需要的,有些是在黑暗中刺伤)

在此处输入图像描述

谁能想到解决这个问题的方法?

4

1 回答 1

2

您需要Application.ReadWrite.All根据Microsoft Graph. 目前,您已根据Azure Active Directory Graph.

一旦你这样做,你不应该得到这个错误。

于 2021-08-16T15:43:29.587 回答