目錄
目錄- 目錄
- 1、介紹
- 1.1、什么是Crowd?
- 2、Crowd 的官網在哪里?
- 3、如何下載安裝?
- 4、對 Crowd 進行配置
- 4.1、破解 Crowd 第一步
- 4.2、破解 Crowd 第二步,獲取授權許可
- 4.2、Crowd 的安裝 Crowd installation
- 4.3、資料庫配置 Database configuration
- 4.4、Crowd 選項 Options
- 4.5、內部目錄設定 Internal directory
- 4.6、設定默認管理員帳號 Default administrator
- 4.7、綜合應用 Integrated applications
- 4.8、查看破解后的授權資訊
- 4.9、創建應用程式目錄
- 4.10、添加用戶組 Group
- 4.11、從 JIRA 中匯入用戶
- 4.12、添加 JIRA 和 Confluence 應用程式
- 5、設定 Confluence 使用 Crowd 認證
- 5.1、設定 Crowd 的用戶目錄
- 5.2、啟用 Confluence 與 Crowd 的 SSO 集成
- 6、設定 Jira Software 使用 Crowd 認證
- 6.1、設定 Crowd 的用戶目錄
- 6.2、啟用 JIRA 與 Crowd 的 SSO 集成
- 7、相關文章
- 7.1、 Crowd Adding an Application
1、介紹
1.1、什么是Crowd?
以下是來自官網的介紹:
??能夠管理來自多個目錄(Active Directory、LDAP、OpenLDAP 或 Microsoft Azure AD)的用戶,并在一個位置控制應用身份驗證權限,
- 單點登錄 (SSO)
??為用戶提供一組用戶名和密碼來登錄需要訪問的所有應用,讓他們的生活更加輕松,無縫集成 Jira、Confluence 和 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.2 和 MySQL 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,在獲取授權碼時,回到我們剛才打開的破解檔案視窗,輸入Name、Email、Organization、Server 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 address、Username、Password、Confirm password、First name、Last 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-administrators、confluence-users、jira-administrators、jira-software-users、jira-software-developers 用戶組,Directory選擇我們剛才創建的apps,點擊 Create,

??
添加后的結果如下圖:

4.11、從 JIRA 中匯入用戶
如果之前沒有設定過
JIRA和Confluence統一使用JIRA的帳號登錄,或者兩套程式中沒有用戶,可以忽略此步驟,
第一步點擊上方的 Users,左側點擊 Import users,右側選擇Atlassian importer,然后點擊 Next,
??第二步,在 Atlassian product required 選擇 JIRA ,在 Directory 選擇 apps, 在 Product database URL 輸入 JIRA 的資料庫連接地址 jdbc:mysql://jira_mysql/jira?autoReconnect=true,Username 輸入用戶名 jira, Password 輸入 jira_mshk,點擊 Continue,
為什么這樣設定的 JIRA 資料庫資訊,請參考 Docker 創建 Jira Core/SoftWare 7.12.3 中文版
操作成功后,可以看到提示從 JIRA 匯入多少個用戶,

4.12、添加 JIRA 和 Confluence 應用程式
點擊 Applications->Add application,在 Application type 選擇 JIRA,輸入 Name 為 JIRA,Description是JIRA 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-administrators、confluence-users,如下圖,其他步驟沒有變化:

??
??最終 Jira Software、Confluence 應用程式添加后的效果如下圖:

??
??做完上面的步驟,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修改為confluence,application.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 /> 注釋,將 <!-- <authenticator /> --> 取消注釋,修改后的內容如下:
<!-- Default Confluence authenticator, which uses the configured user management for authentication. -->
<!-- <authenticator /> -->
<!-- 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 />
<!-- Specialised version of the default authenticator which adds authenticated users to confluence-users if they aren't already a member. -->
<!-- <authenticator /> -->
在管理后臺的站點管理->用戶&安全->安全配置中勾選上外部用戶管理,通過以上步驟,就完成了 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 /> 注釋,將 <authenticator /> 取消注釋,修改后的內容如下:
<!-- CROWD:START - If enabling Crowd SSO integration uncomment the following SSOSeraphAuthenticator and comment out the JiraSeraphAuthenticator below -->
<authenticator />
<!-- CROWD:END -->
<!-- CROWD:START - The authenticator below here will need to be commented out for Crowd SSO integration -->
<!-- <authenticator /> -->
<!-- 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/218427.html
標籤:其他
