Je travaille actuellement sur une application hybride pour mon entreprise qui nécessite une authentification des employés via LDAP / ActiveDirectory
en PHP ce n'est pas si difficile de s'autoriser contre LDAP.
Votre configuration PHP devrait avoir les sessions et LDAP activés.
voici un exemple d'une authentification basique avec PHP
class LDAP_Authentication
{
private $connection;
public function __construct($domain)
{
$this->connection = @ldap_connect($domain);
}
public connected()
{
return $this->connection !== false;
}
public function login($user,$password)
{
return @ldap_bind($this->connection,$user,$password);
}
}
Exemple d'utilisation:
session_start(); //Single Login
$LDAPAuth = new LDAP_Authentication('domain.internal');
if($LDAPAuth->connected())
{
if($LDAPAuth->login('some_user',"some_pass"))
{
$_SESSION['logged_in'] = true;
$_SESSION['credentials'] = array('some_user','some_pass');
echo 'Welcome';
}else
{
echo 'Try again';
}
}
Update 1
Une méthode possible est d'utiliser JavaScript pour réaliser ceci, vous pouvez détecter le nom de l'ordinateur du client, le nom d'utilisateur, le domaine en utilisant l'objet réseau dans WScript, vous détectez ensuite les informations d'identification et les envoyez au serveur pour vérifier avec AD, si tout est bon alors le serveur créera une session pour cet utilisateur et renverra un objet JSON, avec success à true.
le côté JavaScript verra ensuite que c'est un succès et redirigera le navigateur vers un autre emplacement les connectant ainsi.
POC:
var Data = {}
//Afficher la couche de chargement
$("#loader").show();
try
{
var Information = new ActiveXObject("WScript.Network");
Data.Username = Information.UserName;
Data.Computername = Information.ComputerName;
Data.Domain = Information.UserDomain;
$.post("/ldap/ajax/login",Data,fucntion(object){
if(object.success)
{
document.location = "/"; //Démarrera automatiquement la session.
}else
{
document.location = "/ldap/faild/"; //page de connexion générale
}
});
}catch(e)
{
document.location = "/ldap/faild/"; //page de connexion générale
}