Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

51
Tutoriel Plone : Déployer un intranet collaboratif avec intégration d’un annuaire LDAP Damien BATY (Pilot Systems) Solutions Linux 2008 Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

description

Pilot Systems présente une étude sur le déploiement d\'un intranet collaboratif sous Plone. Support du tutoriel Plone, présenté lors de Solutions Linux 2008

Transcript of Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Page 1: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Tutoriel Plone :Déployer un intranet collaboratif

avec intégration d’un annuaire LDAP

Damien BATY (Pilot Systems)

Solutions Linux 2008

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 2: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plan

1 Introduction à Plone

2 Politique de sécurité dePlone

3 Introduction à LDAP etOpenLDAP

4 Connexion à l’annuaireLDAP

5 Workflow

6 Rôles locaux et espacespartagés

7 Intégration d’autresproduits

8 Apparence graphique

9 ArchGenXML

10 Montée en charge

11 ConclusionDamien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 3: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plan

1 Introduction à Plone

2 Politique de sécurité dePlone

3 Introduction à LDAP etOpenLDAP

4 Connexion à l’annuaireLDAP

5 Workflow

6 Rôles locaux et espacespartagés

7 Intégration d’autresproduits

8 Apparence graphique

9 ArchGenXML

10 Montée en charge

11 ConclusionDamien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 4: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plan

1 Introduction à Plone

2 Politique de sécurité dePlone

3 Introduction à LDAP etOpenLDAP

4 Connexion à l’annuaireLDAP

5 Workflow

6 Rôles locaux et espacespartagés

7 Intégration d’autresproduits

8 Apparence graphique

9 ArchGenXML

10 Montée en charge

11 ConclusionDamien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 5: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plan

1 Introduction à Plone

2 Politique de sécurité dePlone

3 Introduction à LDAP etOpenLDAP

4 Connexion à l’annuaireLDAP

5 Workflow

6 Rôles locaux et espacespartagés

7 Intégration d’autresproduits

8 Apparence graphique

9 ArchGenXML

10 Montée en charge

11 ConclusionDamien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 6: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plan

1 Introduction à Plone

2 Politique de sécurité dePlone

3 Introduction à LDAP etOpenLDAP

4 Connexion à l’annuaireLDAP

5 Workflow

6 Rôles locaux et espacespartagés

7 Intégration d’autresproduits

8 Apparence graphique

9 ArchGenXML

10 Montée en charge

11 ConclusionDamien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 7: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plan

1 Introduction à Plone

2 Politique de sécurité dePlone

3 Introduction à LDAP etOpenLDAP

4 Connexion à l’annuaireLDAP

5 Workflow

6 Rôles locaux et espacespartagés

7 Intégration d’autresproduits

8 Apparence graphique

9 ArchGenXML

10 Montée en charge

11 ConclusionDamien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 8: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plan

1 Introduction à Plone

2 Politique de sécurité dePlone

3 Introduction à LDAP etOpenLDAP

4 Connexion à l’annuaireLDAP

5 Workflow

6 Rôles locaux et espacespartagés

7 Intégration d’autresproduits

8 Apparence graphique

9 ArchGenXML

10 Montée en charge

11 ConclusionDamien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 9: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plan

1 Introduction à Plone

2 Politique de sécurité dePlone

3 Introduction à LDAP etOpenLDAP

4 Connexion à l’annuaireLDAP

5 Workflow

6 Rôles locaux et espacespartagés

7 Intégration d’autresproduits

8 Apparence graphique

9 ArchGenXML

10 Montée en charge

11 ConclusionDamien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 10: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plan

1 Introduction à Plone

2 Politique de sécurité dePlone

3 Introduction à LDAP etOpenLDAP

4 Connexion à l’annuaireLDAP

5 Workflow

6 Rôles locaux et espacespartagés

7 Intégration d’autresproduits

8 Apparence graphique

9 ArchGenXML

10 Montée en charge

11 ConclusionDamien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 11: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plan

1 Introduction à Plone

2 Politique de sécurité dePlone

3 Introduction à LDAP etOpenLDAP

4 Connexion à l’annuaireLDAP

5 Workflow

6 Rôles locaux et espacespartagés

7 Intégration d’autresproduits

8 Apparence graphique

9 ArchGenXML

10 Montée en charge

11 ConclusionDamien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 12: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plan

1 Introduction à Plone

2 Politique de sécurité dePlone

3 Introduction à LDAP etOpenLDAP

4 Connexion à l’annuaireLDAP

5 Workflow

6 Rôles locaux et espacespartagés

7 Intégration d’autresproduits

8 Apparence graphique

9 ArchGenXML

10 Montée en charge

11 ConclusionDamien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 13: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Pilot Systems

Pilot Systemsapplications web : sites web, intranet, applications métierdéveloppement, maintenance/support, formation,hébergementpartenaire d’IBM Global Technology Services : serveur demessagerie pour 80.000 comptesexpertise globale en logiciels libres, plus particulièrementPython, Zope et Plone

Damien Batydamien CHEZ pilotsystems POINT net

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 14: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Cyclimse

Ce tutoriel n’est pas un tutoriel sur le cyclimse.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 15: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Architecture applicative

Zopeserveur d'applications

(ou framework)

CMF : Content Management Frameworkframework pour système degestion de contenu (CMS)

PloneCMS (ou framework)

Pythonlangage de programmation

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 16: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Python

Python : langage de programmation, depuis 1990souvent comparé à Java, Perl ou Rubyinterprété, orienté objet, syntaxe claire, développementrapideportable : UNIX, Windows, MacOScommunauté open sourceréférences : Google, IBM, . . .

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 17: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Zope

Zope : serveur d’applications, open source depuis 1999similaire à JBoss ou WebSphereadapté à la gestion de contenu, mais pas exclusivementtransactionnel, multi-plateformelivré avec une base de données objet, mais peut seconnecter à des SGBDR : SQL Server, MySQL,PostgreSQL, Oracle

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 18: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plone

Plone : gestion de contenu et travail collaboratif opensource depuis 2001extension de CMF, puis véritable brique fonctionnelledésormais le produit-phare du monde Zopenombreux modules d’extension disponibles (plus de 250)

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 19: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Points forts de Plone

packaging standard très completrapidité de mise en placemodularitéde nombreux modules complémentaires stablesdisponiblescommunauté = prestataires de services + développeursindépendants + autresmises à jour simplifiéesévolutivitéinter-opérabilité : XML-RPC, connecteur de base dedonnées, connecteur LDAP, Citrix, etc.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 20: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Cas d’utilisation

Sites web (Internet) à forte volumétrieCIANovellEADS Astrium (ex-EADS Space)BRED (Groupe Banque populaire)Oxfam International, America, UK & Canadaville de Berne (Suisse)parlement et gouvernement du Brésil et de laNouvelle-ZélandeNASA - Jet Propulsion LabsNHS (National Health Service, Grande-Bretagne)eBay, Nokia

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 21: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Cas d’utilisation

Intranet, extranet & portail d’entreprise

ÉNADaikin FranceCrédit Municipal de ParisFNCUMA et CUMA (Coopératives d’Utilisation de MatérielAgricole)ApaveUniversité d’OrléansLufthansa

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 22: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Cas d’utilisation

Applications métierbanque en ligne (CMP-Banque)éditique (fiches de paie) & suivi des courriers (mairie)place de marché spécialisée dans le transport (Négociatis)gestion des financements de projets de recherche enagronomie (ACTIA)e-learning : université d’Orléans, Éducastream(visio-conférence), Ifredoc

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 23: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Cas d’utilisation

De nombreux autres exemples et études de cas surhttp://plone.net (liste non exhaustive)

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 24: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Politique de sécurité de Plone

Conceptsutilisateur : nom d’utilisateur (identifiant, login) et mot depassegroupe : ensemble d’utilisateurs (service/direction, unitéfonctionnelle, groupe projet, . . . )permission : à chaque action est associée une permission(Voir, Modifier, Supprimer, Administrer le portail, . . . )rôle (profil) : à chaque permission est associée un rôle(ex. : Administrer le portail <-> Administrateur)

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 25: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Politique de sécurité de Plone

utilisateur

action(modifier le document)

permission(modifier)

rôle(éditeur)

groupe d'utilisateurs

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 26: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Multiplication des applications

Multiplication des applicationsde plus en plus d’applications à accès restreint,personnaliséesprincipalement des applications web, mais pas uniquement

Exemple d’un portail d’entrepriseintranet documentaire, espaces de travail partagésannuaire d’entreprisegestion des clients et prestatairesmessageriecalendrier partagé

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 27: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Informations disséminées

Risque majeurmultiplier les bases de données utilisateur, une pourchaque applicationdes bases de données pas ou peu réutilisables pard’autres applications, car très spécifiques

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 28: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Centralisation des informations

Une source unique d’utilisateursun seul système, donc une seule maintenancemise à jour unique (arrivées, départs, changements dansl’entreprise)pas de doublon, donc pas d’informations contradictoires

Répartition des informationsinformations globales dans cette source uniqueinformations spécifiques dans chaque application

Bonus : Single Sign-On (SSO), pour une authentificationunique pour accéder à de multiples applications.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 29: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

LDAP, un protocole standard

LDAP, qu’est-ce que c’est ?Lightweight Directory Access Protocolstandardpeut être sécurisé via SSLde nombreuses implémentations, tant côté serveur quecôté client

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 30: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Implémentations

Côté serveurOpenLDAPMicrosoft Active Directoryquelques autres : Novell eDirectory (ex-NDS, NovellDirectory Services), Fedora Directory Server, . . .

Côté clientC, Python, PHP, Java, . . .Zope/Plone : LDAPUserFolder, Pluggable AuthenticationService (PAS)

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 31: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Connexion à l’annuaire LDAP

développementintégration et configuration de plusieurs composantsutilisation de PloneLDAP

Présentation à l’écran.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 32: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Connexion à l’annuaire LDAP : résumé

1 Télécharger PloneLDAP et décompresser l’archive dans lerépertoire Products/ de l’instance Zope.

2 Passer en ZMI, à la racine du site Plone.3 Cliquer sur acl_users.4 Ajouter un élément de type Plone LDAP plugin et le

configurer.5 Cliquer sur l’élément nouvellement créé et cocher toutes

les cases.6 Revenir dans acl_users puis cliquer sur plugins.7 Pour les fonctionnalités suivantes et selon nos besoins,

placer le plugin nouvellement créé en première positionpour Group_enumeration, Group_management,Properties, User_adder et User_management.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 33: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Introduction au workflow

Définitiondescription d’un processus métier

Conceptsétat : étape transitoire d’un documenttransition : action sur un document, changeantgénéralement l’état

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 34: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Workflow standard de Plone

publier

soumettre à la publication

privé en attentede modération

publié

retirer

renvoyer

Présentation à l’écran du workflow standard de Plone.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 35: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Personnalisation simple d’un workflow

publier

soumettre à la publication

privé en attentede modération

publié

retirer

renvoyer

archivé

archiver

publier

Personnalisation à l’écran du workflow standard.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 36: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Personnalisation avancée du workflow

actions pré- ou post-transitionstransitions automatiques. . .

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 37: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Rôles locaux et espaces partagés

Objectifsrestreindre l’accès de certaines rubriques à certainsutilisateurs (ou groupes)déléguer les droits de gestion de contenu à certainsutilisateurscréer des espaces de travail par service, par projet, . . .

Principe et exempleAdministrateur : typiquement global au portail. . . mais peut aussi être local à un dossier

Démonstration à l’écran.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 38: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Plone est modulaire

Composants de Plone remplaçables

catalogue : permet d’effectuer des recherchesmoteur de workflowcomposants techniques interchangeables

Composants complémentairessondage, blog, quizz, vidéo, newsletter, suivi desdemandes, contenus multilingues, etc.la majorité provient de développements pour des clients :gage de qualité et de maintenancehttp://plone.org/products

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 39: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

PloneFormGen : gestion de formulaires

produit extrêmement complet de création de formulairesconfigurable et extensible

Installation et configuration à l’écran.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 40: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

CMFNotification : notification mail

permet d’envoyer des notifications par mail lorsqu’undocument est créé, modifié, quand une transition deworkflow est actionnée, . . .permet également de s’abonner à un dossier ou à undocumentconfiguration par un système de règlessimilaire aux content rules de Plone 3, en plus extensible

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 41: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Ploneboard : forum

Un module de forum, configurable et extensible.

Installation et configuration à l’écran.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 42: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Concepts de base

HTML et CSSHTML : langage de description du contenu d’une page webCSS : décrit la présentation d’une page web

Skinpermet de personnaliser la CSS (couleur, logo,agencement des informations, . . . )permet de personnaliser le HTML (agencement desinformations, ajout/suppression d’informations sur desmodèles de page standard : listing, formulaired’authentification, . . . )permet de personnaliser la logique du site

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 43: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Personnalisation de la skin

Présentation à l’écran de la façon dont on peut rapidementmassacrer personnaliser l’apparence graphique d’un site

Plone : position des portlets, logo, couleurs, etc.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 44: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Utilisation avancée des skins

personnalisation de la skin par rubriquepersonnalisation de la skin selon le profil de l’utilisateur. . .

À l’écran : quelques exemples.

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 45: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

ArchGenXML

Générer automatiquement un module utilisable à partir d’unsimple schéma.

fichier XMI

schéma UML

module Plone

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 46: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Intérêt et limitations d’ArchGenXML

Limitationsutilisation de vues génériques (mais personnalisables)ne génère pas la logique de l’application

Intérêtsla modélisation réalisée est utiliséepossibilité de prototyper très rapidement une applicationpeut servir de base à un développement plus poussé

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 47: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

ZEO : un cluster applicatif à portée de main

Clients et serveur ZEOserveur ZEO connecté à la ZODB

client ZEO prend en charge les requêtes du navigateur,effectue les traitements et accède aux donnéesvia le serveur ZEO

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 48: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Architecture simple

Internet ou intranet

Client ZEO #1

Serveur ZEO

(ZODB)

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 49: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Exemple d’architecture avancée

Internet ou intranet

Serveur de cache / Répartiteur de charge

(load balancer)

Client ZEO #1

Client ZEO #2

Client ZEO #3

Serveur ZEO

(ZODB)Base de données MySQL

Annuaire OpenLDAP

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 50: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

Conclusion

Ploneun système complet out of the box, modulaire et évolutifun système qui monte en chargeun système open source, développé par une communautémondiale pour des clients

Le futur de Ploneamélioration constante des performances et de l’interfaceutilisateurutilisation des concepts et techniques de Zope 3 pour plusde réutilisabilité. . . également chez vous ?

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)

Page 51: Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP

En savoir plus

Sites officielssite communautaire http://plone.org

site business http://plone.net

Pilot Systems, prestataire de services autour de Plonesite web http://www.pilotsystems.net

sur Plone http://www.pilotsystems.net/technologies/plonecontact info CHEZ pilotsystems POINT net

Damien BATY (Pilot Systems) Tutoriel Plone : intranet collaboratif (Solutions Linux 2008)