Aller au contenu

ADFS (Active Directory) (SAML et Mellon)#

Dans ce tutoriel, nous décrivons comment configurer l'authentification unique (SSO) pour i-doit en utilisant SAML. Dans cet exemple, nous utilisons Mellon comme authentificateur contre LDAP-AD-FS.

Préparatifs#

Nous utilisons deux serveurs pour la configuration d'exemple, un serveur Windows avec domaine/AD et FS et un serveur Debian 11 avec Apache et Mellon :

FQDN IP Rôle OS
tu2-dc2.tu-synetics.test 10.10.60.22 AD, FS Windows
tu2-samlsso.synetics.test 10.10.60.108 Apache+Mellon Debian11

Configuration de base#

✔ Le serveur Windows doit avoir un AD configuré qui inclut le rôle AD-FS.
✔ I-doit est déjà pré-installé et utilisable.

Installation des paquets#

1
sudo apt -y install openssl libapache2-mod-auth-mellon ntpdate

L'architecture du système doit être x86 en 64 bits.

Configuration de Mellon#

Nous créons un répertoire pour cela sous /etc/apache2 et stockons nos données de configuration ici.

1
2
sudo mkdir -p /etc/apache2/mellon
cd /etc/apache2/mellon

Avec la commande suivante, nous créons nos métadonnées Mellon "Veuillez ajuster les URL"

1
/usr/sbin/mellon_create_metadata https://tu2-samlsso.synetics.test/ "https://tu2-samlsso.synetics.test/mellon"

Cela crée maintenant les fichiers suivants

https\_tu2\_samlsso.synetics.test\_.cert
https\_tu2\_samlsso.synetics.test\_.key
https\_tu2\_samlsso.synetics.test\_.xml

Maintenant nous devons récupérer les métadonnées AD-FS de notre AD "Veuillez ajuster les URL"

1
wget https://tu2-dc2.tu-synetics.test/FederationMetadata/2007-06/FederationMetadata.xml%20-O%20/etc/apache2/mellon/FederationMetadata.xml -O /etc/apache2/mellon/FederationMetadata.xml --no-check-certificate

Maintenant nous devons créer notre configuration Mellon.

1
sudo nano /etc/apache2/conf-available/mellon.conf

Insérez les directives de configuration suivantes basées sur l'exemple:

1
2
3
4
5
6
7
8
<Location / >
    MellonSPPrivateKeyFile /etc/apache2/mellon/https_tu2_samlsso.synetics.test_.key
    MellonSPCertFile /etc/apache2/mellon/https_tu2_samlsso.synetics.test_.cert
    MellonSPMetadataFile /etc/apache2/mellon/https_tu2_samlsso.synetics.test_.xml
    MellonIdPMetadataFile /etc/apache2/mellon/FederationMetadata.xml
    MellonEndpointPath /mellon
    MellonEnable "info"
</Location>

Configuration Apache2#

Tout d'abord, nous créons un certificat auto-signé "le nom peut être individuel".

1
openssl req -newkey rsa:3072 -new -x509 -days 3652 -nodes -out /etc/ssl/certs/mywebserver.pem -keyout /etc/ssl/private/mywebserver.key

Créer VHost :

1
sudo nano /etc/apache2/sites-available/mywebserver.con

Dans cet exemple, seul le répertoire protégé via Mellon est protégé sous /var/www/html. Nous pouvons donc créer ultérieurement une autre configuration VHost pour installer par exemple i-doit pro.

Créer le répertoire :

1
sudo mkdir -p /var/www/html/protected

Créer un exemple de fichier html pour tester l'appel ultérieurement :

1
sudo nano /var/www/html/protected/index.html

Tester la configuration :

1
sudo apache2ctl configtest

Activer les modules et les configurations :

1
sudo a2enmod auth_mellon

Synchroniser l'heure :

1
sudo ntpdate -u tu2-dc2.tu-synetics.test

À ce stade, nous avons terminé la configuration du serveur Linux pour le moment et pouvons maintenant nous concentrer sur notre AD.

Configuration AD-FS#

Téléchargez d'abord le fichier mellon_metadata.xml du serveur Linux par exemple via WinSCP et enregistrez-le.

Ajouter une confiance de partie fiable

Les revendications restent actives, puis sur Démarrer

Bienvenue

À l'étape suivante, nous sélectionnons "importer des données ...." et naviguons vers notre XML précédemment enregistré

Sélectionner la source de données

La note suivante peut être ignorée si elle apparaît.

Gestion AD FS

Maintenant, nous saisissons le FQDN de notre serveur Linux.

Spécifier le nom d'affichage

Dans l'étape suivante, nous pouvons contrôler les accès, pour simplifier, nous le laissons pour le moment sur "Permettre à tout le monde".

Choisir la politique de contrôle d'accès

Nous pouvons également ignorer la fenêtre suivante et simplement cliquer sur Suivant.

Prêt à ajouter la confiance

Enfin, cliquez simplement sur Fermer et la Confiance de Partie est créée.

Terminer

Maintenant, nous devons définir les politiques d'émission de revendications afin que notre utilisateur puisse également se connecter via le courrier électronique.

Modifier la revendication AD FS

Maintenant, une fenêtre s'ouvre et nous cliquons sur Ajouter une règle.

Ajouter une règle

Maintenant, nous sélectionnons Envoyer les attributs LDAP en tant que revendication et cliquons sur Suivant

Choisir le type de règle

Nous donnons à la règle un nom unique et ajoutons le mappage comme indiqué.

Configurer la règle de revendication

Ensuite, nous créons une autre règle et sélectionnons Transformer une réclamation entrante

Sélectionnez le modèle de règle

Veuillez configurer comme suit :

Configurer la règle

Maintenant, nous avons un Trust de partie Relying entièrement configuré et pouvons tester l'authentification une fois.

Page de connexion

Test SAML-SSO#

Ouvrez l'URL du serveur une fois dans le navigateur Exemple : https://monserveurweb.example.com/protégé

Après une inscription réussie, nous devrions recevoir la sortie suivante.

Utilisateurs authentifiés uniquement

Installation i-doit pro#

L'installation peut être effectuée comme décrit dans l'article KB pour Debian.

Connexion SSO pour i-doit pro#

Pour cela, nous devons aller dans Administration -> Paramètres système et ajuster la configuration comme suit. Informations importantes sur les contacts : Il est obligatoire que l'adresse e-mail de l'utilisateur respectif soit enregistrée en tant que connexion dans i-doit !

Paramètres SSO i-doit

Étant donné que nous avons suivi nos instructions ou l'article KB actuellement, nous devons ajuster la configuration VHost afin de pouvoir maintenant nous connecter via SSO.

Désactiver le Vhost i-doit

1
sudo a2dissite i-doit

Personnaliser le Vhost Mellon créé au début

1
nano /etc/apache2/sites-enabled/tu2-samlsso.conf

Exemple :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
    ServerAdmin admin@example.com
    DocumentRoot /var/www/html
            <Directory /var/www/html/>
                    AllowOverride All
            </Directory>
    ServerName  fqdn.example.com
    ServerSignature Off
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    LogLevel info ssl:warn

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/mywebserver.pem
    SSLCertificateKeyFile /etc/ssl/private/mywebserver.key
    </VirtualHost>
    <Location />
    Require valid-user
        AuthType "Mellon"
        MellonEnable "auth"
        MellonDecoder "none"
        MellonVariable "cookie"
        MellonSecureCookie On
    </Location>
</IfModule>

Enfin, redémarrez Apache une fois

1
sudo systemctl restart apache2.service

Terminé !

Si nous ouvrons à nouveau l'URL dans notre navigateur et nous connectons, nous serons directement redirigés vers i-doit

Retour à l'écran de connexion

Si un utilisateur se connecte et n'existe pas encore dans i-doit, cet utilisateur est automatiquement redirigé vers l'écran de connexion i-doit et peut se connecter avec un utilisateur local.