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);
?>