如何使用 LDAP 组成员身份同步设置 TeamCity [关闭]

2024-01-03

这是一个简短的指南,帮助您进行 TeamCity 的 LDAP 设置。 在我设法让同步运行之前,我个人经历了相当多的挣扎。默认配置文件有很多设置和文本,这可能更令人困惑而不是有帮助。在 JetBrains 和 StackOverflow 上都可以看到很多有关设置组同步问题的帖子。

此设置假设您没有用于导入成员的嵌套组,而是单个组。 如果您想对 TeamCity 使用嵌套组,请查看“通过同步限制组数”部分:https://www.jetbrains.com/help/teamcity/典型-ldap-configurations.html?_ga=2.213872598.374019039.1565610915-964155662.1565610915 https://www.jetbrains.com/help/teamcity/typical-ldap-configurations.html?_ga=2.213872598.374019039.1565610915-964155662.1565610915

相应地更改 teamcity.users.filter 。

teamcity.users.filter=(&(objectClass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=TeamCity Users,OU=Accounts,DC=domain,DC=com))

JetBrains 更喜欢您有一个嵌套组,其中顶部节点是您的 TeamCity 组。然而,这不是我目前想要设置同步的方式。

假设

  • 您已阅读指南https://www.jetbrains.com/help/teamcity/ldap-integration.html https://www.jetbrains.com/help/teamcity/ldap-integration.html

  • 您有一个 Active Directory 用户(或更好:ServiceAccount),可以使用用户名/密码连接到 LDAP

  • 您可以使用 LDAP 登录,但您不知道如何使组成员身份同步发挥作用。


以下是我设置 TeamCity LDAP 配置文件以同步 AD 组的方法:

ldap-config.properties 文件

java.naming.provider.url=ldap://<your server or domain>:3268/DC=YOUR,DC=Domain,DC=Here
java.naming.security.principal=<username>
java.naming.security.credentials=<password>
teamcity.users.login.filter=(sAMAccountName=$capturedLogin$)
teamcity.users.username=sAMAccountName

### USERS SETTINGS ###
teamcity.options.users.synchronize=true
teamcity.users.filter=(objectClass=user)
teamcity.users.property.displayName=displayName
teamcity.users.property.email=mail

# Automatic user creation and deletion during users synchronization
teamcity.options.createUsers=true
teamcity.options.deleteUsers=true

### GROUPS SETTINGS ###
# These settings are mandatory if groups synchronization is turned on (ldap-mapping.xml exists)
# Set to "true" to enable the synchronization for groups listed in ldap-mapping.xml file.
# IMPORTANT NOTE: TeamCity groups should be already created manually and listed in ldap-mapping.xml file.
teamcity.options.groups.synchronize=true

# The group search LDAP filter used to retrieve groups to synchronize.
# The search is performed inside the LDAP entry denoted by "teamcity.groups.base". The result should include all the groups configured in the ldap-mapping.xml file.
teamcity.groups.filter=(objectClass=group)

### OPTIONAL SETTINGS ###

# The time interval between synchronizations (in milliseconds). By default, it is one hour.
teamcity.options.syncTimeout=3600000

# The LDAP attribute of a group storing it's members.
# Note: LDAP attribute should contain the full DN of the member, one attribute per member. See also "teamcity.users.property.memberId".
teamcity.groups.property.member=member

Note:我使用端口 3268 而不是 389,这是因为默认端口使 TeamCity 登录速度极其缓慢。大多数情况下,389 需要 5 分钟才能登录,而 3268 则可以立即登录。

ldap-mapping.xml 文件

<!DOCTYPE mapping SYSTEM "ldap-mapping.dtd">
<mapping>
  <!-- Example mapping entry:
  <group-mapping teamcityGroupKey="GROUP" ldapGroupDn="CN=Group,DC=Example,DC=Com"/>
  -->
   <group-mapping teamcityGroupKey="YourGroupKey" ldapGroupDn="CN=<DNName>" />
</mapping>

Powershell 和 RSAT

为了获取我添加的每个组的可分辨名称,我使用了安装了 RSAT(远程服务器管理工​​具)的计算机https://www.microsoft.com/en-us/download/details.aspx?id=45520 https://www.microsoft.com/en-us/download/details.aspx?id=45520。 RSAT 向 powershell 添加了一些 Active Directory 功能,这使得您可以更轻松地获取所需的 LDAP 设置。

powershell命令:

get-adgroup <Group name> -properties *

将 DistinguishedName 与 teamcityGroupKey 一起添加到 ldap-mapping.xml 文件中的 ldapGroupDn 字段,然后您就可以开始了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 LDAP 组成员身份同步设置 TeamCity [关闭] 的相关文章

  • 服务定位协议的客户端实现示例? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道可以在 Windows 盒子上构建 运行的服务定位协议的一个很好的示例实现吗 OpenSLP h
  • 为什么使用互斥量而不是布尔变量进行线程同步?

    我正在尝试了解 C 中的多线程编程 我有疑问 既然我们使用MUTEXES来进行线程同步 为什么我们不能使用布尔变量来阻塞要执行的代码的关键区域 与布尔变量相比 静音变量有何特点 PS 其实这个问题是在采访中问到的 因此 请分享您对此的了解
  • 使用 rsync 进行双向同步

    我有一个文件夹 a 和一个远程文件夹 A 我现在在 Makefile 上运行类似的内容 get music rsync avzru server media 10001 music media Incoming music put musi
  • LdapConnection SearchRequest 抛出对象不存在错误

    我正在尝试查询 LDAP 服务器以查找 LDAP 用户并将其导入到我的系统中 但是 当我尝试执行此操作时 请求会抛出DirectoryOperationException 说The object does not exist ldapCon
  • 什么时候应该使用各个线程同步对象?

    在什么情况下应该使用以下每个同步对象 读写锁 信号 Mutex 由于每次调用 post 时 wait 都会返回一次 因此信号量是一种基本的生产者 消费者模型 除了信号之外最简单的线程间消息形式 使用它们是为了让一个线程可以告诉另一个线程发生
  • 使用 ASP.NET 获取 Active Directory 信息,无需用户名和密码

    我正在尝试从 ASP NET Web 应用程序获取本地网络上用户的 Active Directory 信息 Web 应用程序运行在IIS在本地网络上 我想要的 当用户登录网站时 他们可以从 Active Directory 中看到自己的名字
  • 如何在powershell中获取登录用户的电子邮件

    使用 Vbscript 我们获取当前用户的电子邮件 ID 它就像下面几行一样简单 Option Explicit Dim objUser objADSysInfo Set objADSysInfo CreateObject ADSystem
  • 如何获取 TeamCity Build 触发器过滤器来构建功能分支而不是默认分支

    我创建了一个 Team City 构建来构建功能分支 默认分支 refs heads development 分支规范 refs heads feature 我有一个 vcs 触发器 因此它会为每次 git 推送而构建 但我不希望它在有人推
  • 同步框架服务器到服务器同步

    I have kind of a such scenario source microsoft com http i msdn microsoft com bb887608 Figure3 en us png Here i need to
  • Git 和 Dropbox - 本地存储库

    我阅读了大量有关 Dropbox 和 Git 功能结合的帖子并观看了许多视频 其中一个线程是这样的 有效地结合使用 Git 和 Dropbox https stackoverflow com questions 1960799 using
  • 如何查找用户所属的所有组? (LDAP)

    我正在尝试获取某个用户所属的所有组 我有以下内容结构在LDAP中 o myOrganization ou unit1 cn admin cn guess and ou users cn ann cn bob cn carla myOrgan
  • 用于 C# 和 iPhone 应用程序的 MongoDB

    我正处于设计应用程序的初始阶段 该应用程序将具有用 C 实现的后端 该后端将使用 IIS 上托管的 WCF Web 服务为其他平台提供数据 iPhone 就是其中之一 由于是个人项目 所以想用它来学习MongoDB 我已经知道有社区开发的
  • 我可以从 LDAP 更改自己的 Active Directory 密码(无需管理帐户)

    我没有 也不会 拥有管理员帐户 我想从 java 更改 Active Directory 中自己 用户 的密码 我怎样才能做到这一点 使用来自网络的代码 private void changePass throws Exception St
  • Team Foundation Build 还是 TeamCity?

    我们主要是一家从事 NET LOB 开发的 MS 商店 我们还在 CRM 应用程序中使用 MS Dynamics 所有开发人员目前都在使用 VS SQL Server 2008 我们也使用 VSS 但每个人在工作中都讨厌它 而且很快就会被淘
  • C# 中的监视器与互斥体[重复]

    这个问题在这里已经有答案了 可能的重复 C 中各种线程同步选项之间有什么区别 https stackoverflow com questions 301160 what are the differences between various
  • Microsoft 同步框架 - 双向同步如何工作?

    我有两个客户端 A 和 B 两个客户端都有相同的同步本地数据缓存 如果客户端 A 对记录 X 进行离线编辑 然后客户端 B 也离线编辑记录 X 并与服务器同步 则当客户端 A 与服务器同步时 客户端 B 所做的更改不会反映出来 并且无论进行
  • 在哪里可以找到有关 IOS 日历同步的优秀教程? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发 iPhone 应用程序 如何将新事件与 iOS 日历同步 您可以浏览此 github 代码
  • 关于java中同步的问题;何时/如何/到什么程度

    我正在开发我的第一个多线程程序 并在同步的几个方面陷入困境 我已经浏览了 oracle sun 主页上的多线程教程 以及这里的一些关于 SO 的问题 所以我相信我知道什么是同步 然而 正如我提到的 有几个方面我不太确定如何弄清楚 我以明确问
  • 进程间并发文件写入

    我需要将不同进程的日志数据写入单个文件 我正在使用 Windows Mutex 它需要公共语言运行时支持 Mutex m gcnew Mutex false MyMutex m gt WaitOne File Open and Write
  • python 中的 LDAP 查询

    我想在 ldap 中执行以下查询 ldapsearch h hostname b dc ernet dc in x uid w2lame objectClass posixAccount gidnumber ldapsearch h hos

随机推荐

  • 数据库中空值使用的空间

    如果列为空 是否会影响该列使用的空间 使用的空间是否由列定义固定 这是否因数据库而异 我主要对 SQL Server 2000 感兴趣 澄清 这个问题与列 可为空 时发生的情况无关 正如 Kritsen 和 gbn 指出的那样 这会增加一点
  • numpy 排列和哪里

    我试图通过 where 在 arange 创建的数组中查找值 但似乎效果不佳 这是一个例子 from numpy import arange where myarr arange 6 6 10 25 0 05 for item in 6 6
  • 添加到 ObjectSet 的对象的多态删除不会引发 ObjectSet.IListSource.GetList() 上的 IBindingList.ListChanged

    概述 描述 简单 运行时类型对象的多态移除derived from TEntity添加到ObjectSet
  • Pylint E0202 误报?或者这段代码是错误的?

    我一直在研究一个带有属性的类 但我们遇到了 pylint 的一个棘手问题 0 25 1 在下面的代码中 我们定义了一个带有 python 2 6 中引入的属性的类 然而 皮林特抱怨说 在 init method self aProperty
  • 如何在C++中将第一个数字移动到数字的末尾?

    这是代码 include
  • 对密度曲线下方的区域进行阴影处理,以标记最高密度区间 (HDI)

    我认为这应该很简单 但尽管网上有大量信息 我还是迷失了 我的问题 我有一个数据点向量 我想为其绘制密度曲线 然后为曲线下方的区域着色以表示最高密度区间 HDI 当然 我正在努力实现这一目标ggplot2包 特别是qplot 因为我的数据是向
  • Visual Studio 代码显示错误“找不到名称日期”

    我正在开发一个基本的 Angular 项目Visual Studio代码 版本1 19 2 作为我的 IDE 下面的代码运行良好 但 VSC 似乎对此不满意 当我使用时它显示错误new Date or JSON stringify 但最终结
  • 将结构体数组转换为双精度数组[重复]

    这个问题在这里已经有答案了 我将 7 个患者的数据 每个数据包含 19 个特征 合并到一个结构中 如下所示 数据现在位于具有 19 个字段的 7x1 结构中 我需要做什么才能将结构转换为双精度数组 我需要将其用作 SVM 分类器的输入 或者
  • 我可以在 Eclipse 中从构造函数自动生成字段吗?

    当我在 Eclipse 中编码时 我喜欢尽可能地偷懒 所以我经常输入类似这样的内容 myObject new MyClass myParam1 myParam2 myParam3 即使 MyClass 不存在 它的构造函数也不存在 单击几下
  • Symfony2 - 我应该把用户上传的文件放在哪里? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我是 Symfony 的新手 我将用户上传的图像放在下面 web bundles mybundle images 目录 但我觉得这不是一个好的做
  • 如何在 Android 市场上发布应用程序更新?

    我已经在 Android 市场上有一个应用程序 现在我想上传该应用程序的更新 我使用相同的包名称创建了新应用程序 我增加了版本代码和名称 我使用相同的密钥库签名 等等 现在我想知道如何发布更新 我是否将更新作为单独的应用程序上传 或者我还能
  • 如何使用 jQuery 读取 CSS 文件

    好的 我有一个包含 jQuery 的 HTML 页面 我有一个 CSS 文件 里面有很多行 我想阅读all来自外部 CSS 文件的给定元素的样式 而不是内联样式 我有以下代码 看起来应该可以工作 var styleProperties va
  • C:检查命令行参数是否为整数?

    签名isdigit int isdigit int c 签名atoi int atoi const char nptr 我只是想检查传递的命令行参数是否是整数 这是 C 代码 include
  • 获取 Magento 中的当前 URL 并显示一些内容

    我正在尝试获取 Magento 中的当前 URL 并显示一些内容 如果我当前位于该页面上 到目前为止 这就是我所做的并且有效 I am in the blog page 但是 我不想在源代码中硬编码URL 因为如果我传输到另一台服务器 我需
  • 写入 JSON 文件时出现阶段失败 Spark FileAlreadyExistsException

    我正在尝试以 JSON 格式将数据帧写入 s3 位置 但是每当执行器任务失败并且 Spark 重试该阶段时 它就会抛出FileAlreadyExistsException A 类似的问题 https stackoverflow com qu
  • 访问和使用数据库中的 .jsf 文件

    使我的 Web 应用程序能够使用数据库中存储的 JSF 文件的最佳方法是什么 我希望能够动态 在运行时 创建新的 JSF 页面 无需重新部署应用程序即可使用该页面 换句话说 我希望将 JSF 页面的大部分存储在数据库中 并希望 JSF 使用
  • 在 P/Invoke 中为固定字符串传递什么?

    假设这个 C 函数 void do something const char str 它将字符串存储在某处稍后参考 此外 我在 C 中有这个签名来调用这个函数 DllImport NativeLib static extern void d
  • Java 中的窗口拖动事件

    我正在尝试在 Java 中实现类似 OS X 抽屉的功能 因此我将一个窗口隐藏在另一个窗口下 但是 当我拖动主窗口 JFrame 时 我需要在它移动到下面的辅助窗口 JWindow 时发送更新 所以它会是这样的 JFrame JWidow
  • 使用 laravel forge 永远运行 artisan 命令?

    有人可以建议我如何让我的自定义 artisan 命令与守护进程一起永远运行吗 我看过很多关于队列的教程 但它并不完全适合 我正在尝试使用 pubnub 的 php 库完成 订阅 这似乎是最好的方法 除非我错过了一些东西 提前致谢 如果您从命
  • 如何使用 LDAP 组成员身份同步设置 TeamCity [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 这是一个简短的指南 帮助您进行 TeamCity 的 LDAP 设置 在我设法让同步运行之前 我个人经历了相当多的挣扎 默认配置文件有