file_get_contents Proxy Authentication

Fluffy_Unicorn

Met-Brauer
Registriert
8 Aug. 2013
Beiträge
605
Ort
47.07°N / 7.85°O
Hallo Leute,

Ich habe eine Webseite, die über einen Proxy mit der Funktion file_get_contents auf eine Seite im Internet zugreift. Nun musste ich die Seite auf einen anderen Server verschieben, bei dem ich den IIS genau gleich konfiguriert habe, der den gleichen Proxy für ins Internet benutzt, und der auch in der selben Domäne ist.

Wenn ich aber nun das Script aufrufen will, erhalte ich folgende Fehlermeldung:

PHP Warning: file_get_contents( failed to open stream: HTTP request failed! HTTP/1.1 407 Proxy Authentication Required ( Forefront TMG requires authorization to fulfill the request. Access to the Web Pr in C:\inetpub\wwwroot\getProductionData.php on line 23

Hier der dazugehörige Code:
[src=php]
$stream = stream_context_create(Array("http" => Array("method" => "GET",
"timeout" => 20,
"header" => "User-agent: Myagent",
"proxy" => "swamz0031:8080",
'request_fulluri' => True)));
header('Content-Type: text/plain');
echo file_get_contents('http://ammansol.dyndns.org:35000/enginepopup.php', false, $stream);
[/src]

Eigentlich ist ja die Fehlermeldung vielsagend, aber auch mit eine Authentifizierung in der Funktion kommt immer der selbe Fehler.
Nun kann ich mir einfach nicht erklären, wieso dass es auf dem alten Server ging und nun nicht mehr.

Direkt auf dem Server (auch auf dem alten) kann ich mit dem selben Proxy (ohne Benutzernamen) ohne Probleme auf die Seite und auf das restliche Internet zugreifen, aber über das Script geht es auf dem neuen Server nicht. Aus meiner sicht sollte also alles auf den Servern identisch sein - ist es aber nicht, sonst würde es ja funktionieren ;).

Hoffe ihr versteht, was mein Problem ist und könnt mir dabei helfen.

Gruss
 
Bei der authentifizierung wird im Standard der Benutzer verwendet mit welchem der Dienst ausgeführt wird. Das ist beim IIS ein IUsr*** . Evtl. hat dieser benutzer am alten Server eine Ausnahme am Proxy das er aufs Internet zugreifen kann - und der Benutzer des neuen Servers hat keine Berechtigung dafür.
 
  • Thread Starter Thread Starter
  • #3
Werde ich bei Gelegenheit testen. Danke schonmal.

Das komische an der ganzen Sache ist aber: Ich habs schon mit diversen Usern probiert (direkt im Script eingebunden), und es kam immer dieselbe Meldung. Dabei bin ich mir sicher, dass die Benutzernamen und Passwörter richtig waren und diese auch Rechte auf dem Proxy haben...
 
"A typical error that you will encounter is error 407 Proxy Authentication Required this means that the authentication has been denied because the user has no valid user account in the domain or that the password has been entered incorrectly." Microsoft ISA Troubleshooting guide. You should probably check if the user has the correct resource permissions then.

Pass deinen Code mal an und poste das Ergebnis..

By the way: NGB ist auf Platz 3, wenn man nach diesem Fehler sucht. :)
 
  • Thread Starter Thread Starter
  • #5
So, entschuldige für meine Verspätung hier.

Also, es war so, dass ein vollständiger Server-Neustart Abhilfe geschaffen hat, nur der Neustart vom IIS war nicht genug. Da es aber ein Produktiver war, musste ich dies natürlich erst am Abend machen.

Geändert habe ich eigentlich nichts mehr, im Proxy war auch alles korrekt.

Naja, nun gehts, danke an euch trotzdem.
 
na ist doch super :)
wurde der Account für den Proxy evtl. erst später Berechtigt - also im laufe deiner Entwicklung?
Wenn du dich mit einem Konto des AD an einem PC anmeldest bekommt dieser ein Berechtigungs-Token mit bestimmten Berechtigungen - solange man sich dann nicht neu Anmeldet bleiben die Berechtigungen (Selbst wenn man sie im AD ändert) auch erst einmal so bestehen... (außer ein paar kleinen außnahmen) - dann ist ein abmelden und anmelden mit diesem Benutzer nötig. Was natürlich bei einem Neustart passiert.
 
Zurück
Oben