公司运行了jira,confluence,fisheye。但每次登录都需要输入多次用户名密码,觉得不太方便,所以需要对它们实现单点登录,crowd作为Atlassian单点登录的产品,可以用于集中用户、用户组管理,方便权限控制。
crowd安装参考:https://www.jianshu.com/p/2839c8bc409d
前期准备:
目标:在crowd创建一组用户分别用于jira,confluence,fisheye系统中。
实现:在同一个session的浏览器中可以在三个应用的切换。
-
使用管理员登录crowd,新建一个Directory作为jira,confluence,fisheye的通用目录。
image.png
image.png -
在crowd中创建用户组和用户
创建组,我新建了三个组用于后期在confluence和jira中的分权。
image.png
image.png
创建用户,如下
image.png
1.实现crowd与jira的集中认证和单点登录
crowd端创建应用程序
crowd端添加应用程序,注意:要记住这块填写的密码,后面会用到
连接,添加远端jira的url地址
添加授权和认证的目录
授权,可以选择特定的组进行认证,我这边所有用户都要认证。
确认添加
应用程序创建完毕
jira端添加目录实现集中认证配置
登录Jira的管理部分
单击“ 用户管理”下左侧栏的“ 用户目录 ”标签。 标签。
点击“ 添加目录 ”。然后从下拉列表中选择“ Atlassian Crowd ”。单击“ 下一步 ”。
输入连接参数并保存。现在,新的Crowd目录应该出现在用户目录列表中,创建完如下,可以通过顺序调整内部目录和外部目录的权限:
-
如果crowd用户无法登陆,注意修改应用程序访问权,赋予crowd组应用程序访问权。
image.png -
可以通过用户组编辑crowd组中用户的权限。
image.png
jira&crowd单点登录认证实现
上一步骤只是实现了集中认证,现在我们来配置jira的SSO单点登录
1 如果jira正在运行,请先关闭它
2 编辑JIRA/atlassian-jira/WEB-INF/classes/seraph-config.xml文件。注释掉authenticator 节点:
<!--<authenticator class="com.atlassian.jira.security.login.JiraSeraphAuthenticator"/>-->
取消注释包含新验证器的行
<authenticator class="com.atlassian.jira.security.login.SSOSeraphAuthenticator"/>
3 将crowd.properties文件复制CROWD/client/conf/到JIRA/atlassian-jira/WEB-INF/classes。
4 编辑JIRA/atlassian-jira/WEB-INF/classes/crowd.properties。更改以下属性:
application.name jira
application.password xxxxx
application.login.url http://192.168.1.202:8095/crowd/console/
crowd.server.url http://192.168.1.202:8095/crowd/servicess
/
crowd.base.url http://192.168.1.202:8095/crowd/
session.isauthenticated session.isauthenticated
session.tokenkey session.tokenkey
session.validationinterval 2
session.lastvalidation session.lastvalidation
cookie.tokenkey crowd.token_key
5 启动jira进行测试
2.实现crowd与confluence的集中认证和单点登录
crowd端创建应用程序
-
如jira那步添加应用程序,应用程序创建完毕,这个时候实现了对jira做集中认证,就是用户在confluence出现了crowd的用户组和用户。
image.png
confluence端添加目录实现集中认证配置
-
此时crowd用户已经出现在confluence中,但是此时他们是无法登陆的,需要为他们添加全局权限
image.png
否则匿名访问是不可访问的。
- 可以通过编辑用户组编辑用户的权限
confluence&crowd单点登录认证实现
1 如果Confluence正在运行,请先将其关闭。
2 现在,编辑文件CONFLUENCE/confluence/WEB-INF/classes/seraph-config.xml
注释掉该行:-
<!-- <authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/> -->
取消注释该行: -
<authenticator class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"/>
3 将crowd.properties文件复制CROWD/client/conf/到CONFLUENCE/confluence/WEB-INF/classes。
4 编辑CONFLUENCE/confluence/WEB-INF/classes/crowd.properties。更改以下属性:
application.name confluence
application.password xxxx
application.login.url http://192.168.1.202:8095/crowd/console/
crowd.server.url http://192.168.1.202:8095/crowd/servicess
/
crowd.base.url http://192.168.1.202:8095/crowd/
session.isauthenticated session.isauthenticated
session.tokenkey session.tokenkey
session.validationinterval 2
session.lastvalidation session.lastvalidation
cookie.tokenkey crowd.token_key
取消SSO单点登录
可以在Confluence中定义多个用户目录。但是,如果启用Crowd SSO集成,则只能从crowd.properties文件中定义的Crowd服务器进行身份验证。
要使用其他目录(例如Confluence Internal Directory)中的用户登录,您需要:
在Confluence管理控制台中,转到用户目录并禁用Crowd Server目录,或
通过恢复默认的Confluence身份验证器来禁用群组SSO。
禁用Crowd SSO的步骤:
1 如果当前正在运行,请关闭Confluence
2 编辑文件 CONFLUENCE/confluence/WEB-INF/classes/seraph-config.xml
3 取消注释默认的Confluence验证器
<authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/>
注释SSO身份验证
<!-- <authenticator class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"/> -->
重新启动Confluence
3.实现crowd与fisheye的集中认证和单点登录
crowd端创建应用程序
-
如jira那步添加应用程序,应用程序创建完毕,这个时候实现了对jira做集中认证,就是用户在fisheye出现了crowd的用户组和用户。
image.png
fisheye端添加目录实现集中认证配置
-
添加全局权限
image.png -
可以修改用户权限
image.png
crowd&fisheye实现SSO单点登录
crowd权限:
Fisheye 为Crowd目录提供 只读权限。Crowd目录中的用户,组和成员资格是从Crowd中检索的,只能从Crowd中进行修改。您无法使用鱼眼管理屏幕修改群组用户,组或成员身份。
设置Crowd目录后,您可以通过将以下设置添加到$FISHEYE_INST/config.xml 文件来启用或禁用Crowd SSO集成 (如果它们尚不存在,您可以创建缺少的xml节点)。默认情况下,如果未配置SSO,则会禁用SSO config.xml
CONFIG.XML中(增加目录时出现的语句)
<config>
...
<!-- crowd sso支持 -->
<crowd sso-enabled="true"/>
<admins><system-admins><user>changhuanyan</user><group>administrator crowd users</group></system-admins></admins><avatar><disabled/></avatar><emailVisibility visibility="visibleToUsers"/></security>
...
</config>
4 问题汇总:
Q1:jira 中添加目录
坑,在填写这一步骤时,代理服务器用户名总是莫名自动填写上admin,导致没法通过,正常代理服务器这块不需要填写,后来发现原来是浏览器记住密码,默认填写导致,删除浏览器记住密码即可
Q2:权限设置问题
corwd首先作为一个集中认证的地方,将用户同步到jira,wiki中,之后再各自对jira,wiki中添加的组做权限即可
Q3:crowd目前只实现了集中认证,SSO。没有实现域名支持
解决:重新配置sso单点登录并且关注
vim confluence_home/confluence/WEB-INF/classes/seraph-config.xml 注释43行,取消注释48行
vim jira_home/atlassian-jira/WEB-INF/classes/seraph-config.xml 注释98行,取消注释94行
Q4:jira到fisheye的display url显示名为http:hostname:8060 直接在左上角的导航页面无法直接跳转
解决:修改http bind参数,默认是:8060 修改后可以在/fisheye/fecru-4.7.0/config.xml中查看到
参考:https://confluence.atlassian.com/fisheye041/configuring-the-fisheye-web-server-847745899.html
参考:
https://confluence.atlassian.com/crowd/integrating-crowd-with-atlassian-jira-192625.html#IntegratingCrowdwithAtlassianJira-ConfigJIRA
https://confluence.atlassian.com/crowd/integrating-crowd-with-atlassian-confluence-198573.html
https://confluence.atlassian.com/fisheye/connecting-to-crowd-960155581.html
https://confluence.atlassian.com/crowd/overview-of-sso-179445277.html
crowd对接jenkins