Cài đặt CAS server trên CentOS 6 - Openroadvietnam/CAS-integration GitHub Wiki
yum install update
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Sử dụng Java JDK / JRE 7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
Sử dụng bản jdk-7u75-linux-x64.rpm Upload lên server để cài đặt
rpm -Uvh jdk-7u75-linux-x64.rpm
Kiểm tra phiên bản java:
java -version
Xóa file download về sau khi cài đặt
rm jdk-7u75-linux-x64.rpm -f
cd /usr/share
wget http://mirrors.digipower.vn/apache/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.tar.gz
tar -xzf apache-tomcat-7.0.57.tar.gz
rm apache-tomcat-7.0.57.tar.gz -f
cd /etc/init.d
vi tomcat
Lưu với dung sau:
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.7.0_75
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/share/apache-tomcat-7.0.57
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
chmod 755 tomcat
chkconfig --add tomcat
chkconfig --level 234 tomcat on
iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart
service tomcat start
-
Download CAS Server 3.5.2 Release.zip tại trang chủ https://www.apereo.org/cas/download
-
Thực hiện giải nén.
-
Trong gói giải nén có file modules/cas-server-webapp-3.5.2.war đổi tên file này thành cas.war, upload file này lên thư mục: /usr/share/apache-tomcat-7.0.57/webapps
-
Khởi động lại tomcat
service tomcat restart
- Truy cập trang http://ip:8080/cas/login
Nếu nhận được thông báo mầu đỏ:
Non-secure Connection
You are currently accessing CAS over a non-secure connection. Single Sign On WILL NOT WORK. In order to have single sign on work, you MUST log in over HTTPS
Chạy lệnh sau:
/usr/java/jdk1.7.0_75/bin/keytool -genkey -alias tomcat -keyalg RSA
Nhập các thông số tương tự như sau:
Enter keystore password: HXetjOy6TeSeVsS
What is your first and last name?
[Unknown]: VuThao
What is the name of your organizational unit?
[Unknown]: Vinades
What is the name of your organization?
[Unknown]: NukeViet
What is the name of your City or Locality?
[Unknown]: HaNoi
What is the name of your State or Province?
[Unknown]: ThanhXuan
What is the two-letter country code for this unit?
[Unknown]: vn
Is CN=VuThao, OU=Vinades, O=NukeViet, L=HaNoi, ST=ThanhXuan, C=vn correct?
[no]: y
Enter key password for <tomcat>
(RETURN if same as keystore password):
Re-enter new password:
Khi đó hệ điều hành sẽ sinh ra file /root/.keystore
vi /usr/share/apache-tomcat-7.0.57/conf/server.xml
Tìm đến đoạn:
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
Sửa thành (Thay your-key-password bằng pass đã nhập lúc tạo ở phía trên: HXetjOy6TeSeVsS)
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/root/.keystore" keystorePass="your-key-password"
clientAuth="false" sslProtocol="TLS" />
iptables -I INPUT 1 -p tcp --dport 8443 -j ACCEPT
service iptables save
service iptables restart
service tomcat restart
- Truy cập trang https://ip:8443/cas/login để kiểm tra
Thực hiện cài đặt các gói openldap-servers, openldap-clients
yum -y install openldap openldap-clients openldap-servers
Sử dụng lệnh slappasswd để sinh ra password dạng băm dùng để đăng nhập vào tài khoản quản trị OpenLDAP (ở đây sử dụng password là 123456). Copy lại password đã được băm này.
# slappasswd
New password:
Re-enter new password:
{SSHA}5lPFVw19zeh7LT53hQH69znzj8TuBrLv
[root]# cd /etc/openldap/slapd.d/cn\=config
[root]# vi olcDatabase\=\{2\}bdb.ldif
Nếu thuộc tính olcRootPW không tồn tại, tạo ra nó. Sau đó thiết lập giá trị là băm bạn tạo ra từ slappasswd. Ví dụ:
olcRootPW: {SSHA}5lPFVw19zeh7LT53hQH69znzj8TuBrLv
Tìm hai dòng sau
olcSuffix: dc=my-domain,dc=com
...
olcRootDN: cn=Manager,dc=my-domain,dc=com
Sửa lại trường olcSuffix, olcRootDN cho đúng với tên miền đã định trước (ở đây là dc=openroad, dc =vn đối với tên miền là openroad.vn)
Thêm hai dòng sau vào cuối file để giới hạn người xem các hash mật khẩu của người dùng khác.
olcAccess: {0}to attrs=userPassword by self write by dn.base="cn=Manager,dc=openroad,dc=vn" write by anonymous auth by * none
olcAccess: {1}to * by dn.base="cn=Manager,dc=openroad,dc=vn" write by self write by * read
với trường olcAccess mặc định sẽ là dc=my-domain, dc=com cần chỉnh sửa để phù hợp với tên domain
vi olcDatabase={1}monitor.ldif
service slapd start
chkconfig slapd on
chkconfig --add slapd
chkconfig --level 234 slapd on
iptables -I INPUT 1 -p tcp --dport 389 -j ACCEPT
service iptables save
service iptables restart
ở đây tạo một file tên là openroad.ldif với nội dung như sau:
dn: dc=openroad,dc=vn
objectClass: dcObject
objectClass: organization
dc: openroad
o : openroad
Để thêm vào cây thư mục LDAP sử dụng command sau:
ldapadd -f openroad.ldif -D cn=Manager,dc=openroad,dc=vn -w 123456
Nếu thêm thành công hệ thống trả về:
“adding new entry "dc=openroad,dc=vn" “
Tiếp theo thêm 2 ou là PeoPle và Groups bằng các tạo các file tương tự như group.ldif
dn: ou=People,dc=openroad,dc=vn
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=openroad,dc=vn
ou: Group
objectClass: top
objectClass: organizationalUnit
Thực hiện lệnh add tương tự và có kết quả trả về như sau là đã thêm thành công
ldapadd -f group.ldif -D cn=manager,dc=openroad,dc=vn -w 123456
adding new entry "ou=People,dc=openroad,dc=vn"
adding new entry "ou=Group,dc=openroad,dc=vn"
Tạo user tương tự trên ta tạo file user.ldif với nội dung sau:
dn: uid=admin,ou=People,dc=openroad,dc=vn
cn: admin
mail: [email protected]
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
sn: Admin
uid: admin
userPassword: userpassword
dn: uid=test1,ou=People,dc=openroad,dc=vn
cn: test1
displayName: Test1
mail: [email protected]
objectClass: inetOrgPerson
objectClass: top
userPassword: $123456
sn: test1
uid: test1
Thêm vào và kết quả trả về như sau:
ldapadd -f user.ldif -D cn=manager,dc=openroad,dc=vn -w 123456
adding new entry "uid=admin,ou=People,dc=openroad,dc=vn"
adding new entry "uid=test1,ou=People,dc=openroad,dc=vn"
Để CAS có thể lấy được thông tin người dùng từ máy chủ LDAP ta cần tải thư viện hỗ trợ tại đường dẫn sau:
http://mvnrepository.com/artifact/org.jasig.cas/cas-server-support-ldap
Chú ý: chọn lựa đúng phiên bản cas hỗ trợ và thực hiện download về và copy file (ở đây dùng phiên bản cas-3.5.2 nên ta download bản support tên cas-server-support-ldap-3.5.2.jar)
Tưong tự tải file spring-ldap-core-1.3.2.RELEASE.jar từ địa chỉ: http://mvnrepository.com/artifact/org.springframework.ldap/spring-ldap-core/1.3.2.RELEASE
Upload các file (cas-server-support-ldap-3.5.2.jar, spring-ldap-core-1.3.2.RELEASE.jar) lên thư mục của CAS server /usr/share/apache-tomcat-7.0.57/webapps/cas/WEB-INF/lib (đây là đường dẫn tùy thuộc trên máy từng người, dựa vào việc cài đặt apache-tomcat ở đâu)
Tiếp tục ta cần chỉnh sửa một số ở file deployerConfigContext.xml tại đường dẫn /usr/share/apache-tomcat-7.0.57/webapps/cas/WEB-INF
vi /usr/share/apache-tomcat-7.0.57/webapps/cas/WEB-INF/deployerConfigContext.xml
Khỏi đông Tìm đến đoạn
<bean
class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
Thay bằng đoạn:
<bean class="org.jasig.cas.adaptors.ldap.FastBindLdapAuthenticationHandler">
<property name="filter" value="uid=%u,ou=people,dc=openroad,dc=vn" />
<property name="contextSource" ref="contextSource" />
</bean>
Tìm đến dòng cuối cùng
</beans>
Thêm lên trên đoạn sau:
<bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
<property name="anonymousReadOnly" value="true" />
<property name="pooled" value="true"/>
<property name="userDn" value="cn=Manager,dc=openroad,dc=vn"/>
<property name="password" value="123456"/>
<property name="urls">
<list>
<value>ldap://127.0.0.1:389</value>
</list>
</property>
<property name="baseEnvironmentProperties">
<map>
<entry key="java.naming.security.authentication" value="simple" />
</map>
</property>
</bean>
service tomcat restart
- Truy cập trang https://ip:8443/cas/login để kiểm tra bằng tài khoản đã tạo bằng LDAP