sábado, 3 de febrero de 2018

Acceso a carpetas privadas

Acceso a carpetas privadas

Otra posibilidad muy interesante es que los profesores, e incluso el sitio web de la Intranet de nuestro centro, puedan disponer de carpetas privadas accesibles mediante el navegador pero no por cualquier usuario; por ejemplo los profesores podrían disponer de una carpeta donde almacenar información confidencial accesible desde la web, como por ejemplo las notas. Así mismo puede ocurrir que queramos tener en el servidor web de nuestra Intranet páginas a las que sólo puedan tener acceso de lectura los profesores del centro. Vamos a ver como conseguir todo esto.
Lo primero que hemos de tener en cuenta es que para que podamos autenticar a los usuarios de Active Directory mediante Apache, hemos de instalar un módulo especial en nuestro servidor web para que Apache pueda validar el acceso a las carpetas deseadas a través de la base de usuarios de Active Directory de nuestro Windows 2003 Server. La autenticación de los usuarios se producirá vía LDAP (Protocolo Ligero de Acceso al Directorio), un protocolo estándar para el acceso a multitud de bases de datos, entre ellas Active Directory.
Así pues lo primero es descargarnos el módulo de autenticación LDAP pinchando aquí, y copiar dicho fichero "auth_ldap.zip" en el Escritorio de nuestro Windows 2003 Server; tras ello procedemos a descomprimirlo en el mismo Escritorio, creándose una carpeta de nombre "ApacheLDAPMod". Al abrir dicha carpeta nos encontraremos con 3 subcarpetas, y abrimos la subcarpeta "Winnt-System32-dir", y copiamos los 4 ficheros que encontraremos en la carpeta "C:\Windows\System32" de nuestro servidor Windows 2003.
A continuación abrimos la subcarpeta "Apache-modules-dir" y copiamos el fichero "auth_ldap.dll" que encontramos en dicha ubicación a la ruta "C:\Apache\modules". Tras ello podemos eliminar la carpeta "ApacheLDAPMod" y el fichero "auth_ldap.zip" del Escritorio de nuestro Windows 2003.
El siguiente paso es crear una carpeta de nombre "privado" colgando de "C:\Apache\htdocs", lugar donde ubicaremos las páginas privadas de nuestro servidor web Apache.
Tras ello debemos editar de nuevo el fichero "httpd.conf", ubicado en la ruta "C:\Apache\conf", e incluimos las siguientes entradas, en los correspondientes apartados "LoadModule" y "AddModule":
LoadModule auth_ldap_module modules/auth_ldap.dll    (agregándolo al final de las entradas "LoadModule")
AddModule auth_ldap.c    (agregándolo al final de las entradas "AddModule")
Posteriormente introducimos textualmente las siguientes líneas, mediante las cuales logramos definir la carpeta "privado" como aquella a partir de la cual el contenido allí contenido será privado y sólo accesible por el administrador.
Alias /privado/ "C:/apache/htdocs/privado/"

<Directory "C:/apache/htdocs/privado">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AuthType basic
AuthName MiCentro.edu
AuthLDAPUrl ldap://servidor.MiCentro.edu:389/cn=users,dc=micentro,dc=edu?samAccountName?sub?(objectClass=User)
AuthLDAPBindDN "cn=administrador,cn=users,dc=MiCentro,dc=edu"
AuthLDAPBindPassword xxxxxx
require user administrador
</Directory>
NOTA: Sustituiremos la cadena "xxxxxx" en la entrada "AuthLDAPBindPassword" por la contraseña que hayamos asignado al usuario "administrador" del dominio "MiCentro". Hemos de tener presente que potencialmente  podrá ser validado cualquier usuario que se encuentre incluido en la carpeta "Users" de nuestro "Active Directory".
Guardamos los cambios realizados y para completar el proceso reiniciaremos el servidor "Apache" mediante la opción "Servicios" de las "Herramientas Administrativas" del "Panel de Control".
Si ubicamos un fichero de nombre "prueba.htm" en dicha carpeta ("C:\Apache\htdocs\privado"), podremos acceder a ella mediante la URL "http://apache.micentro.edu:8080/privado/prueba.htm", mostrándose la siguiente pantalla en la cual se nos pedirá autenticación, y en la cual serán válidas las credenciales del administrador.
Una vez validado adecuadamente algún usuario con permisos de acceso a los contenidos privados se mostrará la página solicitada.
Además podemos crear una carpeta privada para cada profesor, de modo que el contenido allí existente sólo fuera accesible por el mismo previa autenticación; para ello crearemos una carpeta de nombre "privado" colgando de la carpeta personal de cada profesor (por ejemplo en el caso del profesor Javier, en "C:\Apache\htdocs\Profesores\Matematicas\Javier"). Además de la creación de dicha carpeta "privado" en la ruta correspondiente, hemos de editar el fichero "htppd.conf" e incluir la siguiente entrada en el apartado correspondiente a los directorios:.
Alias /javier/ "C:/apache/htdocs/profesores/matematicas/javier/privado"

<Directory "C:/apache/htdocs/profesores/matematicas/javier/privado">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AuthType basic
AuthName MiCentro.edu
AuthLDAPUrl ldap://servidor.MiCentro.edu:389/ou=Profesores,dc=micentro,dc=edu?samAccountName?sub?(objectClass=User)
AuthLDAPBindDN "cn=administrador,cn=users,dc=MiCentro,dc=edu"
AuthLDAPBindPassword xxxxxx
require user javier
</Directory>
NOTA: Sustituiremos la cadena "xxxxxx" en la entrada "AuthLDAPBindPassword" por la contraseña que hayamos asignado al usuario "administrador" del dominio "MiCentro". Además hemos de introducir esta entrada para cada uno de los profesores del centro, sustituyendo en las rutas de las dos primeras líneas el valor "javier" por el del profesor que deseamos que tenga el acceso seguro, así como dicho valor también en la penúltima línea.
Tras almacenar los cambios en el fichero de configuración y reiniciar el servicio Apache, para acceder a un fichero de nombre "prueba.htm" ubicado en la carpeta privada del profesor Javier teclearemos la URL: "http://apache.micentro.edu:8080/Profesores/Matematicas/Javier/privado/prueba.htm".
NOTA: Es posible hacer, y de hecho es recomendable, que las carpetas privadas sean además seguras, es decir, utilicen un canal SSL, con lo cual el acceso a las carpetas seguras sería "https" en el puerto "4443", el resto de las rutas de las URL de acceso se mantendrían estables. Para lograrlo hemos de introducir en cada una de las entradas "<Directory>" la instrucción "SSLRequireSSL".

No hay comentarios:

Publicar un comentario