Acceder a contenido remoto en IIS 7 con PHP

En realidad lo de PHP es por mi caso particular pero este post se aplica a cualquier script que vayamos a realizar pues trata realmente sobre los permisos de IIS para acceder a contenido en otros servidores distintos del local.

Podrían ser en unidades de red pero en mi caso concreto lo hago accediendo a una carpeta compartida en un servidor externo.

El origen del problema que impide a IIS acceder a unidades de red radica en los permisos de los usuarios por defecto que ejecutan los servicios o scripts PHP en mi caso. Existe una funcionalidad activada por defecto llamada acceso anónimo y esta se conecta por defecto con el usuario IUSR el cual no tiene permisos de red.

Para acceder a esta funcionalidad abrimos el panel de control del IIS y accedemos en el nombre de nuestro servidor a la funcionalidad autentificación:

Untitled-1

La abrimos y seleccionamos la opción de acceso anónimo y en el panel derecho le damos a edit:

Untitled-2

Nos saldrá una nueva ventana

Untitled-5

Al pulsar en set elegimos en la nueva ventana un usuario con permisos de red

Untitled-3

Reiniciamos nuestro servidor IIS

Untitled-4

De esta forma tendríamos configurado nuestro servidor IIS 7 para acceder a unidades de red o carpetas compartidas en servidores remotos.

Nota: los permisos de escritura y lectura de las carpetas compartidas es otro tema, este post solamente configura IIS 7 para poder acceder a ellos, que luego tenga permisos es otra cosa.

Comentarios

Anónimo ha dicho que…
Hola!

Muy bueno el tip pero si el servidor web está en una DMZ esto no funciona... lo cual es mi caso :-(

Gracias por el post!
Reynier ha dicho que…
Gracias por la anotación no lo sabía.
netocio.es ha dicho que…
por defecto Windows no permite que un usuario validado en una maquina utilice esta para validarse en otra, el DMZ la solución es utilizar una cuenta de confianza utilizando kerberos (tendrá que hacerlo el administrador del dominio)