Moin!
In einer Firma melden sich Nutzer im Firmennetz mit ihren Windows-Zugangsdaten an.
Außerdem gibt es meine PHP-Webanwendung im Intranet, in die sich die Nutzer sessionbasiert einloggen.
Da ist die Diskrepanz, die zu eliminieren wäre.
Zwei Ansätze fallen mir ein, nur kurz skizziert:
1. Deine Anwendung authentifiziert gegen die falsche Userdatenbank. Anstelle des Abgleichs der Userdaten mit der MySQL-Tabelle sollte dein Skript lieber gegen die Windows-Domäne (ActiveDirectory, eine Abart von LDAP) authentifizieren.
2. Deine Anwendung könnte auch direkt die sessionbasierte Anmeldung sein lassen, und stattdessen HTTP-Authentifikation der Geschmacksrichtung NTLM benutzen - und diese Anmeldedaten dann wieder gegen die Domäne abgleichen.
Der Rest ergibt sich dann mehr oder weniger von selbst. Für deine Anwendung würde Szenario 1 bedeuten, dass deine Spalte Passwort in der Tabelle künftig nutzlos leer bleibt, und dass ggf. Extracode einzufügen ist, um einen neu in der Domäne aufgetauchten Benutzer, der sich erstmalig anmeldet, auch in diese Tabelle einzutragen (nur Username). Das aber auch nur, sofern in deiner Anwendung mehr mit einem Account zusammenhängt, als nur der Benutzername. Wenns nur darum geht, allgemein den Zugang zu allem entweder zu erlauben oder zu verweigern, dann wird's natürlich einfacher.
- Sven Rautenberg
"Love your nation - respect the others."