使用crowd作为集中认证server实现单点同步

前期准备:crowd

目标:在crowd创建一组用户分别用于jira,confluence,bitbucket系统中。 实现:在同一个session的浏览器中可以在三个应用的切换。

  • 使用管理员登录crowd,新建一个Directory作为jira,confluence,fisheye的通用目录。

     

  • 在crowd中创建用户组和用户

创建用户,如下

1.实现crowd与jira的集中认证和单点登录

crowd端创建应用程序

crowd端添加应用程序,注意:要记住这块填写的密码,后面会用到

 

连接,添加远端jira的url地址

 

添加授权和认证的目录

授权,可以选择特定的组进行认证,我这边所有用户都要认证。

确认添加

 

应用程序创建完毕

 

jira端添加目录实现集中认证配置

登录Jira的管理部分 单击“ 用户管理”下左侧栏的“ 用户目录 ”标签。 标签。 点击“ 添加目录 ”。然后从下拉列表中选择“ Atlassian Crowd ”。单击“ 下一步 ”。 输入连接参数并保存。现在,新的Crowd目录应该出现在用户目录列表中,创建完如下,可以通过顺序调整内部目录和外部目录的权限:

  • 如果crowd用户无法登陆,注意修改应用程序访问权,赋予crowd组应用程序访问权。

  • 可以通过用户组编辑crowd组中用户的权限。

jira&crowd单点登录认证实现

上一步骤只是实现了集中认证,现在我们来配置jira的SSO单点登录

1 如果jira正在运行,请先关闭它
2 编辑JIRA/atlassian-jira/WEB-INF/classes/seraph-config.xml文件。注释掉authenticator 节点:(第100行)
<!--<authenticator class="com.atlassian.jira.security.login.JiraSeraphAuthenticator"/>-->
取消注释包含新验证器的行(95行)
<authenticator class="com.atlassian.jira.security.login.SSOSeraphAuthenticator"/>
3 将crowd.properties文件复制CROWD/client/conf/到JIRA/atlassian-jira/WEB-INF/classes。
cp /opt/atlassian/crowd/client/conf/crowd.properties /opt/atlassian/jira/jira/atlassian-jira/WEB-INF/classes/

4 编辑JIRA/atlassian-jira/WEB-INF/classes/crowd.properties。更改以下属性:
application.name=jira
application.password=123456ok
crowd.server.url=http://10.0.0.112:8095/crowd/
session.validationinterval=2
session.isauthenticated=session.isauthenticated
session.lastvalidation=session.lastvalidation
crowd.base.url=http://10.0.0.112:8095/crowd/

#配置权限
chown -R jira:jira /opt/atlassian/jira/jira/atlassian-jira/WEB-INF/classes/crowd.properties
root@anolis810:~# chmod 644 /opt/atlassian/jira/jira/atlassian-jira/WEB-INF/classes/crowd.properties

5 启动jira进行测试

2.实现crowd与confluence的集中认证和单点登录

crowd端创建应用程序

  • 如jira那步添加应用程序,应用程序创建完毕,这个时候实现了对jira做集中认证,就是用户在confluence出现了crowd的用户组和用户。

confluence端添加目录实现集中认证配置

  • 此时crowd用户已经出现在confluence中,但是此时他们是无法登陆的,需要为他们添加全局权限

  •  

    否则匿名访问是不可访问的。

  • 可以通过编辑用户组编辑用户的权限

confluence&crowd单点登录认证实现

1 如果confluence正在运行,请先关闭它
2 编辑confluence/confluence/atlassian-confluence/WEB-INF/classes/seraph-config.xml文件。
注释掉authenticator 节点:(第43行)
<!--<authenticator class="com.atlassian.jira.security.login.JiraSeraphAuthenticator"/>-->
取消注释包含新验证器的行(48行)
<authenticator class="com.atlassian.jira.security.login.SSOSeraphAuthenticator"/>

3 将crowd.properties文件复制CROWD/client/conf/到confluence/atlassian-confluence/WEB-INF/classes。
cp /opt/atlassian/crowd/client/conf/crowd.properties /opt/atlassian/confluence/confluence/confluence/WEB-INF/classes

4 编辑confluence/atlassian-confluence/WEB-INF/classes/crowd.properties。更改以下属性:
application.name=confluence
application.password=123456ok
crowd.server.url=http://10.0.0.112:8095/crowd/
session.validationinterval=2
session.isauthenticated=session.isauthenticated
session.lastvalidation=session.lastvalidation
crowd.base.url=http://10.0.0.112:8095/crowd/

#配置权限
chown -R confluence:confluence /opt/atlassian/confluence/confluence/atlassian-confluence/WEB-INF/classes/crowd.properties
root@anolis810:~# chmod 644 /opt/atlassian/confluence/confluence/atlassian-confluence/WEB-INF/classes/crowd.properties

5 启动confluence进行测试

取消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与bitbucket的集中认证和单点登录

crowd端创建应用程序

  • 如jira那步添加应用程序,应用程序创建完毕,这个时候实现了对bitbucket做集中认证,就是用户在bitbucket出现了crowd的用户组和用户。

bitbucket端添加目录实现集中认证配置 

 

  • 此时crowd用户已经出现在bitbucket中,但是此时他们是无法登陆的,需要为他们添加全局权限

  •  

    否则匿名访问是不可访问的。

  • 可以通过编辑用户组编辑用户的权限

bitbucket&crowd单点登录认证实现

1 如果bitbucke正在运行,请先关闭它


2 将crowd.properties文件复制CROWD/client/conf/到/opt/atlassian/bitbucket/app/WEB-INF/classes
cp /opt/atlassian/crowd/client/conf/crowd.properties /opt/atlassian/bitbucket/app/WEB-INF/classes

3 编辑/var/atlassian/application-data/bitbucket/shared/bitbucket.properties。添加以下属性:
# Crowd SSO 配置
plugin.auth-crowd.sso.enabled=true
crowd.server.url=http://10.0.0.112:8095/crowd/
crowd.application.name=bitbucket
crowd.application.password=123456ok
crowd.base.url=http://10.0.0.112:8095/crowd/


#配置权限
chown -R bitbucket:atlassian /var/atlassian/application-data/bitbucket/shared/bitbucket.properties

4 启动bitbucket进行测试

crowd&confluence&bitbucket实现SSO单点登录

crowd权限: jira 为Crowd目录提供 只读权限。Crowd目录中的用户,组和成员资格是从Crowd中检索的,只能从Crowd中进行修改。您无法使用jira修改群组用户,组或成员身份。 设置Crowd目录后,您可以通过将以下设置启用或禁用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>

vim jira_home/atlassian-jira/WEB-INF/classes/seraph-config.xml 注释98行,取消注释94行

下面是confluence

vim confluence_home/confluence/WEB-INF/classes/seraph-config.xml 注释43行,取消注释48行

下面是bitbucket

vim /var/atlassian/application-data/bitbucket/shared/bitbucket.properties添加crowd认证配置,

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部