集成confluence6.7.1、jira7.8和crowd3.2.1 SSO登錄 統一賬戶管理

摘要

端午節閒來無事,想起公司的jira confluence 還沒集成單點登錄(也是應領導的需求),所以就有了這篇文章,記錄下過程,以備後查。

由於先前已經有了jira和confluence服務器,也已經使用了很長時間,上面的數據很多不適合重新做,所以就在已有jira、confluence的情況下集成SSO(crowd)。

如果小夥伴們需要部署新的jira和confluence網上有很多教程,在這裏我就不贅述了,破解工具(confluence、crowd)已經放到百度雲上 鏈接:https://pan.baidu.com/s/11kKunO6tsMpm-L6Y9KaZFg 密碼:popp

服務器架構如下:

名稱 服務器
jira http://172.16.165.174:8080
confluence http://192.168.6.107:8090/
crowd http://172.16.165.175:8095/
一、想要集成SSO單點登錄,需要先安裝crowd

用途:在安裝了confluence,jira,fisheye後發現每次登錄它們就得重新輸入用戶名密碼,所以安裝crowd, Atlassian單點登錄的產品,可以用於集中用戶、用戶組管理,方便權限控制。
1.下載crowd

$ wget https://product-downloads.atlassian.com/software/crowd/downloads/atlassian-crowd-3.2.1.tar.gz

2.安裝&破解&漢化

[crowd@crowd ~]$ tar xf atlassian-crowd-3.2.1.tar.gz -C /opt/
[crowd@crowd ~]$  vim /opt/atlassian-crowd-3.2.1/crowd-webapp/WEB-INF/classes/crowd-init.properties 
.......
crowd.home=/var/crowd-home   #最後一行crowd安裝路徑
[crowd@crowd ~]$ /opt/atlassian-crowd-3.2.1/start_crowd.sh  ##啓動

登陸8095端口查看,出現界面表示沒有問題,點擊set upcrowd
在這裏插入圖片描述
破解crowd:

[crowd@crowd ~]$ cp /opt/atlassian-crowd-3.2.1/crowd-webapp/WEB-INF/lib/atlassian-extras-3.2.jar /tmp/atlassian-extras-2.6.jar

把atlassian-extras-2.6.jar導出到windows 打開crowd_keygen.jar 鏈接:https://pan.baidu.com/s/11kKunO6tsMpm-L6Y9KaZFg 密碼:popp
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
數據庫初始化完成後(需要一段時間),繼續默認下一步即可。
3.啓動

啓動:
/crowd/atlassian-crowd-3.3.4/start_crowd.sh
停止:
/crowd/atlassian-crowd-3.3.4/stop_crowd.sh

4.漢化
將漢化包crowd-language_zh_CN-2.7.0.jar放入/opt/atlassian-crowd-3.2.1/crowd-webapp/WEB-INF/lib
在這裏插入圖片描述

二、Crowd 與 JIRA、Confluence集成
1、配置crowd

新建目錄,點擊crowd的diectories(目錄),點擊add diectory,選擇internal,點擊next;
在這裏插入圖片描述
填寫目錄名稱,點擊continue;
在這裏插入圖片描述
點擊update,完成目錄的添加
在這裏插入圖片描述
最終完成創建如下:
在這裏插入圖片描述

Crowd 與 JIRA 集成

導入jira的用戶,product選擇jira,diectory選擇apps,databases url填寫jira數據庫地址,點擊continue
在這裏插入圖片描述
在這裏插入圖片描述
添加用戶組,點擊crowd的groups,選擇add group,填寫name(主要是填寫confluence的用戶組,jira的用戶組在導入用戶時,會自動創建),點擊create
在這裏插入圖片描述
要保證有這些用戶組;
在這裏插入圖片描述
添加應用,點擊crowd的application,選擇add application,填寫相關信息,點擊next;
在這裏插入圖片描述
填寫要添加應用的路徑,,點擊resolve IP address,自動解析ip地址,點擊next
在這裏插入圖片描述
選擇目錄,選擇創建的apps目錄,點擊next
在這裏插入圖片描述
設置用戶允許從指定目錄訪問新添加的應用程序,勾選allow all users to authenticate,點擊next
在這裏插入圖片描述
點擊add application,完成新應用的添加
在這裏插入圖片描述
使用 JIRA 管理員,登錄 JIRA。點擊用戶管理 --> 用戶目錄 --> 添加目錄,選擇 “Atlassian 人羣”,點擊下一步
在這裏插入圖片描述
輸入 Crowd 服務器的配置,點擊測試,並保存。
在這裏插入圖片描述
名稱:Crowd Server
服務器的URL:Crowd的URL地址,比如:http://www.example.com:8095/crowd/
應用程序名稱:與在 Crowd 裏配置的 Application 名稱一致
應用程序密碼:與在 Crowd 裏配置的 Application 密碼一致

系統默認每 1 小時從 Crowd 同步一次用戶(系統管理員可修改),點擊同步按鈕也可手動同步。
註銷管理員用戶,使用 Crowd 裏的用戶嘗試登陸 JIRA,發現能夠登錄進去了。

2、Crowd 與 Confluence集成

參考 Crowd 與 JIRA 集成。


jira、confluence、crowd 以上三臺服務器添加hosts
編輯:/etc/hosts

192.168.6.190 atlassian.xx.com

最終
在這裏插入圖片描述

3、配置jira、confluence、crowd域名

需要注意的地方是想要實現SSO單點登錄 必須使用域名訪問。
一開始沒使用域名,這個也是坑我花費了很長的時間。

首先給各個服務配置上域名,在這裏我使用的是nginx,配置如下:

[crowd@crowd ~]$ more atlassian.conf 
	server {
        listen       80;
        server_name  atlassian.xx.com;
        client_max_body_size 500m;
    	proxy_connect_timeout 120;
    	proxy_send_timeout 600;
    	proxy_read_timeout 600;
        charset UTF-8;
        location ^~  /jira {
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                client_max_body_size 32m;
                client_body_buffer_size 128k;
                proxy_connect_timeout 90;
                proxy_send_timeout 240;
                proxy_read_timeout 240;
                #設置代理服務器(nginx)保存用戶頭信息的緩衝區大小
                proxy_buffer_size 128k;
                #proxy_buffers緩衝區,網頁平均在32k以下的設置
                proxy_buffers 32 32k;
                #高負荷下緩衝大小(proxy_buffers*2)
                proxy_busy_buffers_size 128k;
                #設定緩存文件夾大小,大於這個值,將從upstream服務器傳
                proxy_temp_file_write_size 128k;
                #limit_except PUT GET POST HEAD OPTIONS { deny all;}
                add_header Cache-Control no-cache;
                add_header Cache-Control no-store;
                add_header  pragma  no-cache;
                add_header Cache-Control must-revalidate;
                add_header expires  0 ;
                proxy_pass http://172.16.165.174:8080/jira;
        }
 
         location / {  
            try_files $uri @confluence;  
         }  
  
         location @confluence {  
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            internal;  
            proxy_pass http://wiki;  
         }  
        location ^~ /crowd {
           		proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                client_max_body_size 32m;
                client_body_buffer_size 128k;
                proxy_connect_timeout 90;
                proxy_send_timeout 240;
                proxy_read_timeout 240;
                #設置代理服務器(nginx)保存用戶頭信息的緩衝區大小
                proxy_buffer_size 128k;
                #proxy_buffers緩衝區,網頁平均在32k以下的設置
                proxy_buffers 32 32k;
                #高負荷下緩衝大小(proxy_buffers*2)
                proxy_busy_buffers_size 128k;
                #設定緩存文件夾大小,大於這個值,將從upstream服務器傳
                proxy_temp_file_write_size 128k;
                #limit_except PUT GET POST HEAD OPTIONS { deny all;}
                add_header Cache-Control no-cache;
                add_header Cache-Control no-store;
                add_header  pragma  no-cache;
                add_header Cache-Control must-revalidate;
                add_header expires  0 ;
                proxy_pass http://172.16.165.175:8095/crowd;
        }
}

再修改jira、confluence服務的context-path配置

Crowd

默認支持,無需修改。

JIRA

# server.xml,在 Context 標籤中添加 path="/jira"
$ vi /opt/jira/atlassian/jira/conf/server.xml
<Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false" useHttpOnly="true">
# 重啓生效

Confluence

# server.xml,在 Context 標籤中添加 path="/confluence"
$ vi /opt/confluence/atlassian/confluence/conf/server.xml
<Context path="/confluence" docBase="../confluence" debug="0" reloadable="false" useHttpOnly="true">
# 重啓生效

訪問地址列表如下:

jira:
http://atlassian.xx.com/jira

wiki:
http://atlassian.xx.com/confluence

crowd:
http://atlassian.xx.com/crowd/
三、單點登錄(SSO)配置

在配置sso之前,各應用系統已配置好相應的域名
再次聲明需要配置域名!!!
1、Confluence 配置 SSO

# copy /opt/atlassian-crowd-3.2.1/client/crowd-integration-client-3.2.1.jar 到 jira服務的 /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/

# 編輯 seraph-config.xml
$ vi /opt/confluence/atlassian/confluence/confluence/WEB-INF/classes/seraph-config.xml
# 註釋掉
<!--<authenticator class="com.atlassian.confluence.user.ConfluenceGroupJoiningAuthenticator"/>-->

# 打開註釋
<authenticator class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"/>

# 修改 crowd.properties
$ vi /opt/atlassian/confluence/confluence/WEB-INF/classes/crowd.properties
#application.name:配置 crowd 裏該 Application 的名稱
#application.password:配置 crowd 裏該 Application 的密碼
#application.login.url:配置 crowd 的地址
#crowd.server.url:配置 crowd 的 services 地址
#crowd.base.url:配置 crowd 的 baseurl 地址
#session.tokenkey:與 crowd 管理頁面的SSO cookie name保持一致
application.name                        confluence
application.password                    xx
application.login.url                   http://atlassian.xx.com/crowd/ 
crowd.server.url                        http://atlassian.xx.com/crowd/services/
crowd.base.url                          http://atlassian.x.com/crowd/
session.isauthenticated                 session.isauthenticated
session.tokenkey                        crowd.token_key
session.validationinterval              2
session.lastvalidation                  session.lastvalidation
# 重啓 Confluence 生效

驗證:
先登錄crowd,然後在打開一個頁面,輸入confluence地址,發現不需要在手動輸入賬戶密碼,直接就登進去了
注意:必須使用帶域名的地址,登錄的用戶必須是同步過的用戶。

2、JIRA 配置 SSO

拷貝 /opt/atlassian-crowd-3.2.1/client/crowd-integration-client-3.2.1.jar 到 jira服務的 /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/

編輯 seraph-config.xml
在這裏插入圖片描述

參考 Confluence 配置 sso,基本一樣,只是 JIRA 的安裝目錄裏沒有 crowd.properties 文件,可以從 Confluence 或者 Crowd 拷貝一份,然後修改配置的內容即可。

$ cat   /opt/atlassian/jira/atlassian-jira/WEB-INF/classes/crowd.properties 
application.name                        jira
application.password                    confluence
application.login.url                   http://atlassian.xx.com/crowd/ 
crowd.server.url                        http://atlassian.x.com/crowd/services/
crowd.base.url                          http://atlassian.x.com/crowd/
session.isauthenticated                 session.isauthenticated
session.tokenkey                        crowd.token_key ##與crowd系統配置的token保持一致
session.validationinterval              2
session.lastvalidation                  session.lastvalidation

重啓服務。

四、配置程序導航器

jira配置:
在這裏插入圖片描述
在這裏插入圖片描述
confluence配置:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
使用已有的賬號登錄jira或者confluence,點擊導航器切換服務,看是否自動登錄,是否需要再次登錄,如果不需要說明sso單點登錄配置成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章