Vor längerer Zeit habe ich hier schonmal geschrieben, dass ich an einer PHP Applikation im Geschäft Arbeite. Lieder bin ich da in der letzten Zeit kaum dazugekommen, aber jetzt sieht es doch wieder etwas besser aus.
Diese Applikation hat auch einen geschützten Bereich, wo man sich anmelden muss. Nun wäre es möglich die Benutzerdaten in einer Datenbank zu speichern. Das hätte aber den Nachteil, dass die Benutzer an mehreren Orten verwalten müsste. Nämlich in der mySQL Datenbank und in der Active Directory von unserem Windows 2003 PDC. In der AD müssen die Benutzer ja zwangsläufig gespeichert werden, warum also nicht diese Benutzer zur Authentifizierung in der PHP Applikation verwenden.
Mit LDAP funktioniert das recht einfach, denn wenn man sich mit einem Benutzer über LDAP am PDC anmelden kann, hat man einen gültigen Account. So sieht es in der Theorie aus.
Die Praxis ist da recht ähnlich. Zuerst muss man die LDAP Befehle installieren. Unter Ubuntu funktioniert das so:
Ich habe dann ein kleines Script gebastelt, welches eine Verbindung zum Server herstellt und sich dann versucht einzuloggen. Das sieht so aus:
Wichtig ist, dass man den Benutzernamen im Format domain\username angibt.
Diese Applikation hat auch einen geschützten Bereich, wo man sich anmelden muss. Nun wäre es möglich die Benutzerdaten in einer Datenbank zu speichern. Das hätte aber den Nachteil, dass die Benutzer an mehreren Orten verwalten müsste. Nämlich in der mySQL Datenbank und in der Active Directory von unserem Windows 2003 PDC. In der AD müssen die Benutzer ja zwangsläufig gespeichert werden, warum also nicht diese Benutzer zur Authentifizierung in der PHP Applikation verwenden.
Mit LDAP funktioniert das recht einfach, denn wenn man sich mit einem Benutzer über LDAP am PDC anmelden kann, hat man einen gültigen Account. So sieht es in der Theorie aus.
Die Praxis ist da recht ähnlich. Zuerst muss man die LDAP Befehle installieren. Unter Ubuntu funktioniert das so:
sudo apt-get install php5-ldap
Ich habe dann ein kleines Script gebastelt, welches eine Verbindung zum Server herstellt und sich dann versucht einzuloggen. Das sieht so aus:
<?
$conn=ldap_connect("server")or die("could not connect to the server");
if(@ldap_bind($conn,"domain\username","password"))
{
echo "login ok";
}
else
{
echo "login falsch";
}
ldap_close($conn);
?>
Wichtig ist, dass man den Benutzernamen im Format domain\username angibt.
Vor längerem habe ich es bereits