Planète

Par Simon Georges
Simon Georges
Drupal depuis plus de 10 ans, SEO depuis 3 ans

Bien débuter avec Nginx

Vous avez longtemps été un utilisateur plus ou moins averti de Apache HTTP Server et vous voulez commencer à tester nginx ? Voici quelques règles assez simples pour partir dans la bonne direction.

Par admin

SynfonyCon 2015

Synfonycon Paris 2015 se déroulera du 3 au 5 décembre 2015 au Folies Bergère Theater, Paris. Ce Rendez-vous fêtera les 10 ans du Framework Synfony et la sortie majeure de sa verison 3.

bandeau Synfony 10 ans

L'association Drupal France et Francophonie sera représentée par tous les membres du bureau 2015 pour parler de la communauté Francophone et du CMS.

Ce sera aussi l'occasion de parler de la nouvelle version "Drupal 8", fraichement sorti (19 novembre 2015), qui s'appuie sur les Bundles de Synfony 2.x

C'est pourquoi Drupal sera un des sponsors de SynfonyCon Paris et nous vous donnons rendez-vous pour venir nous voir. Par ailleurs, l'association à travers de son président interviendra lors des Lightning talks le jeudi 3 décembre à 14h00.

Tags : 
Par admin

SymfonyCon 2015

Symfonycon Paris 2015 se déroulera du 3 au 5 décembre 2015 au Folies Bergère Theater, Paris. Ce Rendez-vous fêtera les 10 ans du Framework Symfony et la sortie majeure de sa verison 3.

bandeau Symfony 10 ans

L'association Drupal France et Francophonie sera représentée par tous les membres du bureau 2015 pour parler de la communauté Francophone et du CMS.

Ce sera aussi l'occasion de parler de la nouvelle version "Drupal 8", fraichement sorti (19 novembre 2015), qui s'appuie sur les Bundles de Symfony 2.x

C'est pourquoi Drupal sera un des sponsors de SymfonyCon Paris et nous vous donnons rendez-vous pour venir nous voir. Par ailleurs, l'association à travers de son président interviendra lors des Lightning talks le jeudi 3 décembre à 14h00.

Tags : 

Prendre le contôle sur les prix affichés avec Drupal commerce

Téléviseur dans un champ

Drupal commerce dispose d'un nombre important de modules contribués permettant de modifier l'affichage du prix d'un produit sur une boutique en ligne. Mais si des besoins métier sont par trop spécifiques, comme par exemple, afficher le prix de vente, et le prix original si une promotion lui est appliqué dessus, ainsi que le prix de vente avec un autre taux de TVA, et n'oubmions pas le prix HT, tout ceci accompagné d'une unité de quantité et d'un commentaire,avouez que nous risquons d'être un peu court avec les modules existants tant les besoins métier sont ici particuliers. Découvrons comment prendre le contrôle total de l'affichage du prix de votre produit en créant notre propre formateur de champ qui sera en charge du rendu de celui-ci.

Thème 
Drupal 7
Développement
Commerce

Prendre le contôle sur les prix affichés avec Drupal commerce

Drupal commerce dispose d'un nombre important de modules contribués permettant de modifier l'affichage du prix d'un produit sur une boutique en ligne. Mais si des besoins métier sont par trop spécifiques, comme par exemple, afficher le prix de vente, et le prix original si une promotion lui est appliqué dessus, ainsi que le prix de vente avec un autre taux de TVA, et n'oublions pas le prix HT, tout ceci accompagné d'une unité de quantité et d'un commentaire,avouez que nous risquons d'être un peu court avec les modules existants tant les besoins métier sont ici particuliers. Découvrons comment prendre le contrôle total de l'affichage du prix de votre produit en créant notre propre formateur de champ qui sera en charge du rendu de celui-ci.

Par kgaut
Kevin Gautreau

Installer Drupal 8 avec composer

Il est maintenant possible de gérer son installation de Drupal directement avec composer, installation, ajout de module, update...

Prérequis

Pour cela évidement, il faut avoir composer d'installé, sous Debian/Ubuntu :

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Il aussi est nécessaire d'avoir l'extension php CURL, toujours sous Debian et dérivés installez-la avec :

sudo apt-get install php5-curl

Téléchargement

Placez-vous dans le dossier où vous souhaitez installer drupal 8 (il doit être vide) et lancez la commande suivante :

composer create-project drupal-composer/drupal-project:8.x-dev ./ --stability dev -vv 

Il se peut que vous obteniez un message de ce genre :

Could not fetch *************, please create a GitHub OAuth token to go over the API rate limit
Head to https://github.com/settings/tokens/new?scopes=repo&description=****************
to retrieve a token. It will be stored in "/home/********/.composer/auth.json" for future use by Composer.

C'est une protection mise en place par github pour éviter de se faire aspirer trop de contenu, il faut que vous généreriez un jeton chez eux, pour cela rendez-vous à l'adresse donnée et cliquez sur generate token :

Votre jeton se trouve à la page suivante :

Copiez-collez-le dans le terminal et faite Enter.

L'installation devrait se terminer correctement.

Structure

Votre dossier devrait maintenant ressembler à ça :

La racine de votre site est le dossier web, c'est sur lui que devra pointer votre virtual host.

Si vous allez dans le dossier web/sites/default vous vous rendrez compte que composer à déjà préparer l'installation du site avec le dossier files et les fichiers services.yml et settings.php, vous n'avez alors plus qu'a lancer votre navigateur sur l'adresse de votre virtual host afin de commencer l'installation de drupal en tant que tel.

Installation de modules contrib

Si vous souhaitez ajouter un module tiers, vous pouvez le faire, toujours avec composer via la commande suivante :

#téléchargement du module devel
composer require drupal/devel:8.*

#téléchargement du module token
composer require drupal/token:8.*

#téléchargement du module examples
composer require drupal/examples:8.*

Versionning et déploiment

Si vous observez le contenu du fichier .gitignore, vous verez qu'il demande à ne pas versionner les dossiers du core de drupal, les dépendances tierces ainsi que les modules contrib :

# Ignore directories generated by Composer
drush/contrib
vendor
web/core
web/modules/contrib
web/themes/contrib
web/profiles/contrib

# Ignore Drupal's file directory
web/sites/default/files

# Ignore files generated by PhpStorm
.idea

Pourquoi ? Car toutes la gestion de dépendance passe maintenant par composer et il n'y a donc aucun intérêt à stocker sous git ces éléments tiers. Le fichier composer.lock contient l'ensemble des dépendances avec la version précise nécessaire pour votre application.

Si vous clonez votre dépôt depuis un autre poste, il suffira de faire un composer install pour récupérer l'ensemble des dépendances dans leurs bonnes versions. Pareil pour le déploiement en prod qui doit ressembler à peu de chose prêt à ça :

#Récupération des dernières modifications
git pull origin master

#Téléchargement des éventuelles nouveaux modules ou encore mises à jours
composer install

#Reconstruction du cache (équivalent de cache-clear sous drupal 7)
drush cache-rebuild

#Migration de la base de données
drush update-db

Mise à jour core et modules

Pour mettre à jour le core et les modules, toujours avec composer :

composer update

Si vous vous rendez-compte que quelque chose c'est mal passé, faite un revert sur le fichier composer.lock puis composer install pour retourner dans l'état précédent.

 

Plus d'informations sur la page github de drupal-composer : https://github.com/drupal-composer/drupal-project.

Faut-il un expert Drupal 8 pour se lancer ?

La première version stable de Drupal 8 est enfin disponible au téléchargement. Beaucoup d'encre a coulé sur les nouveautés introduites par Drupal 8, tant elles sont nombreuses il est vrai, mais aussi parce que cette nouvelle version majeure aura su se faire attendre. Nous avons aussi beaucoup lu sur la complexité de Drupal 8, sur la rupture technologique introduite ou son orientation induite de Drupal 8 vers les entreprises et organisations. Qu'en est-il exactement et peut-on lancer son site sur Drupal 8 sans avoir recours à un spécialiste Drupal 8 ou disposer d'une armada de développeurs ?

Par kgaut
Kevin Gautreau

Drupal 8 version finale disponible

Après quelques années de gestations, Drupal 8 est depuis aujourd'hui disponible en version stable (8.0.0 pour être exact.)

C'est une nouvelle version majeur, une mise à jour de votre site en Drupal 7 ne sera pas forcément aisé. Avant de migrer il faudra attendre que les modules tiers que vous utilisez soient portés en version 8 et si vous avez des modules customs, il faudra certainement les réécrire en grande partie.

Au niveau administration, une grosse refonte de l'interface utilisateur à été faite, des modules quasiment indispensables en dans drupal 7 sont maintenant dans le cœur de Drupal 8 (Views, CKeditor...) La gestion des langues est grandement améliorée.

Au niveau du code, Drupal 8 intègre maintenant des briques venant de Symfony 2, il nécessite au minimum PHP 5.5 et est compatible avec PHP7.

Beaucoup de modules restent encore à porter, mais la communauté a beaucoup travaillé pour que la transition soit plus rapide que celle en 2011 entre Drupal 6 et Drupal 7.

Pour le tester, je vous invite à soit le télécharger directement depuis cette page ou bien à utiliser composer via à l'aide de drupal-composer (https://github.com/drupal-composer/drupal-project.)

Si vous avez envie de jouer et d'apprendre le développement de module avec Drupal 8 je vous invite à tester Drupal Console (ceux qui ont déjà utilisé la console de Symfony ne seront pas perdu) qui permet depuis un terminal de générer des modules, des types d’entité, des types de contenu, des blocs...

À noter enfin, pas d'inquiétudes pour vos sites sur Drupal 7 au niveau de la sécurité, la communauté Drupal maintient toujours 2 versions en parallèle, donc le support de Drupal 7 sera toujours assuré jusqu'à la sortie de Drupal 9, nous avons donc quelques années devant nous...

Tags: 

Par admin

Drupal 8, grand pas en avant dans la gestion de l'expérience numérique, est disponible aujourd'hui

La plateforme de création d'expérience numérique la plus puissante et polyvalente du web s'est encore améliorée.

PORTLAND,Oregon, USA, le 19 novembre 2015, Aujourd'hui, DrupalTM a annoncé la sortie de sa dernière version, Drupal 8 (version anglaise). Drupal est la plateforme de création d'expérience numérique open source utilisée par des millions de sites internet et d'applications. Il motorise un grand nombre des sites web les plus influents. Drupal 8 change la manière de créer et proposer les meilleures expériences digitales du monde.

La gestion de l'expérience numérique est une activité quotidienne à temps complet, et Drupal permet depuis longtemps aux compagnies et organisations de rester au goût du jour sur ce point. C'est un logiciel modulaire conçu pour prendre en charge des opérations digitales complexes. C'est la plateforme que les gouvernements utilisent pour faire passer leurs messages les plus importants. (La Maison Blanche, le gouvernement français). C'est aussi la plateforme des contenus qui divertissent (Les GRAMMYs, France Télévision) et qui informent (Le Figaro, Fox News). C'est encore le moyen par lequel les organisations œuvrent à un changement global (Human Rights Watch, Oxfam International).

"Drupal nous permet de nous concentrer sur la production d’une expérience éditoriale efficace et riche en fonctionnalités afin que nos rédacteurs puissent se focaliser sur la création de contenus captivants et pertinents," dit Alexander S. Ross, Directeur d'ingénierie logicielle à NBC Universal Technology. "Nous sommes enthousiastes à l'idée d'utiliser quelques-unes des nouvelles fonctions de Drupal 8 pour stimuler davantage nos éditeurs".

Drupal 8 améliore la manière, pour les organisations, de présenter leur contenu, et l'impact de ce contenu en est amplifié. Ce contenu est conçu de façon modulaire, à base d'éléments flexibles plutôt que de pages rigides. Ceci aide les organisations à proposer ce que le public attend : un contenu digital personnalisé et pertinent. Avec Drupal 8, le contenu peut être exactement ce dont le public a besoin, là où il en a besoin.

“Aujourd’hui nous avons livré la mise à jour la plus importante de l’histoire de Drupal. En plus de nombreuses améliorations liées à la facilité d'utilisation, Drupal 8 intègre d’importantes avancées en matière de modélisation du contenu, ainsi qu'un découplage entre le traitement des contenus (API) et la mise en forme pour le web," a déclaré Dries Buytaert, créateur de Drupal et leader du projet. “C’est la boîte à outils qu'attendent les organisations pour répondre à la demande d’expériences digitales rapides, flexibles et hautement personnalisées qui sont le futur du web. Nous avons optimisé Drupal 8 pour l’intégration avec d’autres systèmes, et pour l’orchestration d’expériences orientées données, fonctionnant avec différents terminaux et canaux de communication. Plus de 3 000 contributeurs ont donné de leur temps sans compter pour créer le système de gestion de contenus (CMS) le plus évolutif et le plus puissant du marché. Drupal 8 transforme notre communauté et le web que nous connaissions.”

Le trait marquant de Drupal 8 est son engagement en faveur d'un contenu structuré et polyvalent. Cependant, cette flexibilité ne constitue pas le seul avantage de Drupal 8 pour aider les organisations à tirer le meilleur parti leurs plateformes numériques. Il apporte plus de 200 fonctionnalités nouvelles ou améliorées, dont :

  • Des outils d'intégration puissants pour interfacer Drupal avec d'autres logiciels présents dans l'infrastructure d'une organisation.
  • La création simplifiée de contenu, à l'aide d'interfaces de contribution adaptatives.
  • Une focalisation renouvelée sur l’approche “mobile d’abord”, permettant de créer des sites et des applications qui fonctionneront sur un éventail de matériels modernes plus étendu que jamais.
  • Une gestion de configuration totalement nouvelle permettant un développement et une maintenance de site plus rapides et plus sûrs.
  • Un support multilingue bien amélioré, offrant la possibilité de traduire n'importe quel élément du logiciel.

Des organisations utilisent déjà Drupal 8. LeTemps, un journal suisse francophone, utilise Drupal 8 pour afficher 4,2 millions de pages vues par mois. CH2M est une société internationale qui oeuvre au développement durable pour des gouvernements, des infrastructures et l'environnement. Elle utilise Drupal 8 pour présenter et démontrer ses compétences.

Le Memorial Sloan Kettering Cancer Center (MSK), un des plus grands centres de lutte contre le cancer des Etats-Unis, a lancé son nouveau site mskcc.org en mai dernier. Il a choisi Drupal 8, alors même que le logiciel n'était qu'en beta, pour étendre la portée de sa campagne "More Science. Less Fear" ("Plus de science. Moins de peur").

"Les chercheurs et les cliniciens du Memorial Sloan Kettering repoussent régulièrement les limites en matière d’innovation et de recherche,” a déclaré Evan Liebman, Directeur des Technologies et Communications en-ligne, “et nous voulions faire de même dans le domaine de la technologie digitale. Il était vraiment important pour nous d’adopter Drupal 8 très tôt et de contribuer à son développement. Avec le code orienté objet et les modèles de conception réutilisables de Drupal 8, nous pouvons contourner rapidement les obstacles techniques. Soixante-quinze pourcent des caractéristiques et des fonctionnalités que nous demandions sont maintenant dans le cœur de Drupal, y compris Views. Cela signifie que vous pouvez créer un site Drupal 8 directement dès la fin d'installation du coeur."

Avec 100 000 contributeurs actifs, Drupal possède une des communautés open source les plus étendues au monde. C’est une communauté mondiale de concepteurs, rédacteurs, traducteurs, développeurs, sponsors et bien d’autres métiers. En plus d’améliorer le cœur de Drupal ils travaillent ensemble à son extension par la contribution de modules, de thèmes et de distributions. Drupal 8 est l’étape la plus récente de leur engagement à son amélioration continue, permettant à des organisations de construire partout des choses qui étonnent le monde

Tous les noms de sociétés et de produits tiers sont des marques de leurs propriétaires respectifs. Nous les avons mentionnés uniquement à titre de référence.


A propos de l’Association Drupal

L’Association Drupal est une organisation sans but lucratif. Elle aide à faire grandir le projet Drupal et sa communauté par le biais de financements, de l’infrastructure, des événements et de la promotion. Sa vision consiste à faciliter la création d’espaces où quiconque, n’importe où, peut utiliser Drupal pour faire de l’internet un meilleur espace. Elle travaille à donner aux créateurs du web, ceux qui le pensent et ceux qui le font, l’inspiration et le pouvoir d’agir ainsi.

Pour plus d’informations, contactez, en anglais, le Président de l’Association Drupal Dries Buytaert, ou sa Directrice Exécutive Holly Ross.

Annonce ci-dessus traduite et localisée à partir de la version anglaise.


A propos de l’Association Drupal France et francophonie

L’Association Drupal France et francophonie est une organisation sans but lucratif. Elle représente officiellement le projet Drupal et sa communauté en France. Elle a pour missions principales de
promouvoir le logiciel libre de gestion de contenu Drupal en France et dans la francophonie,
d'exploiter et de gérer le site communautaire http://drupalfr.org, de maintenir la traduction française de Drupal et de ses principaux modules de contribution, et de créer et maintenir de la documentation en Français.

Pour plus d’informations, contactez le Bureau de Drupal France.


Aller plus loin

Découvrez aussi les principales nouveautés ou améliorations apportées par Drupal 8.

N'hésitez pas à télécharger Drupal 8.0.0 pour l'essayer.

Ces vidéos vous aideront à comprendre pourquoi nous aimons Drupal 8, et que Drupal est vraiment communautaire.

En page d'accueil : 
Version de Drupal : 

Faut-il un expert Drupal 8 pour se lancer ?

pompe à essence libre service

La première version stable de Drupal 8 est enfin disponible au téléchargement. Beaucoup d'encre a coulé sur les nouveautés introduites par Drupal 8, tant elles sont nombreuses il est vrai, mais aussi parce que cette nouvelle version majeure aura su se faire attendre.

Thème 
Drupal 8
Expertise Drupal 8

La gestion des librairies avec Drupal 8

Une librairie

La gestion des ressources (feuilles de style CSS, javascript JS) sous Drupal 8 a fondamentalement changé comparé à Drupal 7. Le principe général qui a guidé la refonte de la gestion des ressources sous Drupal 8 est que seules les pages ayant besoin de ces ressources les chargeront. Le résultat immédiat est une performance accrue, mais son corollaire est une gestion plus fine du chargement de ces ressources. Heureusement, Drupal 8 a revu aussi en profondeur la gestion de ces ressources pour la simplifier et la rendre modulable à volonté en quelques lignes de configuration.

Thème 
Drupal 8
Développement
Theming

La gestion des librairies avec Drupal 8

La gestion des ressources (feuilles de style CSS, javascript JS) sous Drupal 8 a fondamentalement changé comparé à Drupal 7. Le principe général qui a guidé la refonte de la gestion des ressources sous Drupal 8 est que seules les pages ayant besoin de ces ressources les chargeront. Le résultat immédiat est une performance accrue, mais son corollaire est une gestion plus fine du chargement de ces ressources. Heureusement, Drupal 8 a revu aussi en profondeur la gestion de ces ressources pour la simplifier et la rendre modulable à volonté en quelques lignes de configuration.

Par vincent59
Vincent Liefooghe

Intégration Drupal avec un annuaire LDAP

Dans une architecture de type intranet, il est intéressant d'avoir une base de comptes commune, partagée entre plusieurs applications.
Ceci permet dans un premier temps d'avoir un seul couple login / mot de passe, et supprime la nécessite de créer manuellement des comptes dans chaque application.
Les annuaires LDAP sont souvent utilisés pour stocker les comptes, l'intérêt étant qu'ils sont intégrables avec de nombreuses applications (LDAP est un protocole normalisé), et qu'il est assez facile de mettre en place une architecture haute-disponibilité avec des annuaires LDAP, pour un coût négligeable.

Nous allons, dans la suite de cet article, montrer comment intégrer Drupal avec un annuaire LDAP, et quels sont les fonctionnalités offertes via cette intégration.

Article en cours de rédaction, à compléter !

Installation du module

Pré requis

Pour utiliser les modules, il faut que PHP dispose des librairies / extensions LDAP. Sur une distribution type Debian, ceci se fait via :

sudo apt-get install php5-ldap

Téléchargement du module Drupal

Pour Drupal 7, nous allons utiliser le module LDAP (https://www.drupal.org/project/ldap).
La documentation (en anglais) du module se trouve à http://drupal.org/node/997082.

L'installation via drush est simple :

drush dl ldap
Project ldap (7.x-2.0-beta8) downloaded to /var/www/monsite/sites/all/modules/ldap.                                  [success]
Project ldap contains 12 modules: ldap_authentication, ldap_sso, ldap_query, ldap_user, ldap_servers, ldap_test, ldap_feeds, ldap_views, ldap_authorization_drupal_role, ldap_authorization_og, ldap_authorization, ldap_help.

On constate tout de suite que ce module est en fait une suite de différents modules, qui offrent des fonctionnalités variées. Nous les citons ici dans l'ordre des dépendances :

  • LDAP Servers (ldap_servers) : fournit la configuration du module.
  • LDAP User Module (ldap_user) : fournit les fonctions permettant de gérer la correspondance entre les utilisateurs Drupal et ceux du LDAP, y compris entre les attributs du LDAP et les champs Drupal
  • LDAP Authentication (ldap_authentication) : fournit les fonctions d'authentification sur l'annuaire LDAP
  • LDAP Authorization (ldap_authorization) : fournit la capacité de faire correspondre des groupes LDAP à des rôles Drupal

Ces modules sont suffisants pour gérer l'interaction avec le LDAP pour les utilisateurs.
D'autres modules peuvent compléter ces fonctions :

  • LDAP Query (ldap_query) : permet de consruire des requêtes LDAP, qui seront utilisées dans d'autres modules
  • LDAP Feeds (ldap_feeds) : permet, sur la base des query prédéfinies, d'automatiser la création de contenu sur la base de requêtes LDAP
  • LDAP Views (ldap_views) : intégration des requêtes LDAP avec Views

Dans un premier temps, nous allons uniquement activer les modules Servers, User, Authentication et Authorization

drush en ldap_servers ldap_user ldap_authentication ldap_authorization ldap_authorization_drupal_role
The following extensions will be enabled: ldap_servers, ldap_user, ldap_authentication, ldap_authorization, ldap_authorization_drupal_role
Do you really want to continue? (y/n): y
ldap_user was enabled successfully.                                                                                      [ok]
ldap_authentication was enabled successfully.                                                                            [ok]
ldap_authorization was enabled successfully.                                                                             [ok]
ldap_authorization_drupal_role was enabled successfully.                                                                 [ok]
ldap_servers was enabled successfully.                                                                                   [ok]

Paramétrage

Pour procéder au paramétrage, il faut connaître quelques informations sur l'annuaire LDAP :

  • Adresse IP / hostname
  • Port d'écoute (généralement 389 en clair, 636 en LDAPS)
  • Base DN (la base de recherche dans l'annuaire)
  • Compte de "service" sur l'annuaire (pour éviter les connexions anonymes)
  • Mot de passe de ce compte

Ajout d'un annuaire

L'ajout / paramétrage d'un serveur d'annuaire se fait via l'URL : /admin/config/people/ldap/servers/add. [image à ajouter]

Connection Settings / Paramètres de connexion

C'est ici que l'on renseigne les éléments de connexion à l'annuaire :

  • Machine name : un nom "machine" unique
  • Name : le nom du serveur (nom indicatif, par exemple "Mon serveur LDAP")
  • Activé : cocher la case pour activer cette instance de serveur
  • LDAP Server Type : on peut définir quel type de serveur LDAP (défaut, Active Directory, OpenLDAP, Novell, Apple)
  • LDAP Server : adresse IP ou hostname du serveur
  • LDAP Port : port du serveur (389 par défaut)
  • Use Start-TLS : à cocher uniquement si l'annuaire est paramétré pour utiliser TLS
  • Follow LDAP Referrals : à cocher si le client doit suivre les referrals. Inutile si on n'a qu'un seul serveur LDAP

[image à ajouter] Par exemple, on peut avoir :

  • Machine name : my_ldap_server
  • Name : LDAP Server
  • Activé : Oui (coché)
  • LDAP Server Type : Open LDAP
  • LDAP Server : 10.0.3.16 (adresse IP du serveur LDAP)
  • LDAP Port : 389
  • Autres cases décochées

Binding Methode / Méthode de connexion

Cette section permet de renseigner les paramètres de connexion à l'annuaire. L'utilisation d'un compte de service est une bonne pratique.
Elle permet d'éviter les connexions anonymes, et d'isoler quel compte fait quelles requêtes : utile en cas de besoin d'analyse des logs.
On définit donc ici le type de connexion et les paramètres:

  • Type : Service Account Bind (avec un compte)
  • DN for non anonymous search : DN du compte (par exemple : cn=drupal_service,dc=example,dc=com)
  • Password for non-anonymous search : Mot de passe du compte

LDAP user to Drupal User Relationship / Relations entre utilisateurs Drupal et LDAP

Cette section permet de définir comment faire la relation entre les utilisateurs Drupal et LDAP. C'est ici que l'on définit les DN de base pour la rechercher des utilisateurs dans l'annuaire.

On peut définir plusieurs bases de recherche, si les comptes sont répartis dans plusieurs containers / branches.

On va également définir quels sont les attributs utilisés pour identifier les comptes :

  • AuthName attribute : uid
  • AccountName attribute : uid
  • Email attribute : mail
  • Persistent and Unique User ID Attribute : dn

Dans notre exemple, les comptes sont référencés par uid=XXXX,(BASEDN). Par exemple : uid=TSTLDAP1,ou=people,dc=example,dc=com.

User

Cette section, assez riche, permet de définir les interactions entre l'annuaire LDAP et le Drupal pour les utilisateurs.
On peut par exemple définir les règles de provisionnement des attributs entre LDAP et Drupal (et également dans l'autre sens) en faisant correspondre les champs LDAP et les champs Drupal.

Attention : une fois les champs source et destination définis, ne pas oublier de cocher les cases :

  • On Drupal User Creation : synchronisation à la création de l'utilisateur
  • On Synch to Drupal User : synchronisation lors du cron ou de la connexion de l'utilisateur

Il faut s'assurer que le type des champs de l'annuaire est compatible avec les champs Drupal.
Nous avons eu par exemple un problème avec un champ Drupal qui est une référence une taxonomie (Drupal attend un ID) alors que dans l'annuaire LDAP on avait un attribut de type Texte (le code de la taxonomie).

 

Il est également possible de créer un compte dans l'annuaire LDAP à partir de Drupal. Pour cela, il faut respecter le paramétrage suivant : Show option on user create form to determine how account conflict is resolved. Activer l'annuaire dans le "BASIC PROVISIONING TO LDAP SETTINGS Cocher : Create or Synch to LDAP entry when a Drupal account is created or updated. Only applied to accounts with a status of approved. Provide option on admin/people/create to create corresponding LDAP Entry.

Authentication

Cette partie permet de gérer le mode d'authentification :

  • Mixed mode : on teste d'abord l'authentification Drupal, puis LDAP
  • Only LDAP : seule l'authentification LDAP est utilisée, SAUF pour le super Administrateur (ID=1)
  • Authentication LDAP Server : cocher le(s) serveur(s) LDAP utilisé(s) pour l'authentification

On utilise souvent le mode Mixed, qui permet de garder quelques utilisateurs directement dans le Drupal, pour gérer les exceptions.

Authorization

Attention : les autorisations ne semblent fonctionner qu'avec des groupes LDAP ou un attribut de type memberof. On peut cependant assigner un rôle par défaut en utilisant plusieurs paramètres :

Catégorie: 


Tag: 

Par vincent59
Vincent Liefooghe

Intégration Drupal avec un annuaire LDAP

Dans une architecture de type intranet, il est intéressant d'avoir une base de comptes commune, partagée entre plusieurs applications.
Ceci permet dans un premier temps d'avoir un seul couple login / mot de passe, et supprime la nécessite de créer manuellement des comptes dans chaque application.
Les annuaires LDAP sont souvent utilisés pour stocker les comptes, l'intérêt étant qu'ils sont intégrables avec de nombreuses applications (LDAP est un protocole normalisé), et qu'il est assez facile de mettre en place une architecture haute-disponibilité avec des annuaires LDAP, pour un coût négligeable.

Nous allons, dans la suite de cet article, montrer comment intégrer Drupal avec un annuaire LDAP, et quels sont les fonctionnalités offertes via cette intégration.

Article en cours de rédaction, à compléter !

Installation du module

Pré requis

Pour utiliser les modules, il faut que PHP dispose des librairies / extensions LDAP. Sur une distribution type Debian, ceci se fait via :

sudo apt-get install php5-ldap

Téléchargement du module Drupal

Pour Drupal 7, nous allons utiliser le module LDAP (https://www.drupal.org/project/ldap).
La documentation (en anglais) du module se trouve à http://drupal.org/node/997082.

L'installation via drush est simple :

drush dl ldap
Project ldap (7.x-2.0-beta8) downloaded to /var/www/monsite/sites/all/modules/ldap.                                  [success]
Project ldap contains 12 modules: ldap_authentication, ldap_sso, ldap_query, ldap_user, ldap_servers, ldap_test, ldap_feeds, ldap_views, ldap_authorization_drupal_role, ldap_authorization_og, ldap_authorization, ldap_help.

On constate tout de suite que ce module est en fait une suite de différents modules, qui offrent des fonctionnalités variées. Nous les citons ici dans l'ordre des dépendances :

  • LDAP Servers (ldap_servers) : fournit la configuration du module.
  • LDAP User Module (ldap_user) : fournit les fonctions permettant de gérer la correspondance entre les utilisateurs Drupal et ceux du LDAP, y compris entre les attributs du LDAP et les champs Drupal
  • LDAP Authentication (ldap_authentication) : fournit les fonctions d'authentification sur l'annuaire LDAP
  • LDAP Authorization (ldap_authorization) : fournit la capacité de faire correspondre des groupes LDAP à des rôles Drupal

Ces modules sont suffisants pour gérer l'interaction avec le LDAP pour les utilisateurs.
D'autres modules peuvent compléter ces fonctions :

  • LDAP Query (ldap_query) : permet de consruire des requêtes LDAP, qui seront utilisées dans d'autres modules
  • LDAP Feeds (ldap_feeds) : permet, sur la base des query prédéfinies, d'automatiser la création de contenu sur la base de requêtes LDAP
  • LDAP Views (ldap_views) : intégration des requêtes LDAP avec Views

Dans un premier temps, nous allons uniquement activer les modules Servers, User, Authentication et Authorization

drush en ldap_servers ldap_user ldap_authentication ldap_authorization ldap_authorization_drupal_role
The following extensions will be enabled: ldap_servers, ldap_user, ldap_authentication, ldap_authorization, ldap_authorization_drupal_role
Do you really want to continue? (y/n): y
ldap_user was enabled successfully.                                                                                      [ok]
ldap_authentication was enabled successfully.                                                                            [ok]
ldap_authorization was enabled successfully.                                                                             [ok]
ldap_authorization_drupal_role was enabled successfully.                                                                 [ok]
ldap_servers was enabled successfully.                                                                                   [ok]

Paramétrage

Pour procéder au paramétrage, il faut connaître quelques informations sur l'annuaire LDAP :

  • Adresse IP / hostname
  • Port d'écoute (généralement 389 en clair, 636 en LDAPS)
  • Base DN (la base de recherche dans l'annuaire)
  • Compte de "service" sur l'annuaire (pour éviter les connexions anonymes)
  • Mot de passe de ce compte

Ajout d'un annuaire

L'ajout / paramétrage d'un serveur d'annuaire se fait via l'URL : /admin/config/people/ldap/servers/add. [image à ajouter]

Connection Settings / Paramètres de connexion

C'est ici que l'on renseigne les éléments de connexion à l'annuaire :

  • Machine name : un nom "machine" unique
  • Name : le nom du serveur (nom indicatif, par exemple "Mon serveur LDAP")
  • Activé : cocher la case pour activer cette instance de serveur
  • LDAP Server Type : on peut définir quel type de serveur LDAP (défaut, Active Directory, OpenLDAP, Novell, Apple)
  • LDAP Server : adresse IP ou hostname du serveur
  • LDAP Port : port du serveur (389 par défaut)
  • Use Start-TLS : à cocher uniquement si l'annuaire est paramétré pour utiliser TLS
  • Follow LDAP Referrals : à cocher si le client doit suivre les referrals. Inutile si on n'a qu'un seul serveur LDAP

[image à ajouter] Par exemple, on peut avoir :

  • Machine name : my_ldap_server
  • Name : LDAP Server
  • Activé : Oui (coché)
  • LDAP Server Type : Open LDAP
  • LDAP Server : 10.0.3.16 (adresse IP du serveur LDAP)
  • LDAP Port : 389
  • Autres cases décochées

Binding Methode / Méthode de connexion

Cette section permet de renseigner les paramètres de connexion à l'annuaire. L'utilisation d'un compte de service est une bonne pratique.
Elle permet d'éviter les connexions anonymes, et d'isoler quel compte fait quelles requêtes : utile en cas de besoin d'analyse des logs.
On définit donc ici le type de connexion et les paramètres:

  • Type : Service Account Bind (avec un compte)
  • DN for non anonymous search : DN du compte (par exemple : cn=drupal_service,dc=example,dc=com)
  • Password for non-anonymous search : Mot de passe du compte

LDAP user to Drupal User Relationship / Relations entre utilisateurs Drupal et LDAP

Cette section permet de définir comment faire la relation entre les utilisateurs Drupal et LDAP. C'est ici que l'on définit les DN de base pour la rechercher des utilisateurs dans l'annuaire.

On peut définir plusieurs bases de recherche, si les comptes sont répartis dans plusieurs containers / branches.

On va également définir quels sont les attributs utilisés pour identifier les comptes :

  • AuthName attribute : uid
  • AccountName attribute : uid
  • Email attribute : mail
  • Persistent and Unique User ID Attribute : dn

Dans notre exemple, les comptes sont référencés par uid=XXXX,(BASEDN). Par exemple : uid=TSTLDAP1,ou=people,dc=example,dc=com.

User

Cette section, assez riche, permet de définir les interactions entre l'annuaire LDAP et le Drupal pour les utilisateurs.
On peut par exemple définir les règles de provisionnement des attributs entre LDAP et Drupal (et également dans l'autre sens) en faisant correspondre les champs LDAP et les champs Drupal.

Attention : une fois les champs source et destination définis, ne pas oublier de cocher les cases :

  • On Drupal User Creation : synchronisation à la création de l'utilisateur
  • On Synch to Drupal User : synchronisation lors du cron ou de la connexion de l'utilisateur

Il faut s'assurer que le type des champs de l'annuaire est compatible avec les champs Drupal.
Nous avons eu par exemple un problème avec un champ Drupal qui est une référence une taxonomie (Drupal attend un ID) alors que dans l'annuaire LDAP on avait un attribut de type Texte (le code de la taxonomie).

 

Il est également possible de créer un compte dans l'annuaire LDAP à partir de Drupal. Pour cela, il faut respecter le paramétrage suivant : Show option on user create form to determine how account conflict is resolved. Activer l'annuaire dans le "BASIC PROVISIONING TO LDAP SETTINGS Cocher : Create or Synch to LDAP entry when a Drupal account is created or updated. Only applied to accounts with a status of approved. Provide option on admin/people/create to create corresponding LDAP Entry.

Authentication

Cette partie permet de gérer le mode d'authentification :

  • Mixed mode : on teste d'abord l'authentification Drupal, puis LDAP
  • Only LDAP : seule l'authentification LDAP est utilisée, SAUF pour le super Administrateur (ID=1)
  • Authentication LDAP Server : cocher le(s) serveur(s) LDAP utilisé(s) pour l'authentification

On utilise souvent le mode Mixed, qui permet de garder quelques utilisateurs directement dans le Drupal, pour gérer les exceptions.

Authorization

Attention : les autorisations ne semblent fonctionner qu'avec des groupes LDAP ou un attribut de type memberof. On peut cependant assigner un rôle par défaut en utilisant plusieurs paramètres :

Catégorie: 


Tag: 

Par vincent59
Vincent Liefooghe

Mise en place de fonctionnalités avancées

Drupal peut être considéré comme autre chose qu'un "simple" CMS, grâce à ses API et surtout ses nombreux modules contribués.

Il peut ainsi facilement être intégré au coeur d'un SI, par exemple pour l'authentification des utilisateurs (sur un annuaire LDAP ou Active Directory), en mode SSO avec CAS ou servir de "back-end" de services REST pour des applications mobiles.

On peut également mettre en place assez facilement des fonctions de géo-mapping.

Dans ce chapitre, nous allons décrire comme mettre en place ces différentes fonctionnalités avancées.

Catégorie: 


Tag: 

Pages