Connexion active directory
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
je veux connecter a l'active directory avec windows 10
pour collecter les informations sur les personnels connectées mais je ne connais pas comment je fais cette connexion
- Connexion active directory
- Gmail connexion - Guide
- Directory opus - Télécharger - Gestion de fichiers
- Directory list & print - Télécharger - Divers Utilitaires
- Hotmail connexion - Guide
- Comment activé - Guide
29 réponses
- 1
- 2
La question porte sur la connexion à un Active Directory avec Windows 10 afin de collecter des informations sur les personnels connectés, via LDAP et des requêtes vers l’annuaire.
Plusieurs réponses suggèrent d’utiliser des scripts ou du code PHP pour établir une liaison LDAP (ldap_connect, ldap_bind) et interroger le domaine (base DN, filtres, résultats sous forme de tableau).
En parallèle, certains préconisent de se former avant d’exécuter des scripts sensibles et de consulter des ressources explicatives sur le fonctionnement LDAP et Active Directory.
En outre, certaines interventions posent la question d’alternatives ou de méthodes sans LDAP, sans parvenir à une recommandation unique valable pour tous les environnements actuels.
<?php
session_start();
include('Connexion/connexion.php');
$_SESSION['ERREUR'] = "";
//verification cookie
if(!empty($_SERVER['REMOTE_USER']))
{
include_once('Connexion/ldap_connexion.php');
session_start();
$ldapConn = ldap_connect($ldapServer ) or $this->msg = "ERROR CONNECT LDAP";
$userName = explode("\\", $_SERVER['REMOTE_USER']);
$query = "sAMAccountName=".$userName[1];
ldap_set_option($ldapConn,LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($ldapConn,LDAP_OPT_REFERRALS,0);
$ldapBind = ldap_bind($ldapConn,$rdn,$mdp);
$ldapResult = ldap_search($ldapConn,$baseDN,$query);
$info = ldap_get_entries($ldapConn,$ldapResult);
$currentUserInformation = array();
for ($i=0; $i < $info ["count"]; $i++)
{
$mail = $info[$i]["mail"][0];
}
ldap_unbind($ldapConn);
// Vérification des identifiants
$req = $bdd->prepare('SELECT id_personne FROM personne WHERE mail = :mail');
$req->execute(array(
'mail' => $mail));
$resultat = $req->fetch(PDO::FETCH_ASSOC);
if ($resultat)
{
setcookie('id_personne', $resultat['id_personne'], time() + 365*24*3600, "/");
$_SESSION['id_personne'] = $resultat['id_personne'];
header('Location: accueil.php'); // redirige vers l'accueil
}
}
else if (!empty($_COOKIE['id_personne'])) {
$id_personne = $_COOKIE['id_personne']; // Remplace les simple quote par des double quote pour éviter les problemes d'injection sql
setcookie('id_personne', $id_personne, time() + 365*24*3600, "/");
$_SESSION['id_personne'] = $id_personne;
header('Location: accueil.php'); // redirige vers l'accueil
}
else if ((!empty($_POST['login']) && !empty($_POST['mdp'])))
{
$login = $_POST['login']; // Remplace les simple quote par des double quote pour éviter les problemes d'injection sql
$mdp = sha1($_POST['mdp']);
// Vérification des identifiants
$req = $bdd->prepare('SELECT id_personne FROM personne WHERE login = :login AND mdp_personne = :mdp');
$req->execute(array(
'login' => $login,
'mdp' => $mdp));
$resultat = $req->fetch(PDO::FETCH_ASSOC);
if (!$resultat)
{
$_SESSION['ERREUR'] = "Login et/ou mot de passe incorrect"; // Message d'erreur
}
else
{
setcookie('id_personne', $resultat['id_personne'], time() + 365*24*3600, "/");
$_SESSION['id_personne'] = $resultat['id_personne'];
header('Location: accueil.php'); // redirige vers l'accueil
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" >
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" >
<link rel="stylesheet" href="css/formulaire.css" >
<link rel="stylesheet" href="css/general.css" >
</head>
<script src="js/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<body>
<body class="couleur3">
<!-- header -->
<?php
if(!empty($_SESSION['ERREUR']))
{
echo ' <div class="alert alert-warning message" style="font-size:20px;">
<a href="#" class="close" data-dismiss="alert">×</a>
'.$_SESSION['ERREUR'].'
</div>';
session_destroy();
}
?>
<form id="form_connexion" class="form-login" method='post' action="#" >
<fieldset class="col-md-3 col-md-offset-4 login">
<form action="#" id="info" method="post">
<div class="form-group">
<label for="login-text" class="form-control-label">login:</label>
<input type="text" class="form-control" name="login" id="login" required>
</div>
<div class="form-group">
<label for="mdp-name" class="form-control-label">mot de passe:</label>
<input type="password" class="form-control" name="mdp" id="mdp" required>
</div>
<button type="submit" id="submit" name="submit" class="btn btn-success col-md-offset-2 button-log">Connexion</button>
</form>
</fieldset>
</body>
</body>
</html>
( ! ) Warning: include(Connexion/connexion.php): failed to open stream: No such file or directory in C:\wamp64\www\connexion.php on line 3
Call Stack
# Time Memory Function Location
1 0.0006 408016 {main}( ) ...\connexion.php:0
( ! ) Warning: include(): Failed opening 'Connexion/connexion.php' for inclusion (include_path='.;C:\php\pear') in C:\wamp64\www\connexion.php on line 3
Call Stack
# Time Memory Function Location
1 0.0006 408016 {main}( ) ...\connexion.php:0
login:
6501
mot de passe:
••••
Connexion
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionVu le message d'erreur
Warning: include(Connexion/connexion.php): failed to open stream: No such file or directory in C:\wamp64\www\connexion.php on line 3
c'est qu'il ne trouve pas le fichier
include('Connexion/connexion.php');
Donc... as tu un dossier nommé Connexion ?
Dedans.. as tu un fichier nommé connexion.php ?
Que contient ce fichier ? ( pense à utiliser les balises de code et à indenter ton code !! )
Voici de quoi comprendre un minimum comment ça marche :
https://www.commentcamarche.net/contents/798-php-connexion-a-un-annuaire-ldap
<?php
$server = "localhost";
$port = "389";
$racine = "o=inet, c=home";
$rootdn = "cn=Stage,o=inet, c=home";
$rootpw = "Stage2020";
echo "Connexion...<br>";
$ds=ldap_connect($server);
if ($ds==1)
{
// on s'authentifie en tant que super-utilisateur, ici, ldap_admin
$r=ldap_bind($ds,$rootdn,$rootpw);
// Ici les opérations à effectuer
echo "Déconnexion...<br>";
ldap_close($ds);
}
else {
echo "Impossible de se connecter au serveur LDAP";
}
?>
( ! ) Warning: ldap_errno() expects exactly 1 parameter, 0 given in C:\wamp64\www\connex.php on line 25
Call Stack
# Time Memory Function Location
1 0.1376 408704 {main}( ) ...\connex.php:0
2 0.1578 408736 ldap_errno ( ) ...\connex.php:25
ldap-error:Success
Impossible de se connecter au serveur LDAP
https://www.php.net/manual/fr/function.ldap-errno.php
https://www.php.net/manual/fr/function.ldap-err2str.php
Et pas conséquent, corriger le code
ldap_err2str( ldap_errno() );
par
echo ldap_err2str( ldap_errno($ds) );
else {
echo"ldap-error:".ldap_err2str(ldap_errno())."<br>\n";
echo "Impossible de se connecter au serveur LDAP";
}
( ! ) Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in C:\wamp64\www\connex.php on line 16
Call Stack
# Time Memory Function Location
1 0.0274 407832 {main}( ) ...\connex.php:0
2 0.0516 408184 ldap_bind ( ) ...\connex.php:16
Déconnexion...
else {
echo"ldap-error:".ldap_errno()."<br>\n";
echo "Impossible de se connecter au serveur LDAP";
}
( ! ) Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in C:\wamp64\www\connex.php on line 16
Call Stack
# Time Memory Function Location
1 0.0003 408000 {main}( ) ...\connex.php:0
2 0.0003 408352 ldap_bind ( ) ...\connex.php:16
Déconnexion...
$ds=ldap_connect($server);
if ($ds==1) {
// on s'authentifie en tant que super-utilisateur, ici, ldap_admin
$ldapbind=ldap_bind($ds,$rootdn,$rootpw) or die (ldap_err2str( ldap_errno($ds) );
// verify binding
if ($ldapbind) {
// Ici les opérations à effectuer
echo "Déconnexion...<br>";
ldap_close($ds);
} else {
echo "Erreur BIND !";
}
} else {
echo "Impossible de se connecter au serveur LDAP";
}
Et au cas où ... voici un exemple propre de code que tu peux utiliser
https://www.php.net/manual/fr/function.ldap-search.php#112191
A noter que les erreurs que tu nous montres jusqu'à maintenant semblent plus liés à des soucis de paramétrages/identifiants qu'à des soucis de code php....
Hors.. nous ne sommes pas admin de ton réseau et ne pourrons pas t'aider à trouver les identifiants à utiliser !
Ldap... ça fonctionne avec un AD
Active Directory est un annuaire au format Microsoft qui a pour objectif de stocker des données qualifiées d’objets.
Quant au LDAP, il s’agit d’un protocole d’accès aux informations. L’outil permet d’échanger des renseignements entre les annuaires compatibles au protocole.
Les informations utilisées dans ton script PHP sont les bonnes ?non parce que la société ne donne pas des informations
As tu demandé aux admin de ton réseau ?non
quelle les infomations que j'ai besoin pour connecter a l' AD
//Get standard users and contacts
$search_filter ='(|(objectCategory=person)(objectCategory=contact))';
//Connect to LDAP
$result = ldap_search($ldap_connection, $ldap_base_dn, $search_filter);
- 1
- 2