Ich versuche gerade, einen User zu erstellen, mit dem man eine PHP-Seite gegen UCS authentifizieren kann
Hier eine kleine Anleitung
PHP-Binding gegen UCS
User erstellen
Zunächst braucht man einen User, der sehr wenige Rechte hat. Dieser wird über „Domäne - LDAP-Verzeichnis - Users - Hinzufügen“ erstellt. Der Kontotyp soll „Einfaches Authentisierungskonto“ sein. Dieser User kann nur in der Domäne suchen. Ein Nutzername und ein Passwort festlegen (Passwort-History ignorieren kann man aktivieren, Passwort-Prüfungen ignorieren kann man auch aktivieren, da man ja sowieso starke Passwörter benutzt) und schon ist er fertig.
Diese kann ruhig lang und durch einen Generator erzeugt worden sein. Man braucht es nur zur Authentifizierung und muss es nur einmal eingeben.
Logindaten herausfinden
LDAP-usernamen sind etwas kryptisch, sowie case sensitve. Deshalb sollte man sich die distingishedNames auflisten lassen und kopieren. Auf der UCS sollte man mit diesem Kommando den dn angezeigt bekommen
univentions-ldapsearch uid=<Kontenname> dn
User testen
Jetzt muss der Benutzername auch noch von außen zugänglich sein
ldapsearch -x -h <ad-server> -p 7389
Es sollte eine positive Rückmeldung kommen. Dies zeigt, dass hier ein LDAP-Server arbeitet.
Jetzt kann man den User testen:
ldapsearch -x -h <ad-server> -p 7389 -D <uid=test,dc=domain> -W
Hier muss exakt der dn von der ucs genommen werden (case sensitive).
Sollte eine positivie Rückmeldung kommen, passt alles. Sollte diese Rückmeldung negativ sein (invalid credentials) gibt es folgende Möglichkeiten
- Passwort ist falsch
- dn ist falsch geschrieben
- irgendetwas blockiert die verbindung (Firewall?)
- ist der Port für das LDAP richtig ( UCS LDAP )
Jetzt
username in der php-Applikation testen
Sollte hier die Meldung invalid credentials kommen, kann es an selinux liegen.
getsebool httpd_can_connect_ldap httpd_can_connect_ldap --> off
Hier ist es per selinux-Boolean verboten, dass der httpd-Server auf ldap zugreifen kann. Dies löst man über
setsebool httpd_can_connect_ldap on
Diskussion