我正在尝试使用 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]"]
}
}
使用 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
}
部署成功: