Formations ESUP Portail

Niveau 2

25-26 novembre 2004

http://www.esup-portail.org

Formation ESUP Portail

Yohan Colmant

Doriane Dusart

Florent Fareneau

Plan

Installation

Gestion du portail

Personnalisation

Installation avec Apache en frontal

Cassification d'une application

Installation

Package esupdev et uportal-esup

Installation et configuration de esupdev

Package cas-esup

Installation de esup-cas-server

Configuration de l'authentification CAS dans esupdev

Les différents packages

Apports par rapport à uPortal

Différences entre les 2 packages

Répertoires utilisés

Fichier de propriétés esup-portail

Targets ant esup-portail

Démo

Apports par rapport à uPortal

Ajout de librairies

Authentification CAS possible

Environnement esup-portail

Skin esup-portail

SGBD nettoyé. Groupes pré-chargés

Installation aisée

Un seul fichier de propriétés

Commandes ant depuis un seul endroit

Les 2 packages partagent un même jeu commun de propriétés et directives ant

Permettent l’utilisation d’un frontal apache

Différences entre les 2 packages

Esupdev :

Surcouche du quick-install uPortal

Environnement de prise en main, et développement

Peut fonctionner en autonome, sur windows ou linux

Peut fonctionner en environnement uPortal, ou esup

Supporte un grand nombre d’options

Environnement d’exploitation sorti du répertoire Tomcat

Permet d’approcher progressivement de l’environnement uPortal vers l’environnement esup-portail

Suivra les patchs et mises à jour uPortal

Différences entre les 2 packages

uPortal-esup :

Prévu pour une installation de production

Supporté sur linux / unix uniquement

Nécessite une installation préalable de ant

Jeu de propriétés plus réduit

Environnement esup-portail obligatoire

Utilise nécessairement l’authentification CAS

Pas d’installation ant ni hsql

Install. / déploiement / paramétrage tomcat optionnels

Evolution plus lente vis-à-vis d’uPortal

Répertoires esupdev

Tous les répertoires sous la racine d’installation du package :

uPortail_...-quick-start

UpdateEsup

ClearEsup

Perso

Intérêt du répertoire Perso

Répertoires uPortal-esup

Répertoires initiaux

Packages

Répertoires après esup.unzip

UpdateEsup (sous la racine du package)

Perso (sous la racine du package)

Déploiement Tomcat

Déploiement des sources uPortal-esup

Répertoire de l’environnement d’exploitation

Propriétés

Sous la racine du package

esup-2.3.properties, ou esupdev-2.3.properties

Éventuellement, perso.properties pour esupdev

Propriétés ont des valeurs par défaut

Permettent le paramétrage de base du portail

Jeu commun pour les 2 packages

Certaines spécifiques à un package

Valeurs par défaut différentes selon le package

Exemple

Targets ant

A exécuter depuis la racine du package

Targets préfixées esup. ou uportal.

Principales targets :

esup.unzip (spécifique uPortal-esup)

esup.init (détaillé diapo suivante)

uportal.compile

esup.db.init

uportal.deploy

esup.clean (esupdev) ou esup.cleanall (uPortal-esup)

Autres targets

Fonctionnement target esup.init

Recopie des fichiers / librairies esup

De UpdateEsup/Tomcat vers Tomcat

De UpdateEsup/uPortal vers env. uPortal

De UpdateEsup/drivers vers lib uportal et Tomcat
(uniquement le driver jdbc décrit dans properties)

Recopie des éventuelles personnalisations locales

De Perso/Tomcat vers Tomcat

De Perso/uPortal vers env. uPortal

Mis à jour des différents fichiers de paramétrage (tomcat, uportal, …)

Ne pas oublier ant uportal.deploy ensuite

Conseil d’utilisation

Ne pas modifier directement dans l’environnement uPortal

Utiliser le répertoire Perso

Pour la mise en production

Paramétrer les options de la JVM

Changer les mots de passe admin et demo

Voir les applis admin et manager tomcat

Mettre server.deploy à false après une première installation

Installation et configuration de esupdev

Base de données postgresql

LDAP

Autentification sur BD

Configuration

Paramètres généraux

java_home=/usr/lib/j2sdk1.4

esup.root=/.../esupdev

esup.deploy=/.../esupdev/uPortal_2-3-5-quick-start/Tomcat_5-0-18/webapps

Paramètres LDAP

esup.ldap.baseDN=ou=people,dc=univ-XXX,dc=fr

Paramètres de la BD

esup.db.auth=true

esup.db.username=XXXXX

esup.db.password=YYYYY

esup.db.url=jdbc:postgresql://XXXX:5432/XXXX

esup.db.jdbcDriverJar=pg74.1jdbc3.jar

esup.db.className=org.postgresql.Driver

Paramètres divers

esup.env.esup-portail=true

server.reloadable=true

esup.userprefs.save=true

Ne pas mettre de caracteres '\', meme sous Windows sous Windows : preciser obligatoirement le nom de lecteur pour les chemins absolus (java_home et esup.root)

Package esup-cas-server

Aperçu et contraintes

Installation - intérêt des packages esup

Installation esup-cas-server

Premiers tests du serveur CAS

Certificats

Génération d'un certificat auto signé

Aperçu et contraintes

Mécanisme de SSO Web

S’appuie sur redirections http via navigateur

Le serveur CAS doit être accessible en https

Connexions http(s) directes de l’appli web cliente vers le serveur CAS

Fonctionnement mode proxy

Contraintes mode proxy

Connexions https directes de l’appli web proxy vers le serveur CAS

Réciproque nécessaire également

Installation - intérêt des packages esup

Packages serveur CAS

Modifications mineures de source

Personnalisation aisée du serveur

Un fichier de configuration

Generic Handler : authentification souple, multi backends

Logs d’authentification

Packages clients

php, perl, java, pam-cas

Installation esup-cas-server (1/2)

Utiliser les packages esup-portail

esup-cas-quick-start :install rapide, comprenant le serveur tomcat

esup-cas-server : installation sur un tomcat existant

Pré-requis

JVM (SDK)

Ant

Tomcat, si esup-cas-server

certificats

Installation esup-cas-server (2/2)

Décompacter le package

Adapter le fichier properties/build.properties

Choisir auth LDAP simple
(commenter ..auth=test, décommenter auth=ldap)

Voir fichier de log, et le rép. De déploiement)

ant deploy

Adapter le contexte CAS de tomcat

Personnalisations possibles
répertoire 'custom/cas-server-render/'
propriété 'cas-server.render'

Premiers tests du serveur CAS

Login – logout direct, en http et https

Test applicatif simple. Voir phpCAS

Test proxy. Voir phpCAS, puis casimap

Test avec esup-portail.
Attention, contrôler proxy :
mode DEBUG, et grep –i pgt sur portal.log

Penser à vérifier les logs Tomcat et esup-cas-server, et logs d’accès W3

Voir le document dédié à la recherche sur incidents CAS	…/SSO_1B/tech/cas/CAStroubleshooting.html

Certificats (1/3)

ATTENTION: La machine doit posséder un certificat

Soit auto signé (Par exemple si le serveur CAS est sur la même machine que le portail)

Soit un certificat d’une IGC (Infrastructure de Gestion de Clés)

Certificats (2/3)

Serveurs https : au moins CAS et proxies CAS

Doivent contenir le bi-clé

Doivent présenter la chaîne de certification si non auto signés

Apache et mod_ssl :
fichiers différents, paramétrés dans httpd.conf

Tomcat :
un seul keystore, paramétré dans server.xml

Certificats (3/3)

Clients https : au moins CAS et proxies CAS

Doivent faire confiance au certificat présenté
Le magasin des certifs de confiance doit contenir le certificat (clé publique) du serveur, ou d’une Autorité de Certification ayant délivré le certificat

Pour les applis serveur J2EE :

Soit géré directement par l’appli (pas le cas d’uPortal et de CAS)

Soit mettre le certificat dans le keystore de la JVM

Soit valuer la variable javax.net.ssl.trustStore (conseillé)

Conseil : utilisez une IGC !!!

Pour l’enseignement supérieur : voir le CRU

Génération d'un certificat auto signé

Retrait d'un eventuel certificat precedent

keytool -delete -alias tomcat -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit

Génération du couple de clefs

keytool -genkey -alias tomcat -dname "CN=nomMachine.nomDomaine,OU=X,O=Y,L=Z,S=XY,C=YZ" -keyalg RSA -storepass yyyyyy -keystore nomMachine.keystore

Exportation du certificat auto-signé

keytool -export -alias tomcat -storepass yyyyyy -file nomMachine.cert -keystore nomMachine.keystore

Ajout du certificat dans le magasin global du JDK

keytool -import -v -trustcacerts -alias tomcat -file nomMachine.cert -keystore %JAVA_HOME%/jre/lib/security/cacerts -keypass xxxxxx -storepass changeit

Contrôle

keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit

Installation et configuration de
esup-cas-server

#====================================================================

# Simple (fastbind) LDAP authentication (used when ${esup-casgeneric.auth} = ldap)

esup-casgeneric.auth=ldap

esup-casgeneric.auth.ldap.filter=uid=%u,ou=people,dc=univ,dc=fr

esup-casgeneric.auth.ldap.url=ldap://172.31.113.109:389

#====================================================================

# CAS Server HTML rendering

cas-server.render=esup-portail.org

#====================================================================

# CAS Server deploy home (directory)

cas-server.deploy.home=c:/serveur/esupdev-2.3/uPortal_2-3-5-quick-start/Tomcat_5-0-18/webapps/cas

Configuration de
esupdev avec CAS

Paramètres généraux

esup.CAS.auth=true

esup.CAS.proxy=true

esup.CAS.server.url=nomMachine:8443/cas

esup.host.http=nomMachine

esup.host.port-http=:8080

esup.host.port-https=:8443

Ne pas mettre de caracteres '\', meme sous Windows sous Windows : preciser obligatoirement le nom de lecteur pour les chemins absolus (java_home et esup.root)

Gestion du portail

Le gestionnaire de groupes et d'attributs

Le gestionnaire de canaux

Gestion des attributs

Définition

Capacité de uPortal à gérer des attributs à partir de plusieurs sources

SGBD

LDAP (attributs à valeurs multiples gérés)

Définition dans le fichier properties/PersonDirs.xml

Une entrée <PersonDirInfo> par source de données

Possibilité de faire correspondre un nom interne uPortal à un nom de l’attribut dans la source de données

<attribute>
<name>ur1sourcecreation</name>
<alias>uPortalTemplateUserName</alias>
</attribute>

PersonDirs.xml

<PersonDirs>

<PersonDirInfo>

<url>ldap://ldap.univ-xxx.fr:389/ou=People,dc=univ-xxx,dc=fr</url>

<logonid></logonid>

<logonpassword></logonpassword>

<uidquery>(uid={0})</uidquery>

<usercontext></usercontext> <!– filtre possible -->

<attribute>

<name>cn</name>

<alias>cn</alias>

</attribute>

…/…

Gestion des groupes

Groups Manager

Gestion des groupes du portail

Canal inclus dans le portail

Création de groupe

Suppression de groupe

Ajout d’utilisateur dans des groupes

Utilisable en tant que canal servant

Groups Manager 2

Structure hierarchique des groupes

Recherche de groupe, de personne, de canaux

Groups Manager 3

Paramètres d’un groupe

Creation d’un groupe

Ajouter un membre

Groupe

Personne

Canal

….

Groups Manager 4

Permission sur les groupes

Les groupes composites

Capacité de uPortal à gérer des groupes divers

Locaux

LDAP (pas utilisés par ESUP car peu performants)

Filesystem (pas utilisés par ESUP)

PAGS

Définition dans le fichier properties/groups/compositeGroupServices.xml

Les groupes composites 2

<service>

<name>pags</name>

<service_factory>org.jasig.portal.groups.ReferenceIndividualGroupServiceFactory</service_factory>

<entity_store_factory>org.jasig.portal.groups.pags.PersonAttributesEntityStoreFactory</entity_store_factory>

<group_store_factory>org.jasig.portal.groups.pags.PersonAttributesGroupStoreFactory</group_store_factory>

<entity_searcher_factory>org.jasig.portal.groups.pags.PersonAttributesEntitySearcherFactory

</entity_searcher_factory>

<internally_managed>false</internally_managed>

<caching_enabled>true</caching_enabled>

</service>

Les PAGS

Groupes construits en fonction des attributs des utilisateurs

Définition dans le fichier properties/groups/PAGSGroupStoreConfig.xml

Possibilité :

Et/ou sur des attributs

Tester égalité des attributs avec

une chaîne avec gestion de la casse ou pas

expressions régulières

etc.

PAGS 2

<!--

Group 2: "Short First Names"

givenName has 5 or fewer characters

-->

<group>

<group-key>2</group-key>

<group-name>Short First Names</group-name>

<group-description>Portal users whose first names are between 1 and 5 characters long</group-description>

<selection-test>

<test-group> <!-- ou : x test-group possibles -->

<test> <!-- et : x test possibles -->

<attribute-name>givenName</attribute-name>

<tester-class>org.jasig.portal.groups.pags.testers.RegexTester

</tester-class> <!– possibilité de changer la classe -->

<test-value>^.{1,5}$</test-value>

</test>

</test-group>

</selection-test>

<members>

<member-key>3</member-key>

</members>

</group>

TP

uvhcEtuComposante = ISTV

uvhcEtuFormation = S3MAV1 (attribut LDAP)

=> esupEtuFormation = S3MAV1 (attribut uportal)

tata

uvhcEtuFormation = S3AMU1

titi

uvhcEtuComposante = FLLASH

uvhcEtuFormation = L3HIV1

toto

uvhcEtuFormation = L3ANV2

tutu

testeur

Gestionnaire de canaux

Publication

Processus de mise à disposition de nouveaux contenus

extérieures au portail : site web, fil RSS

dans la structure du portail : application interne

Définition des règles de restriction d’accès

2 méthodes de publication :

Channel Manager

Définition d’un fichier xml et utilisation de la directive pubchan, proposée par le portail

Channel Manager

Accessible par l’icône de la barre d’outils du portail

Réservé aux membres du groupe des «Administrateur uPortal »

Channel Manager :

modifier un canal

créer un canal

Les types de canaux

Type de documents d’entrée pour le portail :

Image : document de type jpg ou gif utilisé comme source

RSS : canal pour un fil d’informations

Applet : rendu d’une applet dans le canal

Inline Frame : rendu d’un page HTML sans contrainte

Web Proxy : rendu d’une page XHTML

XML Transformation : document XML transformé par un ensemble de feuilles XSL

WSRP Consumer : service WSRP

Custom : tout le contenu est créer pour l’auteur du canal.

Paramètres globaux

Channel Title :

dans le bandeau d’en tête du canal

Channel Name :

Dans le canal de souscription

Channel functionnal name :

Identifiant unique du canal dans le portail

Channel description :

Dans le mode d’édition d’un canal

Contrôle du canal

Icônes traditionnelles de contrôle

Icône d’édition

Modification de paramètres

Icône d’aide

Conseils d’utilisation du canal

Icône A propos de

Boîte de dialogue d’info sur le canal, son auteur

Catégorie

Canal de souscription de contenu

Sélection d’une ou plusieurs catégories

Valider la sélection

Affichage de la sélection

(Dé)sélection des catégories

Validation avec le bouton « Next »

Groupes

Quelle population peut accéder à ce nouveau canal ?

Manipulation similaire à la sélection des catégories :

Sélection

Validation

Récapitulatif

Définition globale du canal

Modification : accès à une rubrique par hyperlien

Retour avec le bouton « Review »

Validation de la création du canal avec le bouton « finished »

La directive ANT
pubchan

Définition

Définition d’un fichier xml

Placement du fichier pubcanal.xml dans uPortal_DEPLOY-HOME/properties/chanpub

ant uportal.pubchan -Dchannel= pubcanal.xml

(pour publier tous les canaux ant pubchan –Dchannel=all)

Fichier xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE channel-definition SYSTEM "channelDefinition.dtd">

<channel-definition>

<title>Le Site del'UHP</title>

<name>Le Site de l'UHP</name>

<fname>siteuhp</fname>

<desc>Le site w3 de l'UHP</desc>

<type>Inline Frame</type>

<class>org.jasig.portal.channels.CInlineFrame</class>

<timeout>5000</timeout>

<hasedit>N</hasedit>

<hashelp>N</hashelp>

<hasabout>N</hasabout>

<secure>N</secure>

<locale>en_US</locale>

<categories>

<category>Entertainment</category>

</categories>

<groups>

<group>Everyone</group>

</groups>

<parameters>

<parameter>

<name>height</name>

<value>600</value>

<description></description>

<ovrd>N</ovrd>

</parameter>

<parameter>

<name>url</name>

<value>http://www.uhp-nancy.fr</value>

<description></description>

<ovrd>N</ovrd>

</parameter>

</parameters>

</channel-definition>

Paramètres globaux

Structure de contrôle

Catégories

Paramètres

Groupes

TP

User admin

Créer un canal de type IFrame qui pointe vers la page d’accueil de votre établissement

Créer un canal RSS qui pointe sur	http://eucalyptus.univ-valenciennes.fr:8080/appli_news/versRss.jsp?canal=ESUPACTUS

Utilisez le pubchan de Hello_word

Dézipper et déployer le canal

ant uportal.pubchan -Dchannel= pubCHelloWorld.xml

Diapo 11 pour ST, 16 pour proxy

2004-11-05T10:40:43