Confluence与Jira整合之统一用户管理

时间:2024-02-23 18:04:54
 
 
 
转至元数据结尾
 
转至元数据起始
 

中文标题【为用户管理连接到 Crowd 或者 Jira 】

你可以连接你的 Confluence 应用程序到 Atlassian Crowd 或 a Jira (5.3 及后续版本)来管理你的用户和用户组以及针对他们的授权。

为用户管理连接 Confluence 到 Crowd

 


Atlassian Crowd 是一个应用安全框架,这框架可以处理授权和在你的 Web 应用中互相授权。在 Crowd 中,你可以整合多个应用程序和用户目录,从而让所有系统都能支持单点登录(SSO)和*身份和授权管理。

Crowd 管理控制台(Crowd Administration Console)提供了一个 web 界面来管理目录,和他们的用户权限。请参考 _Crowd Description 页面中的内容。

什么时候使用这个选项:如果你想使用 Crowd 的所有功能选项来管理你的用户,用户组和用户目录的话,你可以连接到 Crowd。你可以让 Crowd 连接到其支持的多种目录服务器包括自定义目录连接。

 

 

希望连接 Confluence 到 Crowd:

  1. 进入你的 Crowd 管理控制台(Crowd Administration Console)然后在 Crowd 中定义 Confluence 应用。请查看 Crowd 文档:Adding an Application
  2. 在屏幕的右上角单击 控制台按钮 ,然后选择 基本配置(General Configuration 链接。
  3. 在左侧的面板中单击 用户目录(User Directories)
  4. 添加(Add)一个用户目录,然后选择类型 Atlassian Crowd\'。输入下面描述的配置信息。
  5. 保存目录设置。
  6. 在 用户目录(User Directories)界面中,通过单击目录前面的上下移动按钮,定义目录序列(directory order)。 这里是有关目录顺序如何影响系统的摘要信息:
    • 当应用程序允许对 LDAP 进行信息修改的时候,用户在系统中修改的信息只会影响到第一个目录。
    • 目录的顺序是对用户和用户组查找的时候的搜索顺序(通过在所有目录中对 Confluence 默认的用户组聚集,所以目录的顺序将不会影响成员)。
    有关的更多细节,请参考页面 Managing Multiple Directories
  7. 如果需要的话,配置 Confluence 使用 Crowd  单点登录(SSO)。请查看 Crowd 的文档:Integrating Crowd with Atlassian Confluence

Confluence 的 Crowd 设置

 

设置

描述

名字(Name)

输入一个有意义的服务器名字,会让你在 Crowd 服务器中更好的识别你的目录服务器:

  • Crowd Server
  • Example Company Crowd

服务器URL(Server URL)

你的 Crowd 控制服务器地址。例如:

应用名(Application Name)

为了让你的 Crowd 服务器识别的你的应用的名字。请注意,你同时使用 Crowd 管理员控制台在 Crowd 中定义这个名字。请查看 adding an application 文档中的内容。

应用密码(Application Password)

使用 Crowd framework 框架的客户端的应用的用户密码。这个密码是你在 Crowd 中注册应用时候使用的用户密码。请查看 adding an application 文档中的内容。

 

 

请注意:当使用 Jira/Crowd  作为外部目录的时候,可能会在一些实例中存在用户密码不能保存的问题。 https://jira.atlassian.com/browse/CONFSERVER-33979

 

Crowd 权限

 

设置

描述

只读(Read Only)

从 Crowd 上获取的用户,用户组和用户组成员信息只具有读取权限,你只能在 Crowd 上对你的配置进行修改。你不能通过你的应用程序管理员界面修改,用户,用户组,用足成员信息的配置。

读和写(Read/Write)

从 Crowd 上获取的用户,用户组和用户组成员信息你是可以在本地应用程序管理员界面中进行修改的。在应用程序管理员界面中修改的内容将会同时同步回 Crowd 上。请确定你的应用程序在 Crowd 上具有修改的权限。请参考 _Crowd Permission Settings 中的内容。

 

高级 Crowd 设置

 

设置

描述

启用嵌套用户组(Enable Nested Groups)

为嵌套组启用或禁用支持。 

在启用嵌套用户组之前,你需要检查你在 Crowd 中定义的目录能够支持嵌套用户组。当嵌套用户组启用成功后,你可以将一根用户组定义为另外一个用户组的成员。

如果你使用的是用户组来对权限进行管理,你可以使用嵌套用户组来允许一个用户组的权限继承上级用户组,使系统的权限配置变得简单。

同步时间(分钟)(Synchronisation Interval (minutes))

同步指的是应用程序从目录服务器上更新自己用户和用户组上的信息的时间间隔。这个参数表示的是你的应用服务器将会在 x 分钟发送一个请求到你的目录服务器上。

默认的配置是 60 分钟。

 

 

为用户管理连接 Confluence 到 Jira 应用程序

请注意,在使用这个功能的时候,你的 Jira 应用许可证数量和 Confluence 的许可证数量不需要完全等同。例如,你可以通过 Jira 管理一个 50 个用户的 Confluence 许可证,尽管你的 Jira 软件只有 25 个用户许可证。

 

 


基于一些限制,你可以连接一系列 Atlassian 应用程序到 JIRA 应用程序中,以便于你使用 JIRA 集中管理你的用户。

什么时候使用这个功能:你可以连接一个运行 JIRA 4.3 及后续版本的服务器,JIRA 4.3 及后续版本, JIRA Software 7.0 及后续版本, JIRA Core 7.0 及后续版本或者 JIRA Service Desk 3.0 及后续版本。针对简单的配置和用户的的限制,你可以考虑使用 Atlassian Crowdor。

 

 

 

希望连接 Confluence 到一个 Jira 应用:

 

  1. 在你的 Jira 应用中,进入  > 用户管理(User Management) > Jira 用户服务器(Jira User Server
    (针对 Jira 6.4 及早期版本,通过Jira administration screen then 用户User Management) > Jira 用户服务器(Jira User Server进入)。
    • 单击 添加应用(Add Application)
    • 输入 Confluence 用于访问 Jira 的应用程序名称(application name)和密码(password ) 
    • 输入你 Confluence  服务器的 IP 地址或者地址。 有效的值,请参考:
       
      • A full IP address, e.g. 192.168.10.12.
      • A wildcard IP range, using CIDR notation, e.g. 192.168.10.1/16. For more information, see the introduction to CIDR notation on Wikipedia and RFC 4632.

       

    • 保存(Save为新的应用程序。
  2. 在 Confluence 中设置 Jira 用户目录:
    • 在屏幕的右上角单击 控制台按钮 ,然后选择 基本配置(General Configuration 链接。
    • 在左侧边栏中单击 用户目录(User Directories)。
    • 添加(Add一个目录,然后选择类型 Atlassian Jira
    • 输入下面描述的设置。当设置中询问应用名称(application name)和 密码(password)的时候,输入在 Jira 中定义 Confluence 连锁需要的用户名和密码。
    • 保存目录设置。
    • (警告) 在下一步完成之前,不要修改你的目录读取顺序。否则有可能将你自己锁定到 Confluence 系统之外(你不能登录 Confluence 系统)。

  3. 为了可以使用 Confluence,用户必须是 confluence-users 用户组的成员,或者具有 Confluence 的可以使用(can use)的权限。下面的步骤是在你的 Jira 应用中配置 Confluence 用户组的步骤:
    1. 在你的 JIRA 应用中添加 confluence-users 和 confluence-administrators 用户组。
    2. 在上面的用户组中添加你自己的用户名来作为一个组成员。
    3. 选择下面的方法来让你 JIRA 中的用户能够访问 Confluence:
      • 方法 1:在你的 JIRA 应用中,找到这些用户所属的用户组,然后将这个用户组添加为上面 2 个 Confluence 用户组的成员。这里等于用户组嵌套的关系。
      • 方法 2:使用你的 JIRA 账号登录 Confluence,然后进入 Confluence 的 管理员控制台(Administration Console界面。单击 全局属性(Global Permissions),然后将 可以使用(can use)权限指派给你 JIRA 中希望使用 Confluence 的用户组。

     

  4. 在 用户目录(User Directories)界面中,通过单击目录前面的上下移动按钮,定义目录序列(directory order)

     

    这里是有关目录顺序如何影响处理流程:

    • 目录中的顺序是被用来如何查找用户和组的顺序。
    • 修改用户和用户组将会仅仅应用到应用程序具有修改权限的第一个目录中。

     

     有关的更多细节,请参考页面:Managing Multiple Directories

请确定你已经添加了你的 Confluence 应用的 URL 到 Jira 的白名单列表中了。请访问:Jira Administration >> System >> Security >> Whitelist 来确定你的白名单已经正确添加了。例如:https://confluence.atlassian.com/ 或者请参考下面的指南:Configuring the whitelist

在 Confluence 中的 Jira 设置

 

设置

描述

名字(Name)

输入一个有意义的服务器名字,会让你在 JIRA 服务器中更好的识别你的目录服务器:

  • Jira Service Desk Server
  • My Company Jira

服务器URL(Server URL)

你 Jira 服务器的 Web 访问地址。例如:

应用程序名(Application Name)

当用户作为用户管理员访问你 Jira 应用服务器的时候使用的用户名。

请注意,你还需要在 Jira 中定义的应用。通过在 \'Users, Groups & Roles\' section of the \'Administration\' 菜单下的其他应用(Other Applications)进行查看。

应用程序密码(Application Password)

当用户作为用户管理员访问你 Jira 应用服务器的时候使用的密码。

 

Jira 权限

 

设置

描述

只读(Read Only)

从你 JIRA 应用服务器上取得的用户,用户组和用户组成员。这些用户的信息只能通过你的 JIRA 服务器进行修改。

 

高级 Jira 设置

 

设置

描述

启用嵌套用户组(Enable Nested Groups)

为嵌套组启用或禁用支持。 

在启用嵌套用户组之前,你需要检查你在 JIRA 服务器中的嵌套用户组是否启用了。当嵌套用户组启用成功后,你可以将一根用户组定义为另外一个用户组的成员。

如果你使用的是用户组来对权限进行管理,你可以使用嵌套用户组来允许一个用户组的权限继承上级用户组,使系统的权限配置变得简单。

同步时间(分钟)(Synchronisation Interval (minutes))

同步指的是应用程序从目录服务器上更新自己用户和用户组上的信息的时间间隔。这个参数表示的是你的应用服务器将会在 x 分钟发送一个请求到你的目录服务器上。

默认的配置是 60 分钟。

 

Diagrams of Some Possible Configurations

 

 
 
 
Gliffy-Confluence-JIRA-Crowd
 

Diagram above: Confluence, JIRA and other applications connecting to Crowd for user management.

 
 
 
Gliffy-Confluence-To-JIRA
 

Diagram above: Confluence connecting to JIRA for user management.

 
 
 
Gliffy-Confluence-JIRA-LDAP
 

Diagram above: Confluence connecting to JIRA for user management, with JIRA in turn connecting to LDAP.

 

 

问题解决

下面是可能会发生的一些错误信息。如果你的系统中出现了下面的一些提示,你应该调整你的日志错误级别到 WARN,然后查看具体的错误原因。请参考:Configuring Logging

错误
消息
原因

error.jirabaseurl.connection.refused

Connection refused. Check if an instance of Jira is running on the given url
 

可能导致的原因是:

  • Jira url 不正确
  • Jira 实例没有在指定的 URL 下运行。
  • Jira  实例在指定的 URL 下运行,但是可能实例不是 4.3 及后续版本。
error.applicationlink.connection.refused Failed to establish application link between Jira server and Confluence server.

在 Jira 和 Confluence 之间不能创建应用连接。可能的原因是:

  • Confluence 或 Jira url 不正确
  • 2 个应用的实例没有在指定的 URL 下运行
  • 连接用户名或者密码不正确

请参考 Confluence 的日志文件来获得更多的信息。

error.jirabaseurl.not.valid This is not a valid url for a Jira application. 一个运行时异常被捕获到了。请参考 Confluence 的日志文件来确定异常发生的原因错误内容。

confluence和jira用户账户同步设置及使用方式记录

 

confluence和jira都是比较常见的开发辅助工具,这两者账户是可以互通同步的。方式有很多种,目前用的是confluence用户目录的形式,去拉取jira的用户体系,当然也支持LDAP等其他方式同步的。

 

 Confluence版本:6.14.10,Jira版本:7.12.3,是部署在docker中的

 

 如果是通过jira创建用户目录,由confluence来同步的话,要先安装好jira,并建立相关用户。在confluence安装时选择connect to jira或者安装完成后在站点管理-用户目录-添加用户目录进行配置

 

 

注意服务器URL必须根据容器网络情况填写,比如常见的bridge模式连接的话,必须填写bridge上的地址,比如我的就是容器的ip地址+端口172.17.0.3:8080

 

配置jira权限

jira权限主要是通过权限方案来控制的。每个项目都会指定一种权限方案,在权限方案中定义每种权限对应的人,可以是管理项目、浏览项目等等。下面说说我的权限方案。

首先从右上角 管理-问题-权限方案进入页面

在Jira创建用户组,因为需要隔离两个项目的人员,所以在Jira中就创建projectA-users和projectA-manager这样的用户组

 

我的项目分为管理员manager,pm产品经理,test测试人员,users普通开发人员,这只是个范例,实际可能需要根据权限划分把每种角色都细化。

 创建完成后,给每个用户组编辑成员

 

 然后是最重要的两步,第一步给用户组授予应用程序访问权,否则这些账号连登陆都登陆不了。

 

 

最后维护一下权限方案 ,打开问题-权限方案.并分别为项目A和B添加权限方案。建议写好一个后另一个直接复制,参照着改更快。

 

 点击权限方案右侧的权限,进入权限定义页面。比如给manager管理项目的权限,并且给user,pm,test浏览项目的权限。

 

 又比如这里,给manager,pm有创建问题的权限(实际还应该加上test),而删除问题只有项目的administrator才有权限。

 

 

 

项目的administrator在项目首页下面的项目设置-用户和作用中打开

 

可以看到默认每个项目的Administrators都会包含jira-administrators这个用户组。你可以再右上角为角色添加用户, 特别的指定某一用户为该项目管理员

 

 

 配置confluence

配置前,需要先同步目录,把用户、用户组从jira中同步过来。

进入设置-一般设置-用户目录,可以看到有一个远程的jira目录,点击同步,刚才在jira中定义的用户、用户组就都同步过来了

 

 

 

首先定义全局权限,进入左边的全局权限-编辑权限,把需要授权的用户组都加上,呈现可用状态,否则无法登录confluence。这里还可以选择创建空间(一般用户不需要给),站点管理,系统管理员权限。

 

 

然后是空间权限。可以定义全部、页面、博文、附件、评论等权限。打开空间权限,下面是现有的空间。我这里是把默认用户组设置为newbie,避免新人直接接触到项目核心资料。

 

 然后为每个空间分别定义权限。打开项目右侧的权限管理。

为manager加上全部权限,而pm,user只给添加权限

 

 需要注意最下面的匿名访问,如果允许匿名用户访问的话,所有用户都可以看到内容。一般而言,我们把它关掉。仅有公共新人资料区可以打开,比如我可以创建一个welcome空间,用于存放入职资料。

 

 

好了,这样所有项目权限就定义完毕了。项目相互隔离,无法互相访问,每个项目又分为manager,pm,user几种角色,当然还可以进行细分。

因为新人进来还需要创建gitlab账号,gitlab,jira,confluence都是支持ldap的,所以后面考虑搭建一个open ldap服务来集中管理用户账号。