Pour permettre l'authentification dans un formulaire provenant d'un serveur Web avec MariaDB en utilisant des identifiants provenant de l'Active Directory, vous pouvez suivre les étapes suivantes : ## Etapes de configuration ## # 1. Configurer MariaDB pour l'authentification LDAP #Installer le plugin pam_ldap : sudo apt -y install libnss-ldap libpam-ldap ldap-utils #Configurer en mettant le nom ou l'IP du serveur d'annuaire (LDAP), un compte et un mot de passe #Modifiez /etc/nsswitch.conf et ajoutez l'authentification LDAP aux lignes passwd et group sudo nano /etc/nsswitch.conf passwd: compat systemd ldap group: compat systemd ldap shadow: compat #Modifiez le fichier /etc/pam.d/common-password. Supprimez use_authtok en ligne 26 sudo nano /etc/pam.d/common-password #Configurer le fichier pam_ldap.conf : sudo nano pam_ldap.conf base dc=univ-poitiers,dc=local uri ldap://ad ldap_version 3 binddn cn=admin,dc=univ-poitiers,dc=local bindpw secret # 2. Configurer le serveur Web #Configurer SSL/TLS : SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/key.pem ... #Utiliser un module d'authentification LDAP :Installez et configurez un module d'authentification LDAP pour votre serveur Web. Pour Apache, mod_authnz_ldap : sudo apt install mod_authnz_ldap AuthType Basic AuthName "LDAP Authentication" AuthBasicProvider ldap AuthLDAPURL ldap://your-ad-server/dc=example,dc=com?uid AuthLDAPBindDN cn=admin,dc=example,dc=com AuthLDAPBindPassword secret Require valid-user # 3. Modifier le formulaire HTML. Assurer la sécurité du formulaire : #Assurez-vous que le formulaire envoie les identifiants de manière sécurisée via HTTPS. #Valider les champs du formulaire : #Utilisez JavaScript pour valider les champs du formulaire avant l'envoi. Voici un exemple de validation : # 4. Script d'authentification #Créer un script côté serveur en PHP pour l'authentification LDAP et la vérification des identifiants contre MariaDB. Voici un exemple : connect_error) { die("Connection failed: " . $mysqli->connect_error); } $stmt = $mysqli->prepare("SELECT * FROM users WHERE username = ?"); $stmt->bind_param("s", $ldap_user); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows > 0) { // Utilisateur trouvé dans MariaDB echo "Authentification réussie"; } else { echo "Utilisateur non trouvé dans MariaDB"; } $stmt->close(); $mysqli->close(); } else { // Échec de l'authentification echo "Échec de l'authentification LDAP"; } ldap_close($ldap_conn); ?>