Zum Inhalt springen

Apache Authentifizierung per php


Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :rolleyes:

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...