Info16.fr

Le blog de B@rtounet

#Gnu/Linux

Installation de CAS 3.3.2 avec Active Directory

27 juillet 2011 Rédigé par bartounet

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

Information sur bartounet auteur de l'article

Les commentaires sont fermés.