Apache Passwort an Datenbank übergeben
TomSchmitt
- datenbank
0 misterunknown0 dedlfix0 TomSchmitt0 dedlfix0 Tabellenkalk
Hi,
die User meiner Webseite haben alle einen entsprechenden User in der Datenbank auf die meine Skripte zugreifen. Aber die User haben sehr unterschiedliche Rechte.
Ich möchte daher mit dem User/Passwort mit dem sich der User beim Apache authentifiziert mit meinem Skript verwenden um mich bei der Datenbank einzuloggen.
Die Frage ist nur: Wie bekomme ich den Apache dazu sie mir zu übergeben?
Der Username steht ja in den Umgebungsvariablen, soweit kein Problem. Aber wo bekomme ich das Passwort her um mich als dieser User bei der Datenbank anzumelden?
Oder gibt es eine alternative Möglichkeit, wie die Authentifizierung vom Apache an die Datenbank übertragen kann?
Danke,
Tom.
Moin,
Oder gibt es eine alternative Möglichkeit, wie die Authentifizierung vom Apache an die Datenbank übertragen kann?
Brauchst du denn das Passwort unbedingt? Der Benutzername ist ja eindeutig, und wenn der Benutzer angemeldet ist, weißt du ja, dass er das Passwort weiß.
Ansonsten könnte man auch per serverseitiger Sprache die .htpasswd auswerten.
Grüße Marco
Tach!
Oder gibt es eine alternative Möglichkeit, wie die Authentifizierung vom Apache an die Datenbank übertragen kann?
Abgesehen davon, dass der authentifizierte Benutzername wie gesagt schon reichen sollte, kann man das Passwort nur bekommen, wenn es im Klartext in der Quelle steht, gegen die sich der Apache-Mechanismus anzumelden versucht.
Im PHP-Script bekommt man ansonsten das Anmeldepasswort nur, wenn man die HTTP-Authentication in Eigenregie vornimmt.
Ansonsten könnte man auch per serverseitiger Sprache die .htpasswd auswerten.
Da stehen aber nur gehashte Werte drin (sollten jedenfalls).
dedlfix.
Oder gibt es eine alternative Möglichkeit, wie die Authentifizierung vom Apache an die > > > Datenbank übertragen kann?
Abgesehen davon, dass der authentifizierte Benutzername wie gesagt schon reichen sollte,
Nein, der hilft allein leider nicht. Die Datenbank auf die ich mit dem User zugreifen muß liegt auf einem fremden Server und meine Zusicherung, dass der User bestimmt das richtige Passwort genutzt hat, reicht nicht, ich muß mich dort schon mit dem richtigen User/Passwort authentifizieren.
kann man das Passwort nur bekommen, wenn es im Klartext in der Quelle steht, gegen die
sich der Apache-Mechanismus anzumelden versucht.
Die Quelle ist die Eingabe des Users, wenn er vom Apache nach User/Passwort gefragt wird.
Im PHP-Script bekommt man ansonsten das Anmeldepasswort nur, wenn man die
HTTP-Authentication in
Eigenregie vornimmt.
Okay, da werde ich dann mal nach einem Perl-Äquivalent für schauen. Eine Möglichkeit dem Apache das ihm übergebene Passwort zu entlocken gibt es also nicht?
Ansonsten könnte man auch per serverseitiger Sprache die .htpasswd auswerten.
Da stehen aber nur gehashte Werte drin (sollten jedenfalls).
Das zum einen. Und zum anderen gibts bei mir keine .htpasswd, der Apache authentifiert gegen das ActiveDirectory.
Tach!
kann man das Passwort nur bekommen, wenn es im Klartext in der Quelle steht, gegen die sich der Apache-Mechanismus anzumelden versucht.
Die Quelle ist die Eingabe des Users, wenn er vom Apache nach User/Passwort gefragt wird.
Ja, aber der Apache gibt meines Wissens das Passwort nicht weiter, wenn er selbst damit beauftragt ist, es gegen irgendetwas zu prüfen. Dann bliebe nur, diese Datenhaltung zu befragen. Wobei dann das Passwort im Klartext enthalten sein müsste, was es jedoch eigentlich zu vermeiden gilt.
Im PHP-Script bekommt man ansonsten das Anmeldepasswort nur, wenn man die HTTP-Authentication in Eigenregie vornimmt.
Okay, da werde ich dann mal nach einem Perl-Äquivalent für schauen. Eine Möglichkeit dem Apache das ihm übergebene Passwort zu entlocken gibt es also nicht?
Du kannst gern schauen, was der Apache dir über $_SERVER (oder das entsprechende Pendant in anderen Sprachen) zur Verfügung stellt. Mir ist keine Möglichkeit bekannt, dass er das (selbst geprüfte) Passwort durchreicht.
der Apache authentifiert gegen das ActiveDirectory.
NTLM fällt mir da ein. Inwieweit das in deinem Fall als Single-Sign-On nutzbar ist, weiß ich nicht. Dafür wäre am besten ein IIS als Webserver geeignet.
dedlfix.
Hallo,
Abgesehen davon, dass der authentifizierte Benutzername wie gesagt schon reichen sollte,
Nein, der hilft allein leider nicht. Die Datenbank auf die ich mit dem User zugreifen muß liegt auf einem fremden Server und meine Zusicherung, dass der User bestimmt das richtige Passwort genutzt hat, reicht nicht, ich muß mich dort schon mit dem richtigen User/Passwort authentifizieren.
Sollte da dann aber nicht eigentlich eine andere User/PW-Kombination existieren? Oder bin ich zu paranoid?
Gruß
Kalk