Parece que la conexión de los clientes Outlook a Exchange da problemas con la autenticación de usuario, con el añadido de que usar un proxy inverso para filtrar las solicitudes elimina ciertas cabeceras necesarias. Al intentar configurar un cliente, fallaba la autenticación en la mayoría de los casos, aunque en alguno de los intentos se crease la cuenta en el Outlook 2011, nunca sincronizaba.
Para la configuración de Outlook es necesario especificar la dirección del servidor Exchange 2010, con la ruta al Exchange Web Services. El resto de parámetros son los comunes: dirección de email, usuario del dominio y contraseña. En los ejemplos, utilizaremos correo.dominio.com como FQDN del servidor.
La dirección típica del EWS es https://correo.dominio.com/ews/exchange.asmx . Ojo porque en la autoconfiguración hay ocasiones en las que el nombre del subdirectorio está escrito en mayúsculas (EWS) y eso puede generar problemas en el entorno case-sensitive del proxy inverso.
Hemos de modificar el parámetro para que la autenticación básica esté Habilitada.
Tras este cambio, procedemos a reiniciar el IIS con el comando iisreset desde una línea de comandos con privilegios.
Para hacer la prueba, intentaremos acceder en local al directorio /ews/exchange.asmx y se debería mostrar un documento XML.
Si la prueba es satisfactoria, el equipo ya se podrá conectar en local al Exchange y autenticarse como es debido, pero en nuestra infraestructura contamos con un servidor proxy inverso nginx que hay que configurar para que deje pasar ciertas cabeceras al Exchange cuando se intenta acceder al mismo desde el exterior.
Accederemos por SSH al servidor ngnix y editaremos el site relacionado con el Exchange (owa):
nano /etc/nginx/sites-enabled/owa
En este fichero, vamos a añadir una sección location /ews para el subdirectorio EWS:
server {
listen 80;
server_name correo.dominio.com;
server_name autodiscover.dominio.com;
# Redirect any HTTP request to HTTPS
rewrite ^(.*) https://correo.dominio.com$1 permanent;
error_log /var/log/nginx/owa-error.log;
access_log /var/log/nginx/owa-access.log;
}
server {
listen 443;
server_name correo.dominio.com;
server_name autodiscover.dominio.com;
# Redirect from "/" to "/owa" by default
#rewrite ^/$ https://correo.dominio.com/owa permanent;
# Enable SSL
ssl on;
ssl_certificate /etc/nginx/ssl.crt/server.crt;
ssl_certificate_key /etc/nginx/ssl.key/server.key;
ssl_session_timeout 5m;
# Set global proxy settings
proxy_read_timeout 360;
proxy_pass_header Date;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / { proxy_pass http://192.168.2.2; }
# location /owa { proxy_pass http://192.168.2.2/owa; }
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / { proxy_pass http://192.168.2.2; }
# location /owa { proxy_pass http://192.168.2.2/owa; }
# location /rpc { proxy_pass http://192.168.2.2/rpc; }
# location /Microsoft-Server-ActiveSync { proxy_pass http://192.168.2.2/Microsoft-Server-ActiveSync; }
location /ews {
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
more_set_input_headers 'Authorization: $http_authorization';
proxy_set_header Accept-Encoding "";
proxy_pass https://192.168.2.2/ews;
proxy_redirect default;
#headers-more mod needed
more_set_headers -s 401 'WWW-Authenticate: Basic realm="correo.dominio.com"';
}
error_log /var/log/nginx/owa-ssl-error.log;
access_log /var/log/nginx/owa-ssl-access.log;
}
(En negrita la sección añadida, ojo con los saltos de línea!)
Para que el parámetro more_set_headers funcione, necesitamos el módulo headers-more incluído en el paquete nginx-extras de Debian.
No hay comentarios:
Publicar un comentario