Azure - 如何使用 Terraform 创建外部身份并将其分配给用户

问题描述 投票:0回答:1

我正在尝试使用 Terraform 创建外部身份并将其分配给 Azure 中的用户。

我的第一个问题是我无法在 Terraform 中找到资源外部身份。

我的第二个问题是,我不确定如何将外部身份与用户链接起来。 已使用资源类型 azuread_invitation 创建用户。

提前致谢:)

到目前为止,我的代码只是我正在创建的 azuread_invitation。对于外部身份,我不知道如何创建它:

variable "invited_users" {
  type = map(object({
    name  = string
    groups = list(string)
  }))
}

resource "azuread_invitation" "invited_users" {
  for_each = var.invited_users

  user_email_address = each.key
  redirect_url       = "https://portal.azure.com"
  user_display_name  = each.value.name

  message {
    body                  = "Invitation to my tenant"
    additional_recipients = ["[email protected]"]
  }
}
azure terraform
1个回答
0
投票

使用 Terraform 创建外部身份并将其分配给用户

是的,你是对的。实现此目的的唯一解决方法是创建外部身份并使用 Terraform 将其分配给 Azure 中的用户,利用

azuread_invitation
资源邀请外部用户。尽管 Terraform 没有用于进一步管理外部身份的直接资源,但可以为这些用户分配角色或组成员身份,从而将他们链接到您的资源。

我的地形配置:

# Provider configuration
provider "azurerm" {
  features {}
}

provider "azuread" {
  tenant_id = "xxxx"
}

# Resource Group
resource "azurerm_resource_group" "example" {
  name     = "testvk-resources"
  location = "West Europe"
}

# Create an Azure AD Group
resource "azuread_group" "example" {
  display_name     = "testvk-group"
  security_enabled = true
}

# Invite external user
resource "azuread_invitation" "example" {
  redirect_url = "https://portal.azure.com"
  user_email_address = "[email protected]"
}

# Wait for the user to accept the invitation
resource "azuread_user" "invited_user" {
  user_principal_name = "user_email_address@yourdomainaddress"
  display_name = "testvkuser"
  password            = "IntelP@sswd99!"

  depends_on = [ azuread_invitation.example ]
}

# Assign the user to the group
resource "azuread_group_member" "example" {
  group_object_id = azuread_group.example.object_id
  member_object_id = azuread_user.invited_user.id
}

部署成功:

enter image description here

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.