Crowd
- 1 install
- 2 SSO 설정
- 2.1 Application 연동
- 2.1.1 Crowd
- 2.1.2 jira/confluence-crowd 설정
- 2.1.2.1 Server 설정
- 2.1.2.1.1 crowd.properties
- 2.1.2.1.2 seraph-config.xml
- 2.1.2.2 Web 설정
- 2.1.2.1 Server 설정
- 2.1 Application 연동
Crowd는 5.3.0 버전을 이용
install
JVM 설치 (java-openjdk-11)
# lavence 계정에서 진행
# dnf update & install
sudo dnf update -y
sudo dnf install java-11-openjdk java-11-openjdk-devel -y
# environment setting
vim ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.25.0.9-3.el9.x86_64/
export PATH=$JAVA_HOME/bin:$PATH
tar.gz 파일 압축해제 및 설치
# 파일은 linux 서버로 옮겼다고 가정
# 압축 해제
# (압축 전 tar이 없다는 에러 메시지가 나와서 tar 설치)
dnf install wget tar.x86_64 -y
tar -xvzf atlassian-crowd-5.3.0.tar.gz
# 디렉토리 이름 변경
mv atlassian-crowd-5.3.0 crowd
# 서비스 시작
cd crowd
./start_crowd.sh -bg
To run Crowd in the foreground, start the server with ./start_crowd.sh -fg
Using CATALINA_BASE: /home/lavence/crowd/apache-tomcat
Using CATALINA_HOME: /home/lavence/crowd/apache-tomcat
Using CATALINA_TMPDIR: /home/lavence/crowd/apache-tomcat/temp
Using JRE_HOME: /usr/lib/jvm/java-11-openjdk-11.0.25.0.9-3.el9.x86_64/
Using CLASSPATH: /home/lavence/crowd/apache-tomcat/bin/bootstrap.jar:/home/lavence/crowd/apache-tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Using CATALINA_PID: /home/lavence/crowd/apache-tomcat/work/catalina.pid
Tomcat started.
방화벽 해제 및 추가
(테스트를 위해서 일단 방화벽 해제함)
# firewalld stop
systemctl stop firewalld
###########
# 포트 추가
# 각 포트 허용 (crowd와 jira, confluence 모두 포함)
sudo firewall-cmd --permanent --add-port=8095/tcp # Crowd
sudo firewall-cmd --permanent --add-port=8080/tcp # Jira
sudo firewall-cmd --permanent --add-port=8090/tcp # Confluence
# 변경 사항 적용
sudo firewall-cmd --reload
# 확인
sudo firewall-cmd --list-ports
Home Directory 설정
web 설치 마법사 진행 중 home directory가 설정되어 있지 않다는 에러 메시지가 발생
# home directory 설정
mkdir -p /var/crowd
chown -R lavence:lavence /var/crowd
# setenv.sh의 위치는 ./apache-tomcat/bin/setenv.sh
vim ./apache-tomcat/bin/setenv.sh
export CATALINA_OPTS="$CATALINA_OPTS -Dcrowd.home=/var/crowd-home"
SSO 설정
개념에 대한 짤막한 설명
SSO를 설정하면 브라우저 쿠키가 공통 도메인에 있는 경우 같은 서비스처럼 로그인 인증이 가능. 예를 들어, lavence-test.com/confluence와 lavence-test/jira으로 confluence와 jira를 설정했으면 lavence-test.com이라는 같은 도메인으로 묶여(Reverse Proxy(nginx) 참조) 한 곳에서만 로그인 하면 다른 서비스에 로그인 없이 접속 가능
위와 같은 로그인 기능을 crowd에서 제공. → 개념은 이해했으나 서비스를 사용만 해봐서 연동을 하고 그룹 및 유저를 직접 추가할 때 이론과 실전이 매치가 안 되었음. 비유를 하자면, 자동차의 시동은 켤 줄 아는데, 자동차가 시동을 켜기까지 어떤 방식으로 진행되고 어떤 과정인지 몰랐던 셈 거대한 삽질
Application 연동
Crowd는 중앙관제이고, 각 서비스를 선언하고 서비스에서 crowd의 application을 연동시켜야 sso 인증을 사용 가능
Crowd
crowd 상단의 application에서 Add application에서 연동하고자 하는 서비스 등록
application type을 선택하고 원하는 서비스 등록
작성 완료 후 다음
그 다음 URL과 Remote IP를 넣고 다음 클릭
디렉토리 추가. 디렉토리는 유저와 그룹이 모두 포함된 개념. 스크린샷에 보이는 admin@dmove.kr Crowd server가 기본값으로 나머지는 따로 추가한 디렉토리.
필요한 인증 권한을 주고
완료를 눌러서 application 추가 완료
jira/confluence-crowd 설정
Server 설정
경로(설치한 경로에서)
confluence: ./confluence/confluence/WEB-INF/classes
jira: ./jira/atlassian-jira/WEB-INF/classes
crowd.properties
설정이 되어 있어야 Web에서 user directory에 crowd 등록 가능
(* https로 사용하는 경우 바꿔주기)
application.name jira # 예시는 jira. crowd에서 설정한 application 이름
application.password dmove1122! # 마찬가지로 crowd에서 설정한 비밀번호
application.login.url http://lavence-test.com/crowd/console/
crowd.server.url http://lavence-test.com/crowd/services/
crowd.base.url http://lavence-test.com/crowd/
session.isauthenticated session.isauthenticated
session.tokenkey session.tokenkey
session.validationinterval 2
session.lastvalidation session.lastvalidation
cookie.tokenkey crowd.token_key
seraph-config.xml
sso 인증으로 변경
# 기본값을 주석으로 처리
<!-- <authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/> -->
# SSO 인증을 주석 풀기
<authenticator class="com.atlassian.confluence.user.ConfluenceCrowdSSOAuthenticator"/>
Web 설정
설정(톱니바퀴) → User management → (왼쪽 바에서) User directory
추가를 위해 Add Directory → Atlassian Crowd
application name과 password는 crowd에서 설정한 것과 동일하게 설정해야 함 (스크린샷은 기존에 만든 것을 이용해 위에서 작성한 것과 이름이 다름) 작성 후 아래의 Test setting을 눌러서 확인
Test 완료 시 하단과 같이 success 문구가 뜸
Save and Test으로 저장