Table of Contents

Drupal MultiSite Shibboleth

Installation de drupal en mode multisite et authentification + authorisation via fédération d'identité shibboleth .

Références

site primaire

installation

recuperation de l'archive courante et preparation de l'arborescence

[root@cms /var/www/dup]# wget http://ftp.drupal.org/files/projects/drupal-7.34.tar.gz
[root@cms /var/www/dup]# tar xvfz drupal-7.34.tar.gz
[root@cms /var/www/dup]# ln -s drupal-7.34 drupal

conf apache

Preparation de la configuration apache + anticipation sur les <Location> pour la suite avec shibboleth

[root@cms ]# cat /etc/httpd/conf.d/dup.conf 

<VirtualHost 157.158.11.129:80>
        ServerName dup.tem-tsp.eu
        ServerAlias dup.*
        DocumentRoot /var/www/dup/drupal
        ErrorLog logs/dup-error_log
        CustomLog logs/dup-access_log common

<Location />
ShibRequestSetting applicationId dup
</Location>

#https://wiki.aai.niif.hu/index.php?title=DrupalShibbolethReadmeDev
<Location /site1>
  AuthType Shibboleth
  ShibRequireSession Off
  # the following single line is only valid for Shib2
  ShibUseHeaders On
  require shibboleth
</Location>

<Location /site2>
  AuthType Shibboleth
  ShibRequireSession Off
  # the following single line is only valid for Shib2
  ShibUseHeaders On
  require shibboleth
</Location>
</VirtualHost>

#idem pour https
<VirtualHost 157.158.11.129:443>
        ServerName dup.tem-tsp.eu
        ServerAlias dup.*
        DocumentRoot /var/www/dup/drupal
        ErrorLog logs/ssl_dup-error_log
        CustomLog logs/ssl_dup-access_log common
        LogLevel warn
        SSLEngine on
	SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
        SSLCertificateFile /etc/pki/tls/certs/cert-10607--.tem-tsp.eu.pem
        SSLCertificateKeyFile /etc/pki/tls/private/tem-tsp_star_nop.key
	SSLCertificateChainFile /etc/pki/tls/certs/chain-10607--.tem-tsp.eu.pem
	SSLCACertificateFile /etc/pki/tls/certs/add_trust_external_ca_root.pem
<Location />
ShibRequestSetting applicationId dup
</Location>
...
</VirtualHost>

database

sur le serveur mysql, preparer la database et les droits d'acces .

mysql> create database drupal_mutual; 
mysql> GRANT ALL PRIVILEGES ON drupal_mutual.* TO 'drupaluser'@'157.158.11.129' IDENTIFIED BY 'secret' WITH GRANT OPTION;

infromations a retenir quand on lancera l'installation des sites via l'interface web drupal .

site primaire

Creation du site primaire (ici dup.tem-tsp.eu) dans la sous arborescence de sites

preparation du fichier settings.php depuis une copie du default et création du repertoir files, le tout en acces provisoirement largement ouverts pour poursuivre l'installation via la navigateur

[root@cms /var/www/dup/drupal/sites]# mkdir dup.tem-tsp.eu ; cd dup.tem-tsp.eu
[root@cms dup.tem-tsp.eu]# cp -a ../default/default.settings.php .
[root@cms dup.tem-tsp.eu]# cp default.settings.php settings.php
[root@cms dup.tem-tsp.eu]# mkdir files
[root@cms dup.tem-tsp.eu]# chmod 666 settings.php
[root@cms dup.tem-tsp.eu]# chmod 777 files

aller sur http://dup.tem-tsp.eu/ (pointra au final sur http://dup.tem-tsp.eu/install.php?profile=standard&locale=en )

sites secondaires

ici nous faisons usage d'une plateforme multisites en mode sous repertoires, donc le site site1 sera en url de type http://dup.tem-tsp.eu/site1 . Pour cela il faut creer un sous repertoire de type : dup.tem-tsp.eu.site1

[root@cms sites]# mkdir dups.tem-tsp.eu.site1
[root@cms sites]# cd dups.tem-tsp.eu.site1
[root@cms dup.tem-tsp.eu.site1]# cp ../default/default.settings.php .
[root@cms dup.tem-tsp.eu.site1]# cp default.settings.php settings.php
[root@cms dup.tem-tsp.eu.site1]# chmod 666 settings.php
[root@cms dup.tem-tsp.eu.site1]# mkdir files
[root@cms dup.tem-tsp.eu.site1]# chmod 775 files/
[root@cms dup.tem-tsp.eu.site1]# chgrp apache files/

lien symbolique

lien indispensable pour l'acces a l'url /sites1 pointe bien sur l'arborescence dup.tem-tsp.eu.site1

[root@cms dup.tem-tsp.eu.site1]# ln -s . /var/www/dups/drupal/site1

Installation du site secondaire via l'URL http://dup.tem-tsp.eu/site1 qui pointera vers install.php la premiere fois .

ensuite il faut retablir des droits d'acces aux fichiers de settings plus fermés !

[root@cms dup.tem-tsp.eu.site1]# chgrp apache settings.php
[root@cms dup.tem-tsp.eu.site1]# chmod 640 settings.php
[root@cms dup.tem-tsp.eu.site1]# ls -l
total 52
-rw-r--r-- 1 root root   23770 Dec 15 22:35 default.settings.php
drwxrwxr-x 3 root apache  4096 Dec 15 22:38 files
-rw-r----- 1 root apache 24094 Dec 15 22:38 settings.php

shibboleth

ref

nous faisons usage du module drupal shib_auth qui permet une authentification shibboleth, mais aussi une affectation de role basé sur attributs shibboleth .

[root@cms modules]# wget http://ftp.drupal.org/files/projects/shib_auth-7.x-4.0.tar.gz
[root@cms modules]# tar xvfz shib_auth-7.x-4.0.tar.gz

activation et parameterage du module via l'interface web , detaiuls, cf https://wiki.aai.niif.hu/index.php?title=DrupalShibbolethReadmeDev