ajout archiveConnexions.php client
This commit is contained in:
parent
a59a87a427
commit
f2653d73b4
4
admin/archiveConnexions.php
Normal file
4
admin/archiveConnexions.php
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
include_once('connexions.php');
|
||||||
|
ArchiveConnexions();
|
||||||
|
?>
|
67
admin/ldap_connector.php
Normal file
67
admin/ldap_connector.php
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
# Fonctions de connexion, de lecture et d'écriture dans l'AD.
|
||||||
|
# AD requiert pour modifier le password d'accéder en ldaps (port 636).
|
||||||
|
# La vérification du certificat n'est pas faite : "REQ_CERT never" dans /etc/ldap/ldap.conf
|
||||||
|
|
||||||
|
# Définition des constantes
|
||||||
|
define("LDAP_HOST", "ldaps://10.5.0.106/");
|
||||||
|
define("LDAP_PORT", 636);
|
||||||
|
define("LDAP_RDN", "CN=Administrateur,CN=Users,DC=iut,DC=local"); // compte Administrateur nécessaire pour écrire dans AD
|
||||||
|
define("LDAP_PASSWD", "jeer=bepa11");
|
||||||
|
define("BASE_DN", "DC=iut,DC=local"); // on se place à la racine pour accéder indifféremment aux personnels ou aux étudiants
|
||||||
|
|
||||||
|
# Fonction de connexion à l'AD.
|
||||||
|
# Cette fonction renvoie une connexion à l'AD.
|
||||||
|
function connect_AD() {
|
||||||
|
$ldap_con = ldap_connect(LDAP_HOST, LDAP_PORT);
|
||||||
|
ldap_set_option($ldap_con, LDAP_OPT_REFERRALS, 0); // option nécessaire pour une recherche depuis la racine du domaine
|
||||||
|
ldap_set_option($ldap_con, LDAP_OPT_PROTOCOL_VERSION, 3); // option nécessaire pour une recherche sur AD
|
||||||
|
ldap_bind($ldap_con, LDAP_RDN, LDAP_PASSWD); // bind nécessaire pour lire/écrire sur AD. Les options doivent être placées AVANT le bind.
|
||||||
|
return $ldap_con;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fonction de lecture d'une personne dans AD à partir de son username.
|
||||||
|
# Cette fonction renvoie un tableau associatif ou false si la recherche échoue.
|
||||||
|
function get_pers($username) {
|
||||||
|
$email = $username."@iut-rodez.fr";
|
||||||
|
$filtre = "(&(objectClass=user)(mail=".$email."))"; // on limite la recherche aux objets de type user
|
||||||
|
$attr = array("sAMAccountname", "givenName", "sn", "mail", "distinguishedName"); // on ne récupère que quelques attributs
|
||||||
|
$ldap_con = connect_AD(); //connexion à l'AD
|
||||||
|
$result = ldap_search($ldap_con, BASE_DN, $filtre, $attr);
|
||||||
|
if ($result)
|
||||||
|
{
|
||||||
|
$entry = ldap_first_entry($ldap_con, $result);
|
||||||
|
if ($entry)
|
||||||
|
{
|
||||||
|
$login = ldap_get_values($ldap_con, $entry, "samaccountname");
|
||||||
|
$nom = ldap_get_values($ldap_con, $entry, "sn");
|
||||||
|
$prenom = ldap_get_values($ldap_con, $entry, "givenname");
|
||||||
|
$mail = ldap_get_values($ldap_con, $entry, "mail");
|
||||||
|
$dn = ldap_get_values($ldap_con, $entry, "distinguishedName");
|
||||||
|
ldap_close($ldap_con);
|
||||||
|
return array("login"=>$login, "nom"=>$nom[0], "mail"=>strtolower($mail[0]), "prenom"=>$prenom[0], "dn"=>$dn[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ldap_close($ldap_con);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Fonction de mise à jour du mot de passe d'un username.
|
||||||
|
# réf : http://msdn.microsoft.com/en-us/library/cc223248%28PROT.13%29.aspx
|
||||||
|
# Cette fonction renvoie TRUE si le mot de passe est modifié dans l'AD, FALSE sinon.
|
||||||
|
function set_password($username,$password) {
|
||||||
|
$pers = get_pers($username); // recherche de l'entrée correspondant au username
|
||||||
|
if ($pers) {
|
||||||
|
$dn_pers = $pers["dn"]; // DN de l'entrée trouvée
|
||||||
|
$password = "\"".$password."\""; // AD impose que le password soit encadré de deux double-quotes
|
||||||
|
$entry['unicodePwd'] = mb_convert_encoding($password, "UTF-16LE"); // AD impose que le tout soit encodé en UTF-16
|
||||||
|
$ldap_con = connect_AD(); //connexion à l'AD
|
||||||
|
$change = ldap_mod_replace($ldap_con, $dn_pers, $entry);
|
||||||
|
ldap_close($ldap_con);
|
||||||
|
return $change;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
Loading…
x
Reference in New Issue
Block a user