<![CDATA[Latest posts for the topic "Single Sign-On with CAS"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Single Sign-On with CAS /hvaonline/posts/list/38273.html, mình cũng muốn tìm hiểu về CAS để làm Single Sign-On cho mấy sites nội bộ. Xin ghi lại các bước như sau: 1. Tích hợp CAS với LDAP theo hướng dẫn này: https://wiki.jasig.org/display/CASUM/LDAP /usr/local/src/cas-server-3.4.7/cas-server-webapp/pom.xml Code:
<dependencies>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>cas-server-support-ldap</artifactId>
        <version>${project.version}</version>
    </dependency>
    ...
</dependencies>
/usr/local/src/cas-server-3.4.7/cas-server-webapp/src/main/webapp/WEB-INF/deployerConfigContext.xml: Code:
...
       <bean class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler">
	                <property name="filter" value="cn=%u" />
	                <property name="searchBase" value="ou=IT,dc=domain,dc=vn" />
	                <property name="contextSource" ref="contextSource" />
	            </bean>
	        </list>
	    </property>
	</bean>
	<bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
        <property name="pooled" value="true" />
        <property name="urls">
        	<list>
            	<value>ldap://localhost/</value>
            </list>
        </property>
		<property name="userDn" value="cn=anonymous,ou=IT,dc=domain,dc=vn" />	
		<property name="password" value="changeit" />	
        <property name="baseEnvironmentProperties">
            <map>
                <entry>
                    <key><value>java.naming.security.authentication</value></key>
                    <value>simple</value>
                </entry>
            </map>
        </property>
	</bean>
Build WAR file with Maven: Code:
# mvn -Dmaven.test.skip=true package install
Install bằng cách copy cas.war vào thư mục webapps của Tomcat: Code:
# cp target/cas.war /usr/share/tomcat6/webapps/
Mở browser lên, truy cập: http://<cas_server_ip>:8080/cas/login và login thử với LDAP account sẽ thấy "Log In Successful". 2. Cấu hình SSL cho Tomcat theo hướng dẫn này: http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html server.xml: Code:
<Connector port="8444" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
	        keystoreFile="/usr/share/tomcat6/.keystore" keystorePass="changeit
               clientAuth="false" sslProtocol="TLS" />
Thử lại với https://<cas_server_ip>:8444/cas/login. 3. Nối Apache vào Tomcat với mod_jk workers.properties: Code:
worker.list=worker1

#
# Defining a worker named ajp13w and of type ajp13
# Note that the name and the type do not have to match.
#
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
mod_jk.conf: Code:
LoadModule 		jk_module modules/mod_jk.so

JkWorkersFile 		/etc/httpd/conf/workers.properties
JkShmFile     		/var/log/httpd/jk.shm

JkLogFile     		/var/log/httpd/mod_jk.log
JkLogLevel    		info
JkLogStampFormat 	"[%a %b %d %H:%M:%S %Y] "

<VirtualHost *:80>
	ServerName	monitoring.domain.vn

	JkMount         /cas/* worker1
</VirtualHost>
Virtual host cho Tomcat: server.xml: Code:
<Host name="monitoring.domain.vn"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
		<Context path="/cas" docBase="cas"/>
Các bạn chú ý cái "context" nhé. Test bằng cách gõ: http://monitoring.domain.vn/cas/login trên trình duyệt sẽ thấy nhảy đến trang đăng nhập của CAS. 4. Tích hợp Apache với CAS bằng mod_auth_cas module (download version mới nhất 1.0.9.1. Mình cài từ yum version 1.0.8.1-2 và đã gặp một số vấn đề) auth_cas.conf: Code:
LoadModule auth_cas_module modules/mod_auth_cas.so
CASLoginURL http://monitoring.domain.vn/cas/login
CASValidateURL http://monitoring.domain.vn/cas/serviceValidate
CASValidateServer Off
CASCertificatePath /etc/pki/tls/certs/exported-pem.crt
CASCookiePath /var/cache/httpd/mod_auth_cas_cookies/
CASDebug on
<Location /ganglia>
	AuthType CAS
	AuthName "CAS"
	require valid-user
</Location>
Nếu để CASValidateServer On thì mình gặp lỗi "MOD_AUTH_CAS: Could not perform SSL handshake with monitoring.domain.vn (check CASCertificatePath)", hiện vẫn chưa khắc phục được. Cuối cùng là truy cập http://monitoring.domain.vn/ganglia xem có được đưa đến trang đăng nhập của CAS không, và sau khi login với LDAP account có được quay lại không. CAS hỗ trợ: Java, PHP, .NET, Python, Ruby,... đủ cả.]]>
/hvaonline/posts/list/38777.html#237408 /hvaonline/posts/list/38777.html#237408 GMT
Single Sign-On with CAS /hvaonline/posts/list/38777.html#238041 /hvaonline/posts/list/38777.html#238041 GMT Single Sign-On with CAS

tanvn192 wrote:
Bài viết Quanta rất hay,mình cũng đang làm đồ án về SSO sử dụng CAS,đã tích hợp được CAS với Zimbra,liferay,joomla,drupal và phpBB nhưng đang gặp vấn đề trong việc tích hợp với các sản phẩm HRM như vtiger,oranghrm  
Cụ thể là vấn đề gì vậy bạn?

tanvn192 wrote:
và mới chỉ giải quyết Single Sign On chứ chưa Single Sign Out.không biết anh quanta đã giải quyết được chưa vì mình thấy có một nơi ứng dụng CAS vào rất hay là VDC https://id.vnn.vn nhưng họ cũng chưa Single Sign Out cho tất cả các dịch vụ được.  
https://wiki.jasig.org/display/CASUM/Single+Sign+Out

tanvn192 wrote:
Một khó khăn mình đang gặp nữa là do sử dụng LDAP của Zimbra chung cho tất cả các dịch vụ(Người dùng có thể vào zimbra quản lí việc đổi mật khẩu) nhưng lại chưa viết được ứng dụng móc vào cho phép người dùng tự đăng kí thành viên.Nếu sử dụng với OpenLDAP thì mình cũng chỉ có thể cho người dùng có thể tự thay đổi mật khẩu được còn tự create user vẫn chịu thua. 
Bạn tham khảo cái này xem: https://studio.plugins.atlassian.com/wiki/display/JLDAPLOGIN/Jira+LDAP+user+auto-registration+on+login PS: Sau chấm, phảy, ... thì cách ra một khoảng trắng cho dễ đọc.]]>
/hvaonline/posts/list/38777.html#238043 /hvaonline/posts/list/38777.html#238043 GMT
Single Sign-On with CAS How to install Vtiger and integrate with Cas Server Code:
Prequirement :
CAS server
Php, Apache
Liferay integrate with Cas (If use VTiger in Liferay as Iframe method)

2. Install & Configure Php:
Reference to http://www.php.net

3. Install & Configure Apache
 http://httpd.apache.org/docs/2.0/install.html

4. Download and Install Vtiger 5.0.2
Reference to http://vtiger.com/index.php

5. Download and build phpCas client
Reference to http://esup-phpcas.sourceforge.net/download.html
Download version : esup-phpcas-0.5.1-1
Build phpCas client (use Ant build on Window or Linux, or Eclipse ant)
Unzip esup-phpcas-0.5.1-1 to your hard disk ex : c:\phpCas.
Create project  phpCas with eclipse (with source at c:\phpCas).
Edit build.properties in folder 'properties'
deploy.home=C:/phpCas/target
Using eclipse ant build to deploy phpCas
If successful you can see CAS folder in C:/phpCas/target

6. Configure Vtiger with CAS server
Add Cas model into vtiger
Copy CAS (C:/phpCas/target) to $Document_Web_Root/vtiger502/modules/CAS
Overwrite 2 new files : Authenticate, Users (vtiger502/modules/Users)
[color=yellow]Users file: Add new function load_user_cas($user_password)[/color]
Authenticate file: Add and modifies something
/* Inserts by Dtha on 05/04/2007 start */
		   	// import phpCAS lib
			require_once('modules/CAS/CAS.php');

			phpCAS::setDebug();

			// initialize phpCAS						
                        phpCAS::client(CAS_VERSION_2_0,'casserver.ntis.myvnc.com',8443,'cas');

			// force CAS authentication
			phpCAS::forceAuthentication();
			/* Inserts by Dtha on 05/04/2007 end */


			global $mod_strings;

			$focus = new Users();

			// Add in defensive code here.
			/* Modifies by Dtha on 05/04/2007 start */
		//$focus->column_fields["user_name"] =to_html($_REQUEST['user_name']);
			//$user_password = $_REQUEST['user_password'];
			//$focus->load_user($user_password);

			$focus->column_fields["user_name"] = phpCAS::getUser();
			$user_password = "no_use";
			$focus->load_user_cas($user_password);
			/* Modifies by Dtha on 05/04/2007 end */
/* Inserts by Dtha on 05/04/2007 start */
You must modifies tree params with your CAS server 's information
			'casserver.ntis.myvnc.com',8443,'cas'

Install somes lib for phpCas client required
[root@vtiger#] export http_proxy=http://your_proxy:port
Install DomXml
php 4  : [root@vtiger#] yum install php-domxml
php 5  : [root@vtiger#] yum install php-dom
Install pear-DB
yum install php-pear-DB
Install pear-Log
yum install php-pear-Log
Install pear-HTTP Request
yum install php-pear-HTTP-Request-1.4.0

7. Start Apache and test now :-)
Open IE and run vtiger login, then you see it wwwect to Cas server login
Then after login, return to Vtiger with user login
8. Using with Liferay portal (using Iframe method)
Login to liferay and add Vtiger info iframe with url :
 http://vtiger.ntis.myvnc.com/vtiger502/index.php?action=Authenticate&module=Users
Logout and login again to Liferay, then go to Vtiger Iframe, you see vtiger page with user login.
Note : Vtiger, Liferay using same username of account (exited in Cas Server-LDAP)
Sau khi làm theo khi vài vtiger đã chuyển hướng sang trang đăng nhập của CAS , đăng nhập thành công xong nó lại chuyển hướng về cái trang login ban đầu của vtigercrm làm thành một vòng lặp. Em đoán do thằng vtigercrm chưa xử lí được thông tin của CAS chuyển sang. Trong hướng dẫn có nói thay đổi 2 file Authenticate, Users (vtiger502/modules/Users), có lẽ do dòng này Add new function load_user_cas($user_password) . Anh xem thử có cách nào giúp em được không vì lập trình em không biết.]]>
/hvaonline/posts/list/38777.html#238186 /hvaonline/posts/list/38777.html#238186 GMT
Single Sign-On with CAS /hvaonline/posts/list/38777.html#245983 /hvaonline/posts/list/38777.html#245983 GMT