Accueil > Linux/Ubuntu > Installation de CAS 3.3.2 avec Active Directory

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.
Yast Tomcat

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

tomcat
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..
CAS Acceuil
et une fois authentifier avec un compte du domaine Active directory
CAS Succes

Categories: Linux/Ubuntu Tags:
  1. benodilo
    02/04/2010 à 18:06 | #1

    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…

  2. Arse
    03/05/2010 à 07:39 | #2

    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 ?

  3. Arse
    03/05/2010 à 15:03 | #3

    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 !!!

  1. Pas encore de trackbacks