- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在关注此文档 Manage Azure Active Directory (Azure AD) Users and Groups以及同一页面中提到的用于在 Azure AD 组中添加用户的相同存储库。
我不需要资源函数来创建用户,因为用户已由另一个团队创建。我们只需要创建组并将成员添加到其中即可。
我可以通过使用成员电子邮件地址创建 tfvars 文件来将用户添加到组中
terraform.tfvars
dev-team = [
"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b6d7f6d3ced7dbc6dad398d5d9db" rel="noreferrer noopener nofollow">[email protected]</a>",
"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9ffddffae7fef2eff3fab1fcf0f2" rel="noreferrer noopener nofollow">[email protected]</a>"
]
组.tf
data "azuread_user" "user" {
for_each = toset(var.dev-team)
user_principal_name = each.key
}
resource "azuread_group" "api-jnk-cld-ops" {
display_name = "api-jnk-cld-ops"
security_enabled = true
}
resource "azuread_group_member" "member" {
for_each = toset(var.dev-team)
group_object_id = azuread_group.api-jnk-cld-ops.id
member_object_id = data.azuread_user.user[each.key].id
}
变量.tf
variable "dev-team" {
type = list(string)
}
我想要实现的是,用户应该在 csv 文件中列出,而不是在 tfvars 中给出。和官方文档提到的一样Manage Azure Active Directory (Azure AD) Users and Groups唯一不同的是我不想创建用户。
获取用户并检查用户所属的部门并将用户添加到正确的组中,这就是我正在尝试做的事情..
错误:如果我有在另一个组中使用的重复 UPN,则会出现新问题。
Two different items produced the key"[email protected]" in this 'for' expression. Ifduplicates are expected, use the ellipsis (...) after the value expression toenable grouping by key.
AzureGroup Surname UserPrincipalName UserSamAccountName GroupName ObjectClass DistinguishedName GivenName Enabled AzureUserPrincipalName AzureUserId
api-jnk-cld-ops user1 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b6c3c5d3c487f6d3ced7dbc6dad398d5d9db" rel="noreferrer noopener nofollow">[email protected]</a> abcd api-jnk-cld-ops user user1 TRUE <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5b2e283e296a1b2f3e282f753435363238293428343d2f75383436" rel="noreferrer noopener nofollow">[email protected]</a> fad08bd2-3fa471403656
api-jnk-ai-ops user2 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e99c9a8c9bdba98c91888499858cc78a8684" rel="noreferrer noopener nofollow">[email protected]</a> defg api-jnk-ai-ops user user2 TRUE <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="deabadbbacec9eaabbadaaf0b1b0b3b7bdacb1adb1b8aaf0bdb1b3" rel="noreferrer noopener nofollow">[email protected]</a> 5f2d00eb-bfc6-67219cec3bb7
api-jnk-bd-ops user1 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="64111701165524011c05091408014a070b09" rel="noreferrer noopener nofollow">[email protected]</a> abcd api-jnk-bd-ops user user1 TRUE <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c2b7b1a7b0f382b6a7b1b6ecadacafaba1b0adb1ada4b6eca1adaf" rel="noreferrer noopener nofollow">[email protected]</a> fad08bd2-3fa471403656
resource "azuread_group_member" "member" {
for_each = { for user in local.users : user.AzureUserPrincipalName => user if user.AzureGroup == "api-jnk-cld-ops" }
group_object_id = azuread_group.api-jnk-cld-ops.id
member_object_id = data.azuread_user.user[each.key].id
}
最佳答案
What I am trying to achieve is, users should be listed in csv fileinstead of giving in tfvars. The same way as official documentsmentioned Manage Azure Active Directory (Azure AD) Users and Groupsonly different is i don't want to create user.
您可以使用以下代码来满足您的要求:
provider "azuread" {}
locals {
users = csvdecode(file("C:/user.csv"))
}
data "azuread_user" "user" {
for_each = { for user in local.users : user.UPN => user }
user_principal_name = each.value.UPN
}
resource "azuread_group" "dev-team" {
display_name = "inx-dev"
security_enabled = true
}
resource "azuread_group_member" "member" {
for_each = { for user in local.users : user.UPN => user }
group_object_id = azuread_group.dev-team.id
member_object_id = data.azuread_user.user[each.key].id
}
CSV 文件:
输出:
更新以下错误:
如果您使用重复项,那么您必须通过索引将列表转换为 map ,这样您就可以使用 for 循环,如下所示:
data "azuread_user" "user" {
for_each = { for i , user in local.users : i => user }
user_principal_name = each.value.AzureUserPrincipalName
}
resource "azuread_group" "dev-team" {
display_name = "inx-dev"
security_enabled = true
}
resource "azuread_group_member" "member" {
for_each = { for i,user in local.users : i => user if user.AzureGroup == "api-jnk-cld-ops" }
group_object_id = azuread_group.dev-team.id
member_object_id = data.azuread_user.user[each.key].id
}
输出:
关于azure - 通过从 CSV 文件获取用户详细信息,使用 terraform 在 azure AD 组中添加用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69983907/
目录 进程 其他相关概念 创建线程的两种方式 为什么使用start()方法而不直接使用run()方法 start()方法底层
CURL状态码列表 状态码 状态原因 解释 0 正常访问
ODBC连接类函数 odbc_connect函数:打开一个ODBC连接 odbc_close函数:关闭一个已经打开的ODBC连接 odbc_close_all函数:关闭所有已经打开的ODBC连
作为标题,如何计算从纪元1900到现在使用boost的持续时间? 编辑:很抱歉以前的问题太短。我将再次描述我的问题。 我有关于将生日另存为整数的问题。我创建了四个函数,用法如下: ptime转换为整数
前言 在Java中,有一个常被忽略 但 非常重要的关键字Synchronized今天,我将详细讲解 Java关键字Synchronized的所有知识,希望你们会喜欢 目录 1. 定义 J
详细 JVM 垃圾收集日志的时间戳是收集的开始还是结束? 2016-08-09T21:04:19.756-0400: 224890.317: [GC Desired survivor size 167
我在“Master-Detail”概念上苦苦挣扎,除了一点点(但很重要)的细微差别外,几乎所有东西都按预期工作。我应该在 Storyboard上更改什么以在详细信息 View (屏幕截图底部的右上角)
我希望能够显示表格的详细 View ,但不推送新屏幕,而只显示表格所在的详细 View 。 设置它的最佳方式是什么......如果真的可行的话? ---------------------------
我在我的博客中为我的帖子使用了详细 View ,每篇帖子都有评论,所以我想对它们进行分页,但我不知道该怎么做,因为我请求了帖子模型。我知道如何在功能 View 中执行此操作,但不知道如何在详细 Vie
在下面的代码中,与 pm 对齐,该行是否会 move 整个内存并将其分配给 pm,或者它只会 move p 指向的内存而不是整个数组? int main() { int*
1·下载 https://dev.mysql.com/downloads/mysql/ 2·安装服务 1)管理员运行cmd 2)D: 3)cd D:\mysql
今天以前一直用的SQL Server 2005做开发,偶尔也用MySQL,现入手公司项目,用到SQL Server 2008,于是乎必须安装它,免得出现其他很纠结的小问题,现将自己安装图解分享如下:
1. crontab命令选项 复制代码 代码如下: #crontab -u <-l, -r, -e> -u指定一个用
我们有一个 WPF 应用程序,它有一个主窗口/详细信息窗口,两者都是 WPF 数据网格。当您在上部数据网格中选择一行时,详细信息将显示在下部数据网格中。我想知道从 UI 的角度来看是否有任何关于如何处
在可视化 Perforce 客户端 (p4v) 中有一个选项: 显示文件操作的 p4 命令输出 启用后,在日志 Pane 中,我可以看到这样的详细日志记录: p4 sync /Users/az/ftp
在其他服务器上设置测试环境后,在几个API调用中出现错误。 99%肯定这是MySQL的事情,但是返回的错误根本没有帮助: global name 'sys' is not defined" 我已经导入
我正在维护一个通用的 iOS 应用程序,其开发已开始于 iOS 6。我正在为 iOS 7 更新 UI。现在我遇到了应用程序的 iPad 部分的奇怪问题。这部分遵循使用 UISplitViewContr
我希望我能正确描述这种情况。当它发生时很容易在屏幕上看到,但很难用语言解释,但我会尽力而为。 我有一个带有固定主视图 (UITableView) 和两个详细 View 之一的 UISplitViewC
我尝试在 eclipse 和 intelliJ 参数中使用垃圾收集记录器来配置简单的测试程序。尝试了不同类型的配置,但尚未创建日志文件。 -XX:+PrintGCDetails -XX:+PrintG
正如您所知,.cap 文件中的 java 小程序的输出文件格式必须通过智能卡读卡器/写卡器(如 ACR122 或任何其他读卡器)部署到 java 卡,而且我相信 java 卡与 java 卡之间的部署
我是一名优秀的程序员,十分优秀!