Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

wie den lokalen User an PHP-Server übermitteln ? (Authentifizierung)

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von dj3nk, 16 September 2012.

  1. dj3nk

    dj3nk Benutzer

    Hallo, da bin ich wieder. :)

    Diesmal gibts eine etwas frickelige Frage ^^. Folgendes:

    Es läuft auf einem Server eine MS SQL Datenbank und PHP.
    MSSQL läuft nicht über eigene Datenbankbenutzer, sondern ausschliesslich per Windows-Authentifizierung.

    Alle 'lokalen' Benutzer welche sich in der Domöne anmelden können sind natürlich durch einen Verzeichnisdienst auf dem Server verwaltet.

    Preisfrage:
    Wie übertrage ich den LOKAL angemeldeten Benutzer an den Server? Besser ausgedrückt .... nicht wie übertrage ich (dazu braucht man ja Parameter), sondern woher weiss der Server welcher User gerade irgendwo aus der weiten Welt eine Anfrage macht? Im Connectionstring Angaben zum Benutzer zu machen schlägt fehl, da diese ja nicht als Datenbankbenutzer eingetragen sind. Es muss doch möglich sein, sich mittels dem lokal angemeldeten Benutzer über PHP an die Datanbank zu kommen.
    Zum Zugriff auf Online Inhalte in Abhängigkeit zum lokal angemeldeten Benutzer wurde beim Apache Webserver ein SSPI-Modul nachinstalliert.
    Braucht man da vielleicht noch irgendwelche extensions für php?

    Grüße
    Andreas
     
  2. PLSQL_SQL

    PLSQL_SQL Datenbank-Guru

    Hy,

    das wird nicht so einfach....

    Du kannst zwar mittels Login-Form Username und Passwort gegen dein Active Directory abgleichen und somit deine Logins handeln, aber wenn die Windowsauthetifizierung bereits beim Seitenaufbau erfolgen soll, ist die etwas schwieriger...

    Grund: Nur der IE schickt lokale User - Authetifizierungsdetails mit.


    Schau mal hier: http://www.hotscripts.com/forums/php/46392-php-windows-authentication.html


    Leider bin ich KEIN PHP Programmierer und zweites habe ich mich leider auch noch nicht mit dem Thema näher befasst.
    Aber wenn du was rausgefunden hast, würde ich mich freuen, wenn du die Lösung via Beispielscripts hier postest!

    Danke, Lg und viel Erfolg!
     
  3. dj3nk

    dj3nk Benutzer

    Wenn das SSPI Modul im Apache konfiguriert wurde und das PHP-Skript in einem Ordner mit Benutzerauthentifizierung liegt kann man mit diesem Testskript den Benutzer "simulieren".

    PHP:
    <html>
    <head></head>
    <body>
    <?php
    // SERVER
    $server "devserver\\ENTWICKLUNG";
    $options = array(
    /*  "UID" => "sa",
      "PWD" => "passwort",*/
      
    "Database" => "TestDatenbank"
    );
    $conn sqlsrv_connect($server$options);
    if (
    $conn === false) die("<pre>".print_r(sqlsrv_errors(), true));
    echo 
    "Ja sind wa da schon drin oder was ?! :) ";
     
    // SQL REQUEST Datenbankzugriff
    $sql "SETUSER '".$_SERVER['REMOTE_USER']."';";
     
    // SQL REQUEST Benutzerinformation
    $sql .= "SELECT CURRENT_USER AS AktuellerBenutzer;";
     
    // SQL REQUESt Benutzer zuruecksetzen
    $sql .= "SETUSER;";
     
    $query sqlsrv_query($conn$sql);
    if (
    $query === false)
      exit(
    "<pre>".print_r(sqlsrv_errors(), true));
     
    while (
    $row sqlsrv_fetch_array($query))
      echo 
    "<p>User logged in => ".$row['AktuellerBenutzer']."</p>";
     
    sqlsrv_free_stmt($query);
    sqlsrv_close($conn);
    ?>
     
     
    </body>
    </html>
    Dazu muss aufm Server Apache bzw. PHP mit einem Systembenutzer laufen, welcher Vollzugriff auf dem SQLServer hat.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden