Installation de CAS 3.3.2 avec Active Directory
Voilà des jours que j’essaye de faire fonctionner CAS pour une athentification ldap avec active directory, dans un domaine Windows.
Je me fait un petit billet pour ne pas oublier.
Dejà CAS c’est quoi, c’est un outil permettant de faire du SSO.
Il s’agit d’une technique permettant à un utilisateur de ne procéder qu’à une seule authentification pour accéder à plusieurs applications informatiques sécurisées (généralement des sites Web). Souvent dans une entreprise, les utilisateurs sont amenés à s’identifier dans différentes applications (intranet, courrier électronique, forums, agendas, …). Sans solution de SSO, il est nécessaire de s’identifier dans chacune de ces applications avec souvent des identifiants différents.
Il se présente par une interface Web des plus simpliste.
Mais derriere il y a quoi ?
Il s’agit dabord d’installer Tomcat.
Pour mon exemple j’ai installer Tomcat sur une Opensuse11.1 à grand coup de Yast.

L’installation de Tomcat est assez simple avec le gestionaire de paquets, n’oublier pas d’installer le manager et les webapps.
Tomcat se base sur Java, vérifiez bien votre version de java.
si tout c’est bien déroulé, vous devriez avoir accès à tomcat sur
http://votre_server:8080

Afin de pouvoir acceder au manager, il faut creer un compte admin dans le fichier tomcat-users.xml
Sur OpenSuse 11.1 l’installation de Tomcat6 se trouve dans /usr/share/tomcat6
On a donc dans /usr/share/tomcat6/conf/ tomcat-users.xml
<tomcat-users>
<role rolename= »tomcat »/>
<role rolename= »role1″/>
<user username= »tomcat » password= »tomcat » roles= »tomcat »/>
<user username= »both » password= »tomcat » roles= »tomcat,role1″/>
<user username= »role1″ password= »tomcat » roles= »role1″/>
<user username= »admin » password= »pass » roles= »admin,manager »/>
</tomcat-users>
La dernière ligne est celle que j’ai ajoutée pour acceder au manager de tomcat.
Passons maintenant à l’installation de CAS.
Le plus important est d’utiliser CAS Toolbox, j’ai galéré des semaines avec cas-server sans succès alors que j’ai enfin abouti avec cas-toolbox.
Autrement dit c’est un cas packagé qui simplifie la configuration.
On télécharge l’archive sur le site de l’esup
https://sourcesup.cru.fr/frs/?group_id=401&release_id=1461
Pour ma part j’ai testé la 3.3.2-1
On decompresse l’archive et on commence à modifer les fichiers.
TOut d’abord les fichier qu’on va modifier sont build.properties et config.properties
# cp build.sample.properties build.properties
# cp config.sample.properties config.properties
Afin de tester j’ai rapidement monter un controleur de domaine Windows 2003 enterprise sur une machine virtuelle.
Le domaine sera maison.priv
Il est aussi necessaire de creer dans l’Active directory un user qui aura les droit d’interroger l’AD.
Mon user sera ldapview avec le mot de pass motdepasse
Passons à la configuration des ficher CAS
Voiçi le fichiers build.properties
#deploy dir
deploy.path=/usr/share/tomcat6/webapps/cas
#configuration file to use
config.file=${basedir}/config.properties
#config.file=${basedir}/resources/quickstart/quickstart.properties
#use maven dependency offline
#must run on time inline
maven.offline=false
#SVN part to get other update
svnant.update.url=http://subversion.cru.fr/cas-toolbox/tags/3.3.2-1/update.esup/
svnant.repository.user=
svnant.repository.passwd=
svnant.update.path=${basedir}/update.esup
svnant.update.version=HEAD
# do not change after this line
#package configuration
package.name=cas-toolbox
package.version=1
package.build.path=${build.path}/package
#quickstart configruation
#config.file=${basedir}/resources/quickstart/quickstart.properties
quickstart.name=cas-quickstart
quickstart.version=1
quickstart.build.path=${build.path}/quickstart
quickstart.ressource.path=${resources.path}/quickstart
#maven properties
maven.ant.task.version=2.0.9
maven.local.dir=maven-repository
maven.local.repository=${basedir}/build/${maven.local.dir}
maven.package.name=cas-maven-repository
maven.proxy.host=
maven.proxy.port=8080
maven.proxy.username=
maven.proxy.password=
update.path=${basedir}/update
#${basedir}/update.esup
#${basedir}/update.stats
#${basedir}/update.memcache
custom.path=${basedir}/custom
build.path=${basedir}/build
resources.path=${basedir}/resources
cas.build.path=${build.path}/cas
cas.update.webpage.path=${update.path}/webpages
cas.custom.webpage.path=${custom.path}/webpages
cas.update.source.path=${update.path}/source
cas.custom.source.path=${custom.path}/source
quickstart.build.path=${build.path}/quickstart
quickstart.ressource.path=${resources.path}/quickstart
simpleTestHandler.name=
simpleTestHandler.conf=simpletest-auth.xml
ldapHandler.name=cas-server-support-ldap
ldapHandler.conf=ldap-auth.xml
Le config.properties
# Ldap properties
ldap.host.1=ldap://10.0.0.153
ldap.basedn=sAMAccountName=%u,CN=Users,dc=maison,dc=priv
# file authenticate layer
passfile.encode-algo=MD5
passfile.location=classpath:/../usersFile
log.dir=${catalina.home}/logs
#cas host
cas.host=localhost
# cas uri (empty if /)
cas.uri=
# cas port empty (if standard)
cas.port=:8080
#User allow to use services manager (services/manage.html)
security.useradmin=admin
# graphic theme
theme=default
views=default
# auth layer to use
# see build.properties to view all
cas.authHandlers=ldapHandler
Modifier bien sur selon votre configuration.
Enfin on fini par creer une arborescence dans cas-toolbox-3.3.2-1
tell que cas-toolbox-3.3.2-1/custom/webpages/WEB-INF/auth-configuration/
et on va creer un fichier ldap-auth.xml
vi custom/webpages/WEB-INF/auth-configuration/ldap-auth.xml
<?xml version= »1.0″ encoding= »UTF-8″?>
<!–
| deployerConfigContext.xml centralizes into one file some of the declarative configuration that
| all CAS deployers will need to modify.
|
| This file declares some of the Spring-managed JavaBeans that make up a CAS deployment.
| The beans declared in this file are instantiated at context initialization time by the Spring
| ContextLoaderListener declared in web.xml. It finds this file because this
| file is among those declared in the context parameter « contextConfigLocation ».
|
| By far the most common change you will need to make in this file is to change the last bean
| declaration to replace the default SimpleTestUsernamePasswordAuthenticationHandler with
| one implementing your approach for authenticating usernames and passwords.
+–>
<beans xmlns= »http://www.springframework.org/schema/beans »
xmlns:xsi= »http://www.w3.org/2001/XMLSchema-instance »
xmlns:p= »http://www.springframework.org/schema/p »
xsi:schemaLocation= »http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd »><!–
| LDAP authentication.
+–>
<bean id= »ldapHandler » class= »org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler »>
<property name= »filter » value= »sAMAccountName=%u » />
<property name= »searchBase » value= »DC=maison,DC=priv » />
<property name= »contextSource » ref= »contextSource » />
<property name= »ignorePartialResultException » value= »yes » />
</bean><bean id= »contextSource » class= »org.springframework.ldap.core.support.LdapContextSource »>
<property name= »anonymousReadOnly » value= »false » />
<property name= »password » value= »motdepasse » /><property name= »pooled » value= »true » />
<property name= »urls »>
<list>
<value>ldap://10.0.0.153:389</value>
</list>
</property>
<property name= »userDn » value= »ldapview » />
<property name= »baseEnvironmentProperties »>
<map>
<!–
<entry>
<key><value>java.naming.security.protocol</value></key>
<value>ssl</value>
</entry>
–>
<entry>
<key><value>java.naming.security.authentication</value></key>
<value>simple</value>
</entry>
</map>
</property>
</bean>
</beans>
On fini enfin en utilisant la commande ant
ant init
qui va builder cas selon votre config
ant deploy qui va aller copier les fichier cas dans le chemin que vous lui avez definit dans build.properties.
Si tout se passe bien vous devriez voir apparaitre un webbaps cas dans le manager de tomcat.
Il devrait démarrer..

et une fois authentifier avec un compte du domaine Active directory




Comme basen tu as mis :
ldap.basedn=sAMAccountName=%u,CN=Users,dc=maison,dc=priv
Mais si tu as un utilisateur qui se trouve trouve dans ou=compta,CN=Users,dc=maison,dc=priv et un autre dans ou=RH,CN=Users,dc=maison,dc=priv ça ne fonctionne pas…
J’ai le soucis et je ne vois comment comment changer ça…
Bonjour, j’essaie de mettre en place le CAS LDAP. j’ai suivis la procédure, ca compil correctement, par contre pour le déploiement, je deploy au bon emplacement mais j’ai un fichier dans l’apps « autorizationFailure.jsp » et l’apps dans tomcat a le status false et donc je n’y accède pas. Que puis-je faire ?
Ou encore réponse de Tomcat : L’application pour le chemin de contexte /cas n’a pas pu être démarrée. Je ne comprend pas …
help !!!