Skip to end of metadata
Go to start of metadata

中文标题【Confluence 用户管理的优化配置和限制

这个页面描述了在 Confluence 中进行用户管理的优化配置和限制。

基本建议

  • 避免跨目录的多个用户名:如果你连接了超过一个的目录服务器,我们建议你需要确定你的用户名在目录服务器中是唯一的。例如:我们不建议你定义一个用户同时在'Directory1' 和 'Directory2' 中都定义 jsmith 这个用户。这样要求的原因是避免在系统中导致混乱,尤其是在你对目录服务器进行切换的时候。修改目录服务器的排列顺序也会修改用户名的引用顺序。
  • 在远程目录中删除用户的时候请小心。当你连接使用 LDAP 目录,Crowd 目录或者 Jira 目录的时候,如果你要在远程目录中删除用户,请格外小心。如果你删除的目录在 Confluence 中有数据的话,将会在 Confluence 中导致问题。
  • 在用户名中避免 #(hash), /(slash )和 ?(question)符号。 Confluence 系统中对用户名使用符号#, ? 或 / 有已知的问题,因为使用这些符号的用户名将不能在系统中创建空间。请参考 https://jira.atlassian.com/browse/CONFSERVER-43494 和 https://jira.atlassian.com/browse/CONFSERVER-13479 获取更多信息。


连接到 LDAP 的建议


当你在使用 LDAP 目录为用户目录的时候,请考虑下面的一些限制和建议。

在你的 LDAP 目录中优化用户和用户组数量

连接 LDAP 服务器能为你的用户管理提供灵活高效的解决方案。为了达到优化的性能,后台同步程序将会从 LDAP 上查找和下载数据同步到你本地的 Confluence 服务器数据库上同时还会定时的更新数据以保持 Confluence 的数据与 LDAP 上的数据是一致的。

在对用户进行同步,拷贝,缓存的时候用户,用户组和用户组成员的数量将会决定系统同步所需要的时间。我们推荐最大用户的使用数量和同步方法在下面描述:

推荐影响连接的 LDAP 目录:

  • Microsoft Active Directory
  • 所有其他的 LDAP 目录服务器

下面的的 LDAP 配置不会对同步产生影响:

  • 使用 LDAP 授权的内部目录
  • LDAP 目录,但是配置为 仅用授权,用户第一次登录后拷贝用户(Authentication Only, Copy User On First Login)

基于你用户,用户组和用户组成员的数量,请选择下面的 LDAP 目录服务器配置解决方案。

你的环境

推荐配置

最多 10,000 (一万)用户,1000(1千)用户组和每一个用户组中 20 个用户

选择 'LDAP' 或 'Microsoft Active Directory' 目录类型。你可以使用完全同步选项。你的 Confluence 应用将会把 LDAP 服务器上的数据完全复制保存到本地数据库中。

超过上面的配置

使用 LDAP 过滤器来减少 LDAP 用户和用户组数据同步的时候可见和下载的数据量。

我们的测试结果

我们对从我们内部网络中从 AD 服务器上同步 10,000 用户,1000 用户组和 200,000 的用户组成员进行了测试。

我们发现初始化同步将要花费大概 5 分钟。后续的增量同步,指对 AD 服务器上有修改的用户信息同步的话只需要几秒钟就可以完成了。

请注意,影响用户同步效率和时间的一些因素如下:

  • 用户数量大小:使用 LDAP 过滤器来最小化的满足你的需求。
  • LDAP 服务器类型: 我们支持在 AD 中修改的查找,所以后续同步使用 AD 的服务器将会明显快于使用 LDAP 的服务器。
  • 网络技术情况:连接你 LDAP 服务器的网络情况越好,你的同步效率将会越高。
  • 数据库性能: 正如我们所描述的,同步 LDAP 服务器用户信息等于在本地数据库中缓存 LDAP 用户信息,你的数据库性能将会影响整个同步的效率。
  • JVM heap 大小: 如果你的 heap 大小被设置为过小的话,你的 Java 虚拟机将会在 LDAP 同步的时候进行大量的内存垃圾回收操作,这个将会影响你的同步性能。

不支持冗余(Redundant) LDAP

LDAP 连接不支持 2 个或者更多的 LDAP 冗余配置服务器(冗余配置服务器:当一个服务器宕机后,另一个服务器将会自动上线)。

有关 AD 的一些特殊说明

当应用程序对使用 Active Directory (AD) 的 LDAP 服务器进行同步的时候,同步的任务只对 LDAP 最近修改的数据进行同步而不是对整个数据库进行同步。因为是增量同步,在第一次完整同步完成后,后续的同步效率就非常高而且同步时间也非常短。

在另外一个方面,这个同步方法也会有一些限制:

  1. 从 Scope 外移动或者重命名对象将会在 AD 中导致问题:如果你从 AD 中移动对象到 scope 外,将会导致缓存和服务器上的用户数据不一致。我们不建议你使用外部 LDAP 目录界面来移动对象到 scope 外的子树。如果你对 LDAP 服务器进行了结构上的修改,我们建议你手动同步 LDAP 服务器来保持数据的完整性。
  2. 不支持在 AD 服务器之间同步Microsoft Active Directory 在不同实例之间不会复制 uSNChanged 属性。基于这个原因,我们不支持在连接 AD 服务器之间进行同步(你可以定义多个 AD 服务器,然后在 Confluence 中配置多个 AD 服务器)。
  3. 不支持配置在负载均衡后的 AD 同步:针对 2 个不同的 AD 服务器,Microsoft Active Directory 在不同实例之间不会复制 uSNChanged 属性。基于这个原因 AD 服务器不能配置负载均衡,因为 2 个 AD 的实例的名字是不一样的。你可以在你本地配置一个 AD 服务器而避免使用负载均衡。
  4. 当你从备份中恢复 AD 后,你必须重启你的 Confluence 服务器: 在一个 AD 服务器的备份和恢复过程中,uSNChanged 时间戳将会被设置为备份的时间。为了避免冲突和混乱,你需要在 AD 服务器进行备份和恢复后刷新你本地 Confluence 服务器上的缓存。
  5. 获得 AD 删除的对象,你需要管理员权限:Active Directory 存储删除的对象在一个特殊的容器中,这个容器被称为 cn=Deleted 对象。在默认的情况下,访问这个对象,你需要具有管理员权限,因此在同步删除用户的时候,你也需要有管理员权限和管理员的用户名和密码才可以访问到。可选的是,你可以修改 cn=Deleted 对象容器的权限。如果你希望这这样做,请参考 this Microsoft KB article 中的文章。
  6. 连接 AD 使用的 DN 用户名必须具有查看 uSNChanged 属性的权限:同步任务依赖 uSNChanged 属性来找到相关的修改。因此你必须正确配置 AD 的安全用户组配置,来让这个属性能够在 LDAP 对象和子树中存在。


连接到 Jira 用户管理的建议


当你在使用 JIRA 目录为用户目录的时候,请考虑下面的一些限制和建议。

不知道跨平台的多应用单点登录

当你使用 JIRA 为你的目录管理器的时候,系统将不能支持跨平台的单点登录。当 JIRA 用作目录管理的时候,不支持 SSO。directory manager, does not support SSO.

不支持自定义应用程序连接器

JIRA 应用程序,Confluence,FishEye,Crucible 和 Bamboo 可以连接到 JIRA 为用户目录管理器。但是自定义应用程序将需要使用新的 REST API。

不支持自定义目录

早期 JIRA 版本支持 OSUser  提供器。可以使用这个来重写一个特殊的提供器来从外部用户目录中获得用户的信息。现在这个方法不能使用了。

增加 JIRA 实例的负载

如果你的 JIRA 实例已经有比较高的负载了,如果还使用 JIRA 作为你的用户目录管理器,那么将会增加服务器的负载。

不支持 JIRA 云应用

你不能使用 JIRA 云应用来管理独立启动模式的用户。云平台用户和你自己运营的 Atlassian  应用程序需要对用户分开进行管理。

建议

你的环境

建议

如果下面所有的选项都为是的话:

  • JIRA 应用程序不在高负载下运行。
  • 你仅仅希望在一些不多的应用中跨平台管理你的用户和用户组,例如一个 JIRA 软件服务器和 Confluence 服务器,或者 2 个 JIRA 服务器。
  • 你不需要在你的 JIRA 和 Confluence 直接启用单点登录(SSO)。
  • 你没有自定义应用程序连接器。或者你有应用程序连接器,但是你有足够的技术力量将这个转换为新的 REST API。
  • 当你进行你 JIRA 应用升级的时候,关闭所有服务器是你可以接受的。

你的环境满足优化的需求,你可以使用 JIRA 为你的用户管理目录。

如果下面一个或者多个的选项都为是的话:

  • 如果你的 JIRA 应用已经在高负载下运行。
  • 你希望在超过 5 个应用直接共享用户和用户组管理。
  • 你需要在多个跨平台应用中使用 单点登录(SSO)。
  • 你没有自定义应用程序通过 Crowd SOAP API 进行了整合,同时你没有足够的技术力量将这个转换为新的 REST API。
  • 当你进行你 JIRA 应用升级的时候,关闭所有服务器是不可以接受的。

我们推荐你使用 Atlassian Crowd 进行用户管理和 SSO。

如果你考虑创建一个新的自定义目录来连接到你自己存储的用户和用户组...

可能下面的其中一个选项适合你:

  • 如果你希望写一个自定义提供器并且支持特定的 LDAP schema,请查看 LDAP schemas,也许你可以用其中的一个。
  • 如果你希望写一个自定义提供器并且支持嵌套用户组,请考虑在你支持的目录连接器中启用嵌套用户组。
  • 如果你希望写一个自定义提供器并且连接到你自己的数据库,请考虑载入数据倒你的应用程序数据库。
  • 如果你希望保持自定义目录连接,请考虑 Atlassian Crowd 可能适合你的需求。请查看  Creating a Custom Directory Connector 文档。


  • No labels