authentication - Autenticación de Active Directory para producto SaaS
active-directory ldap (5)
¿Qué pasa con una conexión LDAPS al directorio de usuarios del cliente? Pueden apagar el firewall para que solo sus servidores tengan acceso si les preocupa que sea público. Dado que es SSL es seguro de extremo a extremo. Todo lo que necesita de ellos es el certificado de la CA emisora (si no es público). Luché para que esto funcionara para un proyecto web interno en la DMZ y hay una falta real de guías en línea. Así que escribí uno cuando lo tenía funcionando:
http://pcloadletter.co.uk/2011/06/27/active-directory-authentication-using-ldaps/
Después de obtener ayuda teórica sobre el mejor enfoque para permitir que un producto SaaS autentique a los usuarios frente al servidor de Active Directory (u otro LDAP) interno de un inquilino.
La aplicación está alojada, pero existe el requisito de que los inquilinos puedan delegar la autenticación a su proveedor de administración de usuarios existente, como AD u OpenLDAP, etc.
Suponiendo que el cliente no desea reenviar el puerto 389 a su controlador de dominio, ¿cuál es el mejor enfoque para esto?
Después de investigar y hablar con algunos administradores de sistemas que manejarían esto, hemos decidido dos opciones que deberían satisfacer a la mayoría de las personas. Los describiré aquí para aquellos que también estaban interesados en el resultado.
Servicio de Autenticación instalado en la DMZ de origen.
Si los usuarios desean utilizar la autenticación con un servidor de directorio activo local, deberán instalar un agente en su DMZ y abrir el puerto 443. Nuestro servicio se configurará para golpear este servicio para realizar la autenticación.
Este servicio se ubicará en la DMZ y recibirá solicitudes de autenticación de la aplicación SaaS. El servicio intentará vincularse al directorio activo con estas credenciales y devolverá un estado para indicar el éxito o el fracaso.
En este caso, la autenticación basada en formularios de la aplicación no cambiará, y el usuario no estará al tanto de la autenticación detrás de escena.
OpenId
Al igual que en el primer enfoque, se instalará un servicio en la DMZ del cliente y se abrirá el puerto 443. Este será un proveedor de OpenId.
La aplicación SaaS será un consumidor de OpenId (ya es para el inicio de sesión de Facebook, Twitter, Google, etc.).
Cuando un usuario desea iniciar sesión, se presentará el proveedor de OpenId y se le pedirá que ingrese su nombre de usuario y contraseña. Esta pantalla de inicio de sesión se servirá desde la DMZ del cliente. El usuario nunca ingresaría su nombre de usuario o contraseña en la aplicación SaaS.
En este caso, la autenticación basada en formularios existente se reemplaza con la autenticación OpenId del servicio en el DNZ del cliente.
Una tercera opción que estamos investigando son los servicios federados de Active Directory, pero esto es propiedad de Active Directory. Las otras dos soluciones admiten cualquier autenticación basada en LDAP en Internet.
Lo mejor es implementar una autenticación SAML para su aplicación SaaS y luego registrarse con proveedores de identidad como Okta o OneLogin. Una vez hecho esto, también puede conectarlo con ADFS para proporcionar inicio de sesión único para su aplicación web a través de Active Directory.
Solo estoy haciendo esta investigación y esto es lo que me he encontrado, tendré más actualizaciones una vez que se realice la implementación. Espero que esto te da suficientes palabras clave para hacer otra búsqueda de Google
Mi entendimiento es que hay tres soluciones posibles:
Instalar algo en el controlador de dominio para capturar todos los cambios del usuario (adiciones, eliminaciones, cambios de contraseña) y enviar actualizaciones al servidor remoto. Desafortunadamente, el sitio web no tiene forma de conocer las contraseñas iniciales del usuario, solo las nuevas una vez que se cambian.
Proporcione acceso para que el servidor web se conecte a su controlador de dominio a través de LDAP / WIF / ADFS. Esto probablemente significaría abrir puertos entrantes en el firewall de la compañía para permitir una IP específica.
De lo contrario, omita los nombres de usuario / contraseñas y, en su lugar, utilice la autenticación basada en correo electrónico . Los usuarios solo tendrían que autenticarse por correo electrónico una vez cada 3-6 meses para cada dispositivo.
Tengo que comenzar a implementar esto para un próximo proyecto y me estoy inclinando seriamente hacia la opción # 3 para simplificar.
Quizás esto pueda ayudar ...
Este proveedor, Stormpath , ofrece un servicio que proporciona: autenticación de usuarios, administración de cuentas de usuarios, con conexiones a los directorios locales de sus clientes.