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

dj3nk

Benutzer
Beiträge
7
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
 
Werbung:
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!
 
Werbung:
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.
 
Zurück
Oben