目录

目录

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. TensorFlow-谷歌深度学习库 图片处理模块

    Module: tf.image 这篇文章主要介绍TensorFlow处理图片这一块,这个模块和之前说过的文件I/O处理一样也是主要从python导过来的. 通过官方文档,我们了解到这个模块主要有一下 ...

  2. Hadoop平台基本组成

    1.Hadoop系统运行于一个由普通商用服务器组成的计算集群上,能提供大规模分布式数据存储资源的同时,也提供了大规模的并行化计算资源. 2.Hadoop生态系统 3.MapReduce并行计算框架 M ...

  3. python3字典:获取json响应值来进行断言

    前言:在接口自动化测试中,最后都是需要将返回结果进行断言.本文按照实际情况举例说明字典各种操作,以及如何提取响应数据来进行断言 1.dict = {'code': '200', 'message': ...

  4. Python web(Django)连接Sql server

    (开开心心每一天~ ---虫瘾师) Python Web(Django) 与SQL SERVRE的连接----Come QQ群:607021567(里面有很多开源代码和资料,并且python的游戏也有 ...

  5. 说一说js中__proto__和prototype以及原型继承的那些事

    在面试中遇到过,问js如何实现继承,其实最好的方式就是构造函数+原型,今天在讨论中,发现自己以前理解上的一些误区,特地写出来,最近都比较忙,等手上的项目做完,可以来做个总结. 先说我以前没有认识到位的 ...

  6. 你不知道的JavaScript--Item27 异步编程异常解决方案

    1.JavaScript异步编程的两个核心难点 异步I/O.事件驱动使得单线程的JavaScript得以在不阻塞UI的情况下执行网络.文件访问功能,且使之在后端实现了较高的性能.然而异步风格也引来了一 ...

  7. 13.app后端为什么要用到消息队列

    很多没有实际项目经验的小伙伴,对消息队列系统非常陌生,看着很多架构的介绍中,都提到消息队列.但是,不知道为什么要用消息队列?什么是消息队列?常见的消息队列产品有哪些? 通过阅读本文,帮你解开以上的疑惑 ...

  8. python之12306自动查票

      一.导读 本篇文章所采用的技术仅用于学习.研究,任何其他用途请自行承担后果. 12306自动查票使用到的python库主要是splinter,同时也涉及到查票的城市编码,具体的城市编码请在网络上搜 ...

  9. BZOJ_1030_[JSOI2007]文本生成器_AC自动机+DP

    BZOJ_1030_[JSOI2007]文本生成器_AC自动机+DP Description JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件:该软件的使用者是一些低幼人群, 他 ...

  10. BZOJ_4439_[Swerc2015]Landscaping_最小割

    BZOJ_4439_[Swerc2015]Landscaping_最小割 Description FJ有一块N*M的矩形田地,有两种地形高地(用‘#’表示)和低地(用‘.’表示) FJ需要对每一行田地 ...