geloescht_JesterDay Geschrieben 22. September 2004 Teilen Geschrieben 22. September 2004 Hallo, hat jemand sowas schonmal gemacht, sich also per PHP angemeldet (ohne das der Benutzer den Login-Dialog bekommt)? Es geht mir nur um den Benutzernamen und da es nicht nur für meine anwendung ist, sondern generell funktionieren soll kann ich es nciht über eine Session o.ä. machen. Der Benutzername wird beim aufruf der Seite mitgegeben... Http://Server/auth.php?NAME=MEIER auth.php: <?PHP if ($_REQUEST["NAME"] != "") { $_SERVER["PHP_AUTH_USER"] = $_REQUEST["NAME"]; [...] } else echo "keine Anmeldung möglich"; ?> [/PHP] Später mach ich eine Ldap-Abfrage über diesen Auth_User. Wenn ich das in der auth.php mache geht das auch. Tu ich das allerdings in einer anderen (header(location:...); oder per Link) Seite, ist Auth_User wieder leer. Hab jetzt gelesen, das der Client sich im Falle der Authentifizierung den Namen und das PW merkt und sie gegebenenfalls immer wieder mitsendet. Wie kann ich den User dem Browser mitteilen und erreichen, das der für alle Seiten mitgesendet wird? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 22. September 2004 Teilen Geschrieben 22. September 2004 ich glaub das setzen von Server variablen ist nicht möglich. ich hab auch keine Ahnung wie du das richtig hinbekommen könntest. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
root@localhost Geschrieben 22. September 2004 Teilen Geschrieben 22. September 2004 hola jungs und mädls, @JesterDay probiers mal mid apache_setenv http://www.php.net/manual/de/ref.apache.php hab das selber aber noch nicht ausprobiert... ciao r##t Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 22. September 2004 Autor Teilen Geschrieben 22. September 2004 ich glaub das setzen von Server variablen ist nicht möglich. Ich hab mich jetzt durch ne Menge Dokus zum thema Authentifizierung beim apache gewühlt. Das setzen von Servervariablen ist hier weniger das Problem. Der Client merkt sich den Usernamen und das PW und sendet es (für den jeweiligen Realm) immer wieder mit (also ähnlich wie Cookies). Das das ganze auf einer Seite funktioniert und beim Wechsel nicht mehr ist also logisch. Ich denke auch nicht das es machbar ist, nach allem was ich jetzt gelesen habe. Das ganze wird ja beim Client geregelt und der merkt sich Username/Pw je Realm (AuthName = "MyRealm" ... MyRealm ist hier der Realm (+ die gesamte URI dazu)). Selbst wenn ich per JavaScript das setzen könnte (denke mal nicht das ich darauf Zugriff habe, wäre doch sehr Sicherheitslücken verdächtig) müsste ich ja eine Authetifizierung für das <Directory...> verlangen. Also um die "Anmeldeseite" aufzurufen muss ich mich schon Anmelden, was ich aber ja durch diese Seite automatisieren will Auch SetEnv (so wenig es dokumentiert ist ) hilft in den Fall nicht denke ich. Es sind ja Clientseitige Einstellungen die geändert werden müssen, und das tut der Client nur wenn er eine 401 Meldung als Antwort bekommt. EDIT: Also ich könnte das wohl für meine Anwendung ohne Probleme hinbekommen (über Session, Cookie oder so), aber allgemein nicht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TinTin Geschrieben 22. September 2004 Teilen Geschrieben 22. September 2004 hi, hab mich vor längerer zeit auch mal mit dem thema beschäftigt ... phpclasses.org hat mich damals mit infos versorgt. hab grade nochmal schnell reingeschaut, was von ldap stand da auch ... schau mal rein wenn du noch nicht da warst, eventuell findest du ja was brauchbares... ciao TinTin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 23. September 2004 Teilen Geschrieben 23. September 2004 hm was ist eingentlich wenn du eine "none-cookie-based" session verwendest und bei den links, die auf einen anderen webserver verweisen, die session id und die serialisierten session daten mitgibst? natürlich encryptet. Oder andere möglichkeit, du übergibts bei links die von einem webserver auf den anderen gehen, das der 2. webserver sich per ftp die session daten des 1. webservers zieht, und diese dann verwendet. Das gleiche natürlich auch umgekehrt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 23. September 2004 Autor Teilen Geschrieben 23. September 2004 hab grade nochmal schnell reingeschaut, was von ldap stand da auch ... Die ldap Abfrage ist kein Problem, das funktioniert alles... hm was ist eingentlich wenn du eine "none-cookie-based" session verwendest und bei den links, die auf einen anderen webserver verweisen, die session id und die serialisierten session daten mitgibst? natürlich encryptet. Es ging darum, dem Benutzer eine weitere Anmeldung am Server zu ersparen. Die Leute dort haben teilweise nichts, oder eben fast nichts, mit computern zu tun. Und 2-3 Anmeldungen pro Sitzung sind dann eben sehr nervig und unverständlich. Es ging nur darum, ob es möglich ist, den Benutzer mit dem angemeldeten Novell-Benmutzernamen gleich am Server anzumelden. Also der Nutzer startet den computer, meldet sich an, und wenn er das Intranet startet wird er ohne Anmeldung dort als der Benutzer erkannt, der er ist. Das ganze nicht nur für unsere Anwendung sondern auch beim Portal das genutzt wird oder allem anderen was sonst noch kommen kann. Nach der Anmeldung ist ja PHP_Auth_User gesetzt, deswegen die Idee das von Hand zu tun. Da diese Info aber jedesmal bei einem Seitenaufruf vom Browser mitgesendet wird (wie ein Cookie eben) nützt es nichts, sie von Hand zu setzen. Bei der nächsten Seite wird wieder kein Benutzername gesendet und der Server leert diese Info dann auch für die Seite. $_SERVER["PHP_AUTH_USER"] ist also vergleichbar mit $_COOKIE["Username"] Das kann ich auch auf einer Seite setzen ($_COOKIE["Username"] = "Meier"), auf der nächsten ist es dann wieder überschrieben oder nicht mehr vorhanden. Da die Kombination Realm/Username/Passwort im Browser gespeichert ist, habe ich da keinen Zugriff drauf und geändert werden kann das nur vom Browser selber. Und das auch nur nach einer 401 Fehlermeldung (Authentication Handshake). Aus diesem Grund ist auch ein Ausloggen aus einer einfachen AuthType=Basic (oder anderen) Umgebung nicht möglich bzw. nur, wenn ein 401 Header gesendet wird und der User auf Cancel drückt (also wenn keine Session o.ä. zusätzlich verwendet wird) bzw. der Browser geschlossen wird. Da es für das LogOut Problem keine Lösung gibt, wird es für mein Problem auch keine geben und ich hab das so auch weitergegeben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.