正在尝试使用azured提供程序使用Terraform创建Azure AD应用程序,在terraform中使用服务主体创建

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

我已经配置了一个服务主体来使用terraform创建资源,并将所有变量导出为给定的here。还为此服务主体添加了权限Application.readwrite.all。
尝试创建AzureAd应用程序和该应用程序的客户端密码,但收到错误消息,提示创建权限不足。
不确定我们需要什么权限。任何人都可以帮助您将哪些内容添加到terraform的服务主体中,以便它可以在Azure AD中创建应用程序。
这是错误

这些是API权限。


如果这是在企业应用程序中添加的,将足以执行这些操作,因为即使在此之后,我仍然看到在应用程序注册时未授予。


应用注册截图

zwghvu4y

zwghvu4y1#

如果服务主体没有执行该操作所需的权限角色,则通常会出现此错误。
我注册了一个Azure AD应用程序,并添加了相同的**API permissions**,如下所示:


的数据
当我运行下面的terraform代码来读取特定应用程序的显示名称时,我也得到了相同的错误

terraform {
  required_providers {
    azuread = {
      source  = "hashicorp/azuread"
    }
  }
}

provider "azuread" {
    client_id     = "appID"
    client_secret = "secret"
    tenant_id     = "tenantID"
}

data "azuread_application" "example" {
      object_id = "appObjID"
}

output "azure_ad_display_name" {
      value = data.azuread_application.example.display_name
}

字符串

回复:



若要解决该错误,需要对新增的名为 Application.ReadWrite.All 的API权限授予admin consent权限:



当我在授予同意后再次运行相同的代码时,我得到了显示名称的响应:



为了创建Azure AD应用程序,我运行了下面的terraform代码:

terraform {
  required_providers {
    azuread = {
      source  = "hashicorp/azuread"
    }
  }
}

provider "azuread" {
    client_id     = "appID"
    client_secret = "secret"
    tenant_id     = "tenantID"
}

# Create an application
resource "azuread_application" "example" {
   display_name = "SriTFapp"
}

# Create a service principal
resource "azuread_service_principal" "example" {
   application_id = azuread_application.example.application_id
}

回复:



为了确认,我在Portal中检查了相同的内容,其中成功创建了名为SriTFapp的应用程序:


相关问题