Projet Socle ENT

Vous regardez une version antérieure (v. /wiki/spaces/ESUPMU/pages/440762379/CAS+clearPass) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 2) afficher la version suivante »

Rappel - ProxyCAS

Le ProxyCas classique nécessite que le service cible soit cassifié. 

Pour ce faire, on peut cassifier l'authentification du service cible (serveur sftp, serveur imap , ...) via pam_cas par exemple -ou encore mod_cas d'apache pour un service web livré par apache, etc..

Dans ce cadre, uPortal, qui agit en proxyCAS, peut alors transmettre à la portletqui le demande (telle qu'email-preview, esup-filemanager, ...) un casProxyTicket.

Ce mécanisme et sa mise en place est décrit sur la page ci-avant.

Limitations du ProxyCAS

D'autres services proposent une authentification moins souple, non maîtrisée, non cassifiable.

C'est le cas notamment des services proposées par les solutions Microsoft Windows:  Microsoft Exchange, montages CIFS Windows.

Solutions abordables éventuellement envisageables

La seule solution abordable (hors mécanismes kerberos et similaires) est alors de s'authentifier sur ces services avec le username/password de l'utilisateur. Il faut donc que la portlet en ait connaissance.

On peut alors :

  • redemander à l'utilisateur de ressaisir son password dans un formulaire dédié à la portlet ;
  • utiliser un password commun/générique (voire un username/password commun/générique)
  • récupérer le password en clair depuis une base de données, le ldap, ...
  • ... et récupérer le password en clair depuis le serveur CAS

Cette dernière option s'appelle le clearPass CAS.

Mise en place du clearPass CAS

Le clearPass CAS permet à uPortal de récupérer le mot de passe en clair de l'utilisateur. Ce mot de passe peut ensuite être fourni à toute portlet demandant l'attribut utilisateur "password".

Aussi la mise en place de cette extension du protocole CAS se fait :

  • sur CAS
  • et sur Esup-uPortal

Pour CAS, nous référons à ces documentations : https://wiki.jasig.org/display/casum/clearpass - si vous utilisez memcached, cette page est à consulter également : https://wiki.jasig.org/display/CASUM/ClearPass+and+Multiple+Server+Configurations

Pour uPortal, nous vous référons à cette documentations : https://wiki.jasig.org/display/UPM40/Caching+and+Re-playing+Credentials

... et nous vous donnons un exemple de configuration ; diff git issu d'un Esup-uPortal 4.15 :

diff --git a/uportal-war/src/main/resources/properties/contexts/portletContainerContext.xml b/uportal-war/src/main/resources/properties/contexts/portletContainerContext.xml
index 5b51eeb..d97e3f8 100644
--- a/uportal-war/src/main/resources/properties/contexts/portletContainerContext.xml
+++ b/uportal-war/src/main/resources/properties/contexts/portletContainerContext.xml
@@ -114,10 +114,10 @@
      | NOTE:  Other configuration is also needed to obtain and cache the user's password so this bean can provide it.
      | See the uPortal manual https://wiki.jasig.org/display/UPM40/Caching+and+Re-playing+Credentials.
      -->
-    <!--bean id="cachedPasswordUserInfoService"
+    <bean id="cachedPasswordUserInfoService"
         class="org.jasig.portal.portlet.container.services.CachedPasswordUserInfoService">
         <property name="decryptPassword" value="false"/>
-    </bean-->
+    </bean>
     
     <bean id="portalAdministrationService" class="org.apache.pluto.driver.container.DefaultPortalAdministrationService">
        <property name="administrativeRequestListeners">
diff --git a/uportal-war/src/main/resources/properties/portal.properties b/uportal-war/src/main/resources/properties/portal.properties
index f1b4028..16ded0c 100644
--- a/uportal-war/src/main/resources/properties/portal.properties
+++ b/uportal-war/src/main/resources/properties/portal.properties
@@ -457,7 +457,7 @@ org.jasig.portal.portlets.googleWebSearch.search.result.type=googleCustom
 ## PORTAL_HOME (see applicationContext.xml).  This is used to encrypt the user's password stored in-memory in the
 ## security context so malicious code or a hacker is less likely to obtain user's credentials.
 ##
-org.jasig.portal.portlets.passwordEncryptionKey=changeme
+org.jasig.portal.portlets.passwordEncryptionKey=esup_changeme_encryption-key
 
 ##
 ## Duration in milliseconds between attempts to retrieve the user's password from CAS ClearPass (if enabled).
diff --git a/uportal-war/src/main/resources/properties/security.properties b/uportal-war/src/main/resources/properties/security.properties
index 19aef54..60b64a7 100644
--- a/uportal-war/src/main/resources/properties/security.properties
+++ b/uportal-war/src/main/resources/properties/security.properties
@@ -46,8 +46,8 @@
 ## This is the factory that supplies the concrete authentication class
 root=org.jasig.portal.security.provider.UnionSecurityContextFactory
-root.cas=org.jasig.portal.security.provider.cas.CasAssertionSecurityContextFactory
+root.cas=org.jasig.portal.security.provider.cas.clearpass.PasswordCachingCasAssertionSecurityContextFactory
 root.simple=org.jasig.portal.security.provider.SimpleSecurityContextFactory
 
 ## principalToken and crednetialToken declare what tokens 
@@ -95,7 +95,7 @@ authorizationProvider=org.jasig.portal.security.provider.AuthorizationServiceFac
 org.jasig.portal.channels.CLogin.CasLoginUrl=https://cas.univ-ville.fr/login
 
 ## URL of the CAS clearPass password service
-#org.jasig.portal.security.provider.cas.clearpass.PasswordCachingCasAssertionSecurityContextFactory.clearPassCasUrl==${environment.build.cas.protocol}://${environment.build.cas.server}${environment.build.cas.context}/clearPass
+org.jasig.portal.security.provider.cas.clearpass.PasswordCachingCasAssertionSecurityContextFactory.clearPassCasUrl=https://cas.univ-ville.fr/clearPass
 
 ##
 ##  Local Only Authentication

 

 

  • Aucune étiquette