SingleSignOn NT Domain mit PHP/MySQL
Frank
- programmiertechnik
Hi zusammen,
ich habe in unserer DMZ eine PHP/MySQL Anwendung laufen, die über eine eigene Login Routine verfügt. Die Usernamen sind identisch mit denen aus unserem internen NT Netzwerk.
Nun würde ich mir gerne die Authenifizierung sparen, wenn ich die Anwendung aus dem internen Netzwerk heraus nutzen will, schliesslich habe ich mich schon bei der Netzwerkanmeldung ausgewiesen.
Je länger ich aber darüber nachdenke, desto weniger fällt mir eine Lösung ein. Das Netzwerk ist über NAT an die DMZ gebunden, diese IP Adresse hat die Anwendung schonmal (und das fälschungssicher, dafür sorgt die Firewall zum Internet). Damit kann ich eine interne von einer externen Anfrage unterscheiden und bei der internen Anfrage brauche ich "nur" noch den Usernamen und kann mir dann sogar die Passwortabfrage sparen.
Wie die Anwendung aber einigermassen fälschungssicher an den Usernamen kommen soll (bei Mitarbeitern unserer Firma weigere ich mich schon, mit *erheblicher* krimineller Energie zu rechnen (es sei denn, es ginge um das leidige Gehaltsthema)), ist mir schleierhaft.
Habt Ihr nicht eine Idee? So abwegig ist das ganze Szenario doch nicht, gibt es dafür nicht schon Konzepte? Von mir aus auch gerne über einen völlig anderen Weg, mir fällt so überhaupt nichts vernünftiges ein...
Tausend Dank
Frank
Hallo Frank,
Habt Ihr nicht eine Idee?
Ja. Dazu müssen folgende drei Bedingungen erfüllt sein:
a) Der Server muss unter Windows und IIS laufen. (urgs, ich hätte nie gedacht, dass ich jemanden den IIS mal vorschlage)
b) Der Client muss unter Windows laufen und es muss ein IE oder *sehr* neuer Mozilla (AFAIK ab 1.3 oder 1.4) sein.
c) Der Webserver und der Client müssen in der gleichen NT-Domäne sein. (bzw. über Trust Relationships sich vertrauen)
Es gibt, falls alles drei erfüllt ist, etwas, das "NTLM Authentication" heißt. Der Webbrowser authentifiziert sich automatisch und völlig transparent am Proxy. (wie das im einzelnen abläuft, weiß ich nicht genau) Der IIS stellt dann für CGI-Anwendungen eine spezielle Variable zur Verfügung (ich glaube, die heißt LOGON_USER, bin mir aber nicht mehr sicher) in der dann der _authentifzierte_ Benuntzername steht.
Viele Grüße,
Christian