estou atualmente trabalhando em um aplicativo híbrido para minha empresa que exige autenticação de funcionários via LDAP / ActiveDirectory
no PHP não é tão difícil de autorizar contra o LDAP.
Sua configuração PHP deve ter sessão e ldap habilitados.
heres um exemplo de uma autenticação básica com 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);
}
}
Exemplo de uso:
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';
}
}
Atualização 1
Um método possível é usar JavaScript para fazer isso, você pode detectar o nome do computador, nome de usuário, domínio do cliente usando o objeto de rede no WScript, e depois detectá-las e enviá-las ao servidor para verificar com o AD, se tudo estiver funcionando bem, o servidor criará uma sessão para esse usuário e responderá com um Objeto JSON, com sucesso definido como verdadeiro.
o lado do javascript verá que é um sucesso e, em seguida, redirecionará o navegador para outro local, fazendo com que eles façam login.
POC:
var Data = {}
//Show loading layer
$("#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 = "/"; //Will automatically start session.
}else
{
document.location = "/ldap/faild/"; //general login page
}
});
}catch(e)
{
document.location = "/ldap/faild/"; //general login page
}