目录

目录

1、介绍

1.1、什么是Crowd?

以下是来自官网的介绍:

  能够管理来自多个目录(Active Directory、LDAP、OpenLDAP 或 Microsoft Azure AD)的用户,并在一个位置控制应用身份验证权限。

  • 单点登录 (SSO)

      为用户提供一组用户名和密码来登录需要访问的所有应用,让他们的生活更加轻松。无缝集成 JiraConfluence 和 Bitbucket 等所有 Atlassian 产品,为您的用户提供单点登录 (SSO) 体验。
  • 集中多个目录

      将任意目录组合映射到单个应用(非常适用于管理不在主目录中的用户),然后在同一位置管理身份验证权限。开始使用适用于 AD、LDAP、Microsoft Azure AD、Novell eDirectory 等的连接器。您甚至可以创建自己的自定义连接器。

不建议大家在公司使用破解版。

2、Crowd 的官网在哪里?

https://www.atlassian.com/

3、如何下载安装?

我将 Crowd 3.3.2 直接封装到了 Docker 镜像中,如何安装Docker,请参考这篇文章<Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例>

    

  以下实例中安装 Crowd 3.3.2 ,需要用到 MySQL 5.7,如果你已经安装完Docker,可以下载已经做好的 <docker-compose.yml>。文件内容如下,请注意修改/srv/your_folder/my.ini的位置为你下载后的文件位置:

version: '3'
# https://docs.docker.com/compose/compose-file/
# support Docker version 17.05.0-ce
services: #################################### crowd ###################################################### ##############################
# jira_crowd_mysql
##############################
jira_crowd_mysql:
image: "idoall/mysql:5.7"
hostname: jira_crowd_mysql
ports:
- "6033:3306"
volumes:
- /srv/your_folder/my.ini:/etc/mysql/my.cnf
networks:
- crowd
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=crowd
- MYSQL_USER=crowd
- MYSQL_PASSWORD=crowd_mshk
- character-set-server=utf8mb4
- collation-server=utf8mb4_bin
deploy:
replicas: 1
update_config:
delay: 1s
restart_policy:
condition: on-failure
##############################
# jira_crowd
##############################
jira_crowd:
image: "idoall/ubuntu16.04-jira-crowd:3.3.2"
hostname: jira_crowd
ports:
- "80:8095"
networks:
- crowd
depends_on:
- jira_crowd_mysql
deploy:
replicas: 1
update_config:
delay: 1s
restart_policy:
condition: on-failure # 统一网络设置
networks:
crowd:
driver: overlay

我们运行以下命令,使用 Docker Stack 的编排服务,来创建 Crowd 3.3.2 以及 MySQL 5.7 服务:

$ docker stack deploy -c docker-compose.yml mshk_crowd
Creating network mshk_crowd_crowd
Creating service mshk_crowd_jira_crowd
Creating service mshk_crowd_jira_crowd_mysql

启动成功后,使用下面的命令,可以看到 Crowd 3.3.2MySQL 5.7 的服务运行状态:

$ docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
hgijdmnrwobl mshk_crowd_jira_crowd replicated 1/1 idoall/ubuntu16.04-jira-crowd:3.3.2 *:80->8095/tcp
8jqw32rdaoh6 mshk_crowd_jira_crowd_mysql replicated 1/1 idoall/mysql:5.7 *:6033->3306/tcp

再等几分钟以后,在<docker-compose.yml>文件中,可以看到,我们对 Crowd 做了80->8095端口的映射,所以打开:http://localhost ,能够看到如下页面,说明运行成功:

这时的等待是因为 Crowd的服务需要启动, MySQL 5.7 的数据库需要创建。

4、对 Crowd 进行配置

4.1、破解 Crowd 第一步

Crowd 3.3.2 的破解文件已经打包到了 Docker 中。

  先用 docker ps 命令,查看服务生成的容器名称,本文测试时生成的容器名称是 mshk_crowd_jira_crowd.1.vvl9un0ubbyos0so8xoms1r81

CONTAINER ID        IMAGE                                 COMMAND                  CREATED             STATUS              PORTS                     NAMES
f41c14a845ec idoall/ubuntu16.04-jira-crowd:3.3.2 "/bin/bash -e /init/…" 37 minutes ago Up 37 minutes 8095/tcp mshk_crowd_jira_crowd.1.vvl9un0ubbyos0so8xoms1r81
5adfee0cc8d8 idoall/mysql:5.7 "docker-entrypoint.s…" About an hour ago Up About an hour 3306/tcp mshk_crowd_jira_crowd_mysql.1.9z947zyvdxiswwt93drk6wxh6

Docker 编排服务后的容器名称比较长,把容器名称赋值到一个变量CONTAINERNAME ,这样后面使用起来会很方便。

  将要破解的文件、破解工具从容器中复制到本地,并将要破解的文件atlassian-extras-3.2.jar重命名为atlassian-extras-2.6.jar

CONTAINERNAME=`docker ps --format "{{.Names}}" | grep mshk_crowd_jira_crowd.1`
docker cp $CONTAINERNAME:/home/work/_app/_jira_crowd/crowd-webapp/WEB-INF/lib/atlassian-extras-3.2.jar ./atlassian-extras-2.6.jar
docker cp $CONTAINERNAME:/usr/src/_crowd/crowd_keygen.jar .

在当前目录,运行以下命令,打开破解文件,在弹出的破解文件窗口中,点击.patch!,找到刚才从容器中复制出来的atlassian-extras-2.6.jar文件。破解成功后,在破解工具的左下方,会提示jar successfully patched这时不要着急关闭破解文件的窗口,后面还会用到

$ java -jar crowd_keygen.jar

停止 Crowd 容器运行的服务;同时将 Crowd 容器的原文件 atlassian-extras-3.2.jar 重命名为atlassian-extras-3.2.jar.bak做备份;再将我们破解后的atlassian-extras-2.6.jar文件,复制到容器中重命名为atlassian-extras-3.2.jar ;启动容器;下面是本次操作的命令:

$ docker exec $CONTAINERNAME sh -c '/home/work/_app/_jira_crowd/stop_crowd.sh;mv /home/work/_app/_jira_crowd/crowd-webapp/WEB-INF/lib/atlassian-extras-3.2.jar /home/work/_app/_jira_crowd/crowd-webapp/WEB-INF/lib/atlassian-extras-3.2.jar.bak'
$ docker cp atlassian-extras-2.6.jar $CONTAINERNAME:/home/work/_app/_jira_crowd/crowd-webapp/WEB-INF/lib/atlassian-extras-3.2.jar
$ docker exec $CONTAINERNAME sh -c '/home/work/_app/_jira_crowd/start_crowd.sh'

这时在浏览器,输入 http://localhost,打开 Crowd ,能够打开以界面,说明破解的第一步成功。

  

4.2、破解 Crowd 第二步,获取授权许可

点击 Set up Crowd,在获取授权码时,回到我们刚才打开的破解文件窗口,输入NameEmailOrganizationServer ID,点击.gen!,生成授权码,并将授权码复制到页面中,点击Continue

4.2、Crowd 的安装 Crowd installation

如图中选择New installation 新的安装,然后点击Continue

  

4.3、数据库配置 Database configuration

选择 JDBC connection,然后 Database 选择 MySQL,将 JDBC URL 的内容更改为 jdbc:mysql://jira_crowd_mysql/crowd?autoReconnect=true&characterEncoding=utf8&useUnicode=true,Username输入crowd,Password输入crowd_mshk,最后点击Continue

这里输入的数据库参数,是我们在<docker-compose.yml>中配置的主机名 jira_crowd_mysql ,数据库名称 crowd ,用户名 crowd ,密码 crowd_mshk

4.4、Crowd 选项 Options

这里可以设置 Crowd 的标题,会话超时的时间Session timeout单位是分钟,以及Base URL,点击Continue

4.5、内部目录设置 Internal directory

这里可以做一些基础的设置,比如密码的正则,无效登录的尝试次数等,我们不做太多演示,直接点击Continue

4.6、设置默认管理员帐号 Default administrator

输入Email addressUsernamePasswordConfirm passwordFirst nameLast name,点击Continue

4.7、综合应用 Integrated applications

什么也不操作,点击Continue

4.8、查看破解后的授权信息

用刚才设置的管理员帐号登录以后,点击右上角的齿轮,选择Licensing,能够看到破解日期已经延长到了2337年。

4.9、创建应用程序目录

点击上方的Directory->Add directory,选择Internal,点击Next,在Name处输入apps,点击Continue,创建成功后的效果如下图。

4.10、添加用户组 Group

点击Groups->Add roup,如下图,分别添加confluence-administratorsconfluence-usersjira-administratorsjira-software-usersjira-software-developers 用户组,Directory选择我们刚才创建的apps,点击 Create



  

添加后的结果如下图:

4.11、从 JIRA 中导入用户

如果之前没有设置过 JIRAConfluence 统一使用 JIRA 的帐号登录,或者两套程序中没有用户,可以忽略此步骤。

第一步点击上方的 Users,左侧点击 Import users,右侧选择Atlassian importer,然后点击 Next

  第二步,在 Atlassian product required 选择 JIRA ,在 Directory 选择 apps, 在 Product database URL 输入 JIRA 的数据库连接地址 jdbc:mysql://jira_mysql/jira?autoReconnect=trueUsername 输入用户名 jiraPassword 输入 jira_mshk,点击 Continue

为什么这样设置的 JIRA 数据库信息,请参考 Docker 创建 Jira Core/SoftWare 7.12.3 中文版

操作成功后,可以看到提示从 JIRA 导入多少个用户。

4.12、添加 JIRA 和 Confluence 应用程序

点击 Applications->Add application,在 Application type 选择 JIRA,输入 NameJIRADescriptionJIRA Application,再设置密码123456,点击Next.



  

  在URL输入设置的JIRA URL地址,点击 Resolve IP address,会自动解析出 Remote IP address

  选择刚才创建的apps目录,点击Next

  在Directory groups中选择jira-software-users,点击Add Group,将用户添加到授权组Authorised groups,同样操作将jira-administrators也添加到授权组,点击Next。(也可以勾选Allow all users to authenticate,允许目录中所有的用户访问)

  最后点击Add Application,新应用添加成功。



  

  Confluence 的添加方式同上,只是在选择用户组的时候,添加confluence-administratorsconfluence-users,如下图,其他步骤没有变化:



  

  最终 Jira SoftwareConfluence 应用程序添加后的效果如下图:



  

  做完上面的步骤,Crowd 的配置基本结束。

5、设置 Confluence 使用 Crowd 认证

5.1、设置 Crowd 的用户目录

第一步:使用管理员帐号登录到 Confluence 后台,左侧点击 用户目录 在弹出的窗口中选择 Atlassian 人群 ,点击 下一步

  第二步:在 应用程序名称 处输入刚才设置的 Confluence应用程序名称 confluence,在应用程序密码输入刚才我们设置的密码123456,点击 测试设置,能够看到如下图中有绿色的提示框,提示 连接测试成功,最后点 测试并保存

  第三步:在 用户目录,可以看到,我们刚添加的 Crowd Server 目录。



  

  调整 Crowd Server 目录的顺序到第一行,调整后的顺序如下:

5.2、启用 Confluence 与 Crowd 的 SSO 集成

修改 Confluence 容器中的文件 /opt/atlassian/confluence/confluence/WEB-INF/classes/crowd.properties,修改前的格式如下:

application.name                        username
application.password password
application.login.url http://localhost:8095/crowd/console/ crowd.server.url http://localhost:8095/crowd/services/
crowd.base.url http://localhost:8095/crowd/ session.isauthenticated session.isauthenticated
session.tokenkey session.tokenkey
session.validationinterval 2
session.lastvalidation session.lastvalidation

crowd.properties 文件中的内容改为我们之前配置的应用程序内容( 参考 本文的4.12章节), application.name修改为confluenceapplication.password修改为123456,修改后的内容如下:

application.name                        confluence
application.password 123456
application.login.url http://localhost:8095/crowd/console/ crowd.server.url http://localhost:8095/crowd/services/
crowd.base.url http://localhost:8095/crowd/ session.isauthenticated session.isauthenticated
session.tokenkey session.tokenkey
session.validationinterval 2
session.lastvalidation session.lastvalidation
cookie.tokenkey crowd.token_key

设置 Confluence 的验证授权为 Crowd,修改 /opt/atlassian/confluence/confluence/WEB-INF/classes/seraph-config.xml 文件,将 <authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/> 注释,将 <!-- <authenticator class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"/> --> 取消注释,修改后的内容如下:

<!-- Default Confluence authenticator, which uses the configured user management for authentication. -->
<!-- <authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/> --> <!-- Custom authenticators appear below. To enable one of them, comment out the default authenticator above and uncomment the one below. --> <!-- Authenticator with support for Crowd single-sign on (SSO). -->
<authenticator class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"/> <!-- Specialised version of the default authenticator which adds authenticated users to confluence-users if they aren't already a member. -->
<!-- <authenticator class="com.atlassian.confluence.user.ConfluenceGroupJoiningAuthenticator"/> -->

在管理后台的站点管理->用户&安全->安全配置中勾选上外部用户管理。通过以上步骤,就完成了 Confluence 使用 Crowd 认证.

  通过以下命令,重启 Confluence 容器内的服务,使用在 Crowd 中配置的用户登录,就可以测试效果了。

$ CONTAINERNAME=`docker ps --format "{{.Names}}" | grep mshk_confluence_confluence.1`
$ docker exec $CONTAINERNAME sh -c 'service confluence restart'

6、设置 Jira Software 使用 Crowd 认证

6.1、设置 Crowd 的用户目录

使用管理员帐号登录以后,右上角齿轮,选择用户管理->左侧选择用户目录,点击添加目录,在弹出的窗口中选择Atlassian 人群,点击下一步



  

  后面的步骤,同 5.1章节 一样,只是在 应用程序名称 处输入刚才设置的 JIRA应用程序名称 jira,在应用程序密码输入刚才我们设置的密码123456,点击 测试设置,能够看到如下图中有绿色的提示框,提示 连接测试成功,最后点 测试并保存

  添加后,将 Crowd Server 的顺序调整到第一行,调整后的效果如下图:

6.2、启用 JIRA 与 Crowd 的 SSO 集成

添加 JIRA 容器中的文件 /opt/atlassian/jira/atlassian-jira/WEB-INF/classes/crowd.properties,内容如下:

application.name                        jira
application.password 123456
application.login.url http://localhost:8095/crowd/console/ crowd.server.url http://localhost:8095/crowd/services/
crowd.base.url http://localhost:8095/crowd/ session.isauthenticated session.isauthenticated
session.tokenkey session.tokenkey
session.validationinterval 2
session.lastvalidation session.lastvalidation
cookie.tokenkey crowd.token_key

在这个版本中 /opt/atlassian/jira/atlassian-jira/WEB-INF/classes/crowd.propertie文件是不存在的,所以我们需要创建

设置 JIRA 的验证授权为 Crowd,修改 /opt/atlassian/jira/atlassian-jira/WEB-INF/classes/seraph-config.xml 文件,将 <authenticator class="com.atlassian.jira.security.login.JiraSeraphAuthenticator"/> 注释,将 <authenticator class="com.atlassian.jira.security.login.SSOSeraphAuthenticator"/> 取消注释,修改后的内容如下:

<!-- CROWD:START - If enabling Crowd SSO integration uncomment the following SSOSeraphAuthenticator and comment out the JiraSeraphAuthenticator below -->
<authenticator class="com.atlassian.jira.security.login.SSOSeraphAuthenticator"/> <!-- CROWD:END --> <!-- CROWD:START - The authenticator below here will need to be commented out for Crowd SSO integration -->
<!-- <authenticator class="com.atlassian.jira.security.login.JiraSeraphAuthenticator"/> -->
<!-- CROWD:END --> <!-- NB: the URL to redirect to is now specified by login.url above -->

通过以下命令,重启 JIRA 容器内的服务,使用在 Crowd 中配置的用户登录,就可以测试效果了。

$ CONTAINERNAME=`docker ps --format "{{.Names}}" | grep mshk_crowd_jira_crowd.1`
$ docker exec $CONTAINERNAME sh -c 'service jira stop;service jira start'

7、相关文章

7.1、 Crowd Adding an Application


博文作者:迦壹

博客地址:Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录

转载声明:可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作!

比特币地址:1KdgydfKMcFVpicj5w4vyn3T88dwjBst6Y

以太坊地址:0xbB0a92d634D7b9Ac69079ed0e521CC2e0a97c420


Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录的更多相关文章

  1. Docker 创建 Bamboo6.7.1 以及与 Crowd3.3.2 实现 SSO 单点登录

    目录 目录 1.介绍 1.1.什么是 Bamboo? 2.Bamboo 的官网在哪里? 3.如何下载安装? 4.对 Bamboo 进行配置 4.1.获取授权许可 4.2.一般配置 4.3.数据库配置 ...

  2. GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企业邮箱

    GitLab11.3.9 的安装方法: 点击查看.   Crowd3.3.2 的安装方法:点击查看.   需要先在 Crowd 创建应用程序,参考 <Docker 创建 Crowd3.3.2 以 ...

  3. Docker 创建 Crucible4.6.1 以及与 Crowd3.3.2 实现 SSO 单点登录

    目录 目录 1.介绍 1.1.什么是 Crucible? 2.Crucible 的官网在哪里? 3.如何下载安装? 4.对 Crucible 进行配置 4.1.破解 Crucible 第一步 4.2. ...

  4. Docker 创建 Jira Core(Jira SoftWare) 7.12.3 中文版

    目录 目录 1.介绍 1.1.什么是 JIRA Core? 1.2.什么是 JIRA SoftWare 2.JIRA 的官网在哪里? 3.如何下载安装? 4.对 JIRA 进行配置 4.1.JIRA ...

  5. Docker创建JIRA 7.2.4中文破解版

    目录 目录 1.介绍 1.1.什么是JIRA? 2.JIRA的官网在哪里? 3.如何下载安装? 4.对JIRA进行配置 4.1.打开浏览器:http://localhost:20012 4.2.JIR ...

  6. docker创建私有仓库

    由于网速和大中华局域网效果,使得我们在DockerHub下载镜像的速度很慢,甚至一些国内的镜像仓库,也感觉速度不是很好.所以,很有必要在本地或者一个我们访问很快速的地方(自己的云服务器)搭建一套镜像仓 ...

  7. [工具] 分布式系统下批量创建用户及分发公钥打通ssh通道的脚本

    在分布式系统下偶尔会有这样的需求,要增加一个服务时,需要在集群的所有节点上创建同一个用户,然后打通ssh通道,再分发软件包.配置.执行命令.启动服务... 这个问题的根源是如何集中配置和管理系统,专业 ...

  8. Docker创建支持ssh服务的容器和镜像

    原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行 ...

  9. Docker创建MySQL集装箱

    原文链接:Docker创建MySQL集装箱 这样做的目的是创建一个MySQL的image,出来的容器里自己主动启动MySQL服务接受外部连接 步骤: 1. 首先创建一个文件夹并在文件夹下创建一个Doc ...

随机推荐

  1. PAT1093: Count PAT's

    1093. Count PAT's (25) 时间限制 120 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CAO, Peng The strin ...

  2. ActiveMQ的使用

    ActiveMQ使用分为两大块:生产者和消费者 一.准备 项目导入jar包:activemq-all-5.15.3.jar 并buildpath    二.生产者 创建连接工厂 ActiveMQCon ...

  3. SSL WSS HTTPS

    SSLSSL(Secure Socket Layer,安全套接层) 简单来说是一种加密技术, 通过它, 我们可以在通信的双方上建立一个安全的通信链路, 因此数据交互的双方可以安全地通信, 而不需要担心 ...

  4. Spring Cloud authentication with JWT service

    @RequestMapping(value = "/authenticate", method = RequestMethod.POST) public ResponseEntit ...

  5. SpringBoot编写自定义的starter 专题

    What’s in a name All official starters follow a similar naming pattern; spring-boot-starter-*, where ...

  6. PuTTY/终端使用复制、粘贴

    Putty鼠标按钮选项 通过鼠标按钮选项可以控制鼠标来进行复制.粘贴操作,选项包括: 1.Windows选项: 2.混合模式(系统默认选项): 3.Xterm模式. 以上是三种模式选项的简单介绍,下面 ...

  7. latex中长公式换行,很好的办法

    今天在编辑公式时,有一个公式很长,写到一行就出去了.当时之前换行都是方程组或者在括号完之后换,都没有问题.但是今天我也换行的是在括号中间断开.这样出现问题,编辑的时候会出错误提醒.上网查了一些论坛,也 ...

  8. 教小朋友学Linux

    Linux最基础之<小朋友也能学会Linux>... 1.Linux 知识积累: Linux 英文解释为 Linux is not Unix.学习Linux必须要熟练使用的操作系统是Cen ...

  9. Linux下*.tar.gz/.tar.bz2 文件解压缩安装命令

    1. .tar.gz压缩命令: 命令格式: tar -zcvf 压缩文件名.tar.gz 被压缩文件名 可先切换到当前目录下.压缩文件名和被压缩文件名都可加入路径. 2. .tar.gz解压缩命令: ...

  10. Oracle中的decode()函数

    一.decode()函数 1.语法 DECODE(control_value,value1,result1[,value2,result2-][,default_result]); control _ ...