HansM: Zugriff auf externen Server in Windows Netzwerk via php

Hallo,

Ausgangslage: Windows Netzwerk (Intranet) Server1 Webserver (IIS 8) mit meiner PHP Applikation (2012 Server) Server2 Fileserver mit Daten die über PHP Anwendung bereitgestellt werden sollen. (2008 Server)

Der Admin hat einen Nutzer und ein Passwort angelegt, der Zugriff auf die entsprechenden Verzeichnisse des anderen Servers hat.

Wenn ich im IIS ein virtuelles Verzeichnis anlege und über den angelegten User verbinde habe ich auch über den Browser entsprechenden Zugriff auf die Verzeichnisse.

Ich möchte aber auch Serverseitig zugriff via PHP auf das Filesystem von Server2 haben (um z.B. zipfiles zu erstellen etc.). Auf dem Webserver (Server1) selbst ist es kein Problem auf Daten außerhalb des Webverzeichnisses zuzugreifen indem ich dem lokalen IIS_IUSR Zugriff gewähre. Wie bekomme ich das für Server2 hin und wie kann mich hier entsprechend mit PHP über den angelegten Nutzer authentifizieren?

Danke für jeden Tipp Hans

  1. Tach!

    Wie bekomme ich das für Server2 hin und wie kann mich hier entsprechend mit PHP über den angelegten Nutzer authentifizieren?

    Der Applicationpool läuft unter einem einstellbaren Nutzer. Das sollte dann wohl der angelegte sein, wenn der Pool und das PHP darin mit dessen Rechten laufen soll.

    dedlfix.

    1. danke für den hint. Der IIS hat nur einen Anwendungspool (DefaultAppPool) Unter den erweiterten Einstellungen im IIS Manager kann ich die Identität einstellen. Diese läuft über das integriete Konto "ApplicationPoolldentity". Damit ist ja wohl der Zugriff für die IIS_IUSR gemeint? Muss ich nun für den anderen User einen weiteren Anwendungspool mit einem Benutzerdefinierten Konto anlegen, weil die anonyme Authentifizierung über IIS_IUSR ist ja wohl weiterhin nötig.

      Hans

      1. Tach!

        Der IIS hat nur einen Anwendungspool (DefaultAppPool)

        Also ich geben meinen Anwendungen jeweils einen eigenen Pool.

        Unter den erweiterten Einstellungen im IIS Manager kann ich die Identität einstellen. Diese läuft über das integriete Konto "ApplicationPoolldentity". Damit ist ja wohl der Zugriff für die IIS_IUSR gemeint?

        Die ApplicationPoolIdentity ist für jeden Pool ein eigener Nutzer. Der eigentliche Name ist IIS AppPool\name_des_app-pools.

        Muss ich nun für den anderen User einen weiteren Anwendungspool mit einem Benutzerdefinierten Konto anlegen, weil die anonyme Authentifizierung über IIS_IUSR ist ja wohl weiterhin nötig.

        Wenn du als ein bestimmer Nutzer agieren möchtest, solltest die Vorgabe ApplicationPoolIdentity so ändern, dass es dieser gewünschte Nutzer ist. Natürlich ist es günstig, einen separaten Pool nur für diese Anwendung anzulegen, weil sonst alle anderen Anwendungen in diesem Pool auch unter diesem Nutzer laufen.

        dedlfix.

        1. sorry, das kapiere ich nicht so ganz (kenn mich mit dem IIS noch nicht so gut aus). Eine Site läuft doch immer nur unter einem Applicationpool, oder? Demnach kann sie dann auch nur unter einer ApplicationPoolIdentity laufen? Wie bekomme ich es denn dann hin für meine Scripte sowohl unter dem nutzer für den externen Server als auch unter dem Standard IIS_IUSR laufen zu lassen?

          Hans

          1. Tach!

            Eine Site läuft doch immer nur unter einem Applicationpool, oder? Demnach kann sie dann auch nur unter einer ApplicationPoolIdentity laufen? Wie bekomme ich es denn dann hin für meine Scripte sowohl unter dem nutzer für den externen Server als auch unter dem Standard IIS_IUSR laufen zu lassen?

            Eine IIS kann mehrere Pools haben. Ein Pool kann mehrere Anwendungen beherbergen. Ein Pool kann aber immer nur unter einem Nutzer laufen. IIS_IUSR brauchst du nicht mehr, wenn du einen eigenen Nutzer hast. Und du musst den zugunsten des eigenen fallenlassen. Wenn der separate Nutzer auf Dinge zugreifen muss, auf die früher der IIS_IUSR zugegriffen hat, so musst du die Berechtigungen entsprechend anpassen.

            dedlfix.

            1. danke, jetzt hab ich kapiert😉