Matthias Schuchardt: Windows2000 Benutzerabfrage mit PHP4

Hy,
Ich habe folgendes Problem:
Ich möchte gerne den Benutzernamen, mit dem sich ein User unter Windows 2000 bzw. NT40WKS angemeldet hat, auslesen bzw verwenden, um hiermit eine Art Berechtigung für eine Datenbank unter MySQL zu er-stellen/erhalten.
Ein zusätzlicher Login für eine Berechtigung soll wenn möglich nicht erfolgen.
Nun die eigentliche Frage: wie geht das??????. Ich konnte bisher keine Doku zu diesem Thema finden.

Vielen Dank

Matthes

  1. Hy,
    Ich habe folgendes Problem:
    Ich möchte gerne den Benutzernamen, mit dem sich ein User unter Windows 2000 bzw. NT40WKS angemeldet hat, auslesen bzw verwenden, um hiermit eine Art Berechtigung für eine Datenbank unter MySQL zu er-stellen/erhalten.
    Ein zusätzlicher Login für eine Berechtigung soll wenn möglich nicht erfolgen.
    Nun die eigentliche Frage: wie geht das??????. Ich konnte bisher keine Doku zu diesem Thema finden.

    ... an sich würd ich das eher für einen Fall für C/C++ als für php halten.

    denn die User logen sich ja nicht auf dem (Web)SERVER (IIS, vermute ich mal..), sondern auf dem SYSTEM ein.

    du kannst es aber mal mit den Umgebungsvariablen versuchen - les die doch testweise mal aus (alle - per PHP) und schau nach, ob da irgendwo der Username + pw da is... Novell macht das zumindest so..

    ansonsten mußt du dich wohl eher in "richtige" Programmierergefilde begeben - EBEN C/C++, da das thema ja eher API-/Windows-interne Themen anspricht - Windoof is damit geproggt.

    cu, w0lf.

  2. Hy,
    Ich habe folgendes Problem:
    Ich möchte gerne den Benutzernamen, mit dem sich ein User unter Windows 2000 bzw. NT40WKS angemeldet hat, auslesen bzw verwenden, um hiermit eine Art Berechtigung für eine Datenbank unter MySQL zu er-stellen/erhalten.
    Ein zusätzlicher Login für eine Berechtigung soll wenn möglich nicht erfolgen.
    Nun die eigentliche Frage: wie geht das??????. Ich konnte bisher keine Doku zu diesem Thema finden.

    Das kann daran liegen, daß der Browser des Users einfach keine Auskunft über den angemeldeten Usernamen gibt, und dein Vorhaben deshalb einfach nicht funktioniert.

    Die Übermittlung des Usernamens war früher mal bei Unix-Browsern üblich, aber da man sich damit ziemlich gravierende Privacy- (und wohl auch Security-) Probleme einfängt, hat man es irgendwann wieder aufgegeben. Mit anderen Worten: Der angemeldete User ist geheim, was das Surfen angeht.

    Ohne ein explizites Login auf dem Webserver geht es nicht! Und sollte es auch nicht gehen.

    Abgesehen davon: Es würde ohnehin nur der Username übermittelt, das Paßwort aber garantiert nicht. Du kannst also garnicht prüfen, ob der Username gefälscht ist oder nicht, denn dann würde der Browser diese Information (Username und Paßwort) ja auch an alle Webserver im Internet senden. Auch wenn sich die meisten dafür nicht interessieren, wäre das Login-Paßwort des Administrators doch nicht uninteressant. :)

    - Sven Rautenberg

  3. Moin

    Ich möchte gerne den Benutzernamen, mit dem sich ein User unter Windows 2000 bzw. NT40WKS angemeldet hat, auslesen bzw verwenden, um hiermit eine Art Berechtigung für eine Datenbank unter MySQL zu er-stellen/erhalten.

    Also da die PHP-Skripte hoffentlich auf einem richtigen OS laufen, kannst du den grade eingeloggten Benutzer mit
    nmblookup -A ip.addresse.des.surfers
    abfragen. Der Benutzername liegt dann da irgendwo in der Ausgabe dieses Kommandos rum. Führ es einfach mal aus und schau nach.
    Das klappt natürlich nur wenn keine Firewall auf dem Weg zu dem anderen Rechner liegt und lässt sich höchstwahrscheinlich recht einfach fälschen.
    Ich hab da auch noch was im Hinterkopft, dass mancher IE einfach den Namen des Benutzers im HTTP-Header mitsendet, das wäre einfacher abzufragen (http://www.php.net/manual/en/function.getallheaders.php), wenn auch noch einfacher zu fälschen.

    Fazit: Nimm ein richtiges Login und lass es evt. vom Browser auf dem jeweiligen Rechner speichern, ggbf. auch ein Cookie das nach dem Schliessen des Browser da bleibt.

    --
    Henryk Plötz
    Grüße von der Ostsee

    1. Hi!

      Also ich würde das auch mit einem Cookie machen, einmal am Anfang muß man das dann halt eingeben, ab da wird das ja von jedem Benutzer in seinem eigenen User-Verzeichnis unter Eigenen Dateien  gespeichert, also hast Du immer den User, nicht nur den PC.
      Du kannst dann per http auth prüfen, ob der Cookie gesetzt ist, die Daten mit einer Tabelle in MySQL vergleichen und dem entsprend die Rechte vergeben...
      Ist eigentlich ganz einfach.

      Grüsse

      Andreas

  4. Hy,
    Ich habe folgendes Problem:
    Ich möchte gerne den Benutzernamen, mit dem sich ein User unter Windows 2000 bzw. NT40WKS angemeldet hat, auslesen bzw verwenden, um hiermit eine Art Berechtigung für eine Datenbank unter MySQL zu er-stellen/erhalten.
    Ein zusätzlicher Login für eine Berechtigung soll wenn möglich nicht erfolgen.
    Nun die eigentliche Frage: wie geht das??????. Ich konnte bisher keine Doku zu diesem Thema finden.

    Vielen Dank

    Matthes

    Nochmal Hy!

    Danke erstaml für die schnellen Antworten !!!!,hier nochmal einen Zusatz:

    Eine Passwortabfrage soll eigentlich nicht erfolgen. Sinn und Zweck soll sein, daß ein Benutzer, der sich auf dem Rechner (W2K) angemeldet hat, auf eine Datenbank (Intranet) zugreifen kann. Anhand des Benutzernamens soll dann die Berechtigung vergeben werden (wie Netztwerkfreigaben, halt nur speziell in der Datenbank), je nach dem, in welchem Bereich er arbeitet. Ein zugriff von außen ist in diesem speziellen Bereich des Intranet nicht möglich. Eingesetzt wird für diesen Bereich W2K-Server mit Apache, MySQL und PHP4.

    1. Nochmal Hy!

      Danke erstaml für die schnellen Antworten !!!!,hier nochmal einen Zusatz:

      Eine Passwortabfrage soll eigentlich nicht erfolgen. Sinn und Zweck soll sein, daß ein Benutzer, der sich auf dem Rechner (W2K) angemeldet hat, auf eine Datenbank (Intranet) zugreifen kann. Anhand des Benutzernamens soll dann die Berechtigung vergeben werden (wie Netztwerkfreigaben, halt nur speziell in der Datenbank), je nach dem, in welchem Bereich er arbeitet. Ein zugriff von außen ist in diesem speziellen Bereich des Intranet nicht möglich. Eingesetzt wird für diesen Bereich W2K-Server mit Apache, MySQL und PHP4.

      also ne typische WAMP-konfiguration - wobei MSSQL mit PHP4 ja fast besser wäre ;) (läuft ja laut iX am besten zusammen)

      oki... also - dann is wohl umgebungsvariablen angesagt - wie schon vorgeschlagen - oder http_auth.

      zu letzterem würd ich mir mal das php-handbuch durchlesen, da stehn ein paar beispiele dazu drin...

      zu ersterem würd' ich wie gesagt erstma rausfinden, ob der win2k das auch macht - ausgabe des usernames als environment-variable.

      ansonsten würd ich irgendwelche batchfähigen (womöglich sogar systeminterne) tools verwenden, die dir den usernamen ausgeben können - und selbige dann halt per PHP-script aufrufen, weitergabe direkt in ne datei oder an PHP-Skript, und scho - haste ihn ;)

      der rest wurde schon mehrfach in den vorhergehenden postings gesagt :)

      cu, w0lf.

      1. Nochmal Hy!

        Danke erstaml für die schnellen Antworten !!!!,hier nochmal einen Zusatz:

        Eine Passwortabfrage soll eigentlich nicht erfolgen. Sinn und Zweck soll sein, daß ein Benutzer, der sich auf dem Rechner (W2K) angemeldet hat, auf eine Datenbank (Intranet) zugreifen kann. Anhand des Benutzernamens soll dann die Berechtigung vergeben werden (wie Netztwerkfreigaben, halt nur speziell in der Datenbank), je nach dem, in welchem Bereich er arbeitet. Ein zugriff von außen ist in diesem speziellen Bereich des Intranet nicht möglich. Eingesetzt wird für diesen Bereich W2K-Server mit Apache, MySQL und PHP4.

        also ne typische WAMP-konfiguration - wobei MSSQL mit PHP4 ja fast besser wäre ;) (läuft ja laut iX am besten zusammen)

        oki... also - dann is wohl umgebungsvariablen angesagt - wie schon vorgeschlagen - oder http_auth.

        zu letzterem würd ich mir mal das php-handbuch durchlesen, da stehn ein paar beispiele dazu drin...

        zu ersterem würd' ich wie gesagt erstma rausfinden, ob der win2k das auch macht - ausgabe des usernames als environment-variable.

        ansonsten würd ich irgendwelche batchfähigen (womöglich sogar systeminterne) tools verwenden, die dir den usernamen ausgeben können - und selbige dann halt per PHP-script aufrufen, weitergabe direkt in ne datei oder an PHP-Skript, und scho - haste ihn ;)

        der rest wurde schon mehrfach in den vorhergehenden postings gesagt :)

        cu, w0lf.

        Danke !!!
        Ich denke, das hilft mir. Ich werde einfach mal in diese Richtung rumprobieren. Schönen Abend Noch, Matthes