L'authentification AzureAD avec SAML nécessite un certains nombres de paramétrages côté Parapheur et Azure.
Il est nécessaire de configurer l'URL de l'application dans Azure.
Installez la librairie située dans un dépôt Gitlab :
cd /var/www/html/
git clone https://labs.maarch.org/maarch/azure-saml.git -b 1.18.8 librairies/simplesamlphp
À la racine de Maarch Parapheur, créez les dossiers librairies/simplesamlphp/config
et librairies/simplesamlphp/metadata
Il faut configurer un nouveau vhost, afin que votre instance soit accessible avec l'URL paramétré dans Azure.
<VirtualHost url_parapheur:443>
ServerName url_parapheur # Important : ne pas changer !
# Mettez le chemin vers votre custom
DocumentRoot /var/www/html/MaarchParapheur
SSLEngine on
SSLCertificateFile /home/maarch/sslKey/apache.pem # Changer vers le chemin de votre certificat HTTPS
SSLCertificateKeyFile /home/maarch/sslKey/apache.key # Changer vers le chemin de votre certificat HTTPS
# Mettez le chemin vers votre custom
<Directory "/var/www/html/MaarchParaphur">
SetEnv LIBRARIES_DIR "/var/www/html/librairies/"
AllowOverride All
Options -Indexes
Options FollowSymLinks Includes ExecCGI
#Chemin vers le dossier temporaire
SetEnv MAARCH_TMP_DIR "/tmp/"
# Changer votre cle privee
SetEnv MAARCH_ENCRYPT_KEY ""
# Mettez le chemin de votre instance
SetEnv SIMPLESAMLPHP_CONFIG_DIR /var/www/html/MaarchParapheur/librairies/simplesamlphp/config
</Directory>
############################
#
# SimpleSAMLphp config
#
############################
<Directory /var/www/html/librairies/simplesamlphp/www>
Require all granted
# <FilesMatch ".*">
# Order allow,deny
# Allow from all
# </FilesMatch>
</Directory>
</VirtualHost>
Ajoutez cette ligne dans /etc/hosts :
127.0.0.1 url_parapheur
Puis redémarrer apache :
sudo service apache2 restart
/var/www/html/MaarchParapheur/librairies/simplesamlphp/config/config.php
:'metadatadir' => '/var/www/html/MaarchParapheur/librairies/simplesamlphp/metadata', // Mettez le chemin de votre instance
/var/www/html/MaarchParapheur/librairies/simplesamlphp/config/authresources.php
:'entityID' => '{url_parapheur}',
'idp' => 'https://sts.windows.net/{idp}/',
/var/www/html/MaarchParapheur/librairies/simplesamlphp/metadata/saml20-idp-remote.php
:<?php
$metadata['https://sts.windows.net/{idp}/'] = array (
'entityid' => 'https://sts.windows.net/{idp}/',
'contacts' =>
array (
),
'metadata-set' => 'saml20-idp-remote',
'SingleSignOnService' =>
array (
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'https://login.microsoftonline.com/{idp}/saml2',
),
1 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
'Location' => 'https://login.microsoftonline.com/{idp}/saml2',
),
),
'SingleLogoutService' =>
array (
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'https://login.microsoftonline.com/{idp}/saml2',
),
),
'ArtifactResolutionService' =>
array (
),
'NameIDFormats' =>
array (
),
'keys' =>
array (
0 =>
array (
'encryption' => false,
'signing' => true,
'type' => 'X509Certificate',
'X509Certificate' => '{X509Certificate}',
),
),
);
À la racine de Maarch Parapheur, créez un lien symbolique vers simplesaml :
ln -s /var/www/html/librairies/simplesamlphp/www simplesaml
Vérifiez que vous pouvez accéder à simplesaml en allant sur : https://{url_parapheur}/simplesaml/
Paramètres :
Comme il est nécessaire paramétrer des utilisateurs dans Azure. Il faut leur créer un compte dans Maarch Parapheur pour pouvoir les utiliser.
Dans l'administration de Maarch Parapheur, dans Mode de connexion -> choisir Azure SAML.