Mi empresa desarrolla y vende una aplicación SaaS que tiene cientos de clientes. Algunos de nuestros clientes nos han pedido que admitamos la integración de LDAP para autenticar cuentas de usuario contra sus sistemas existentes en lugar de tener que crear otra cuenta de inicio de sesión para cada uno de sus empleados. ¿Parece que esto se conoce como inicio de sesión único (SSO) en muchos lugares? Naturalmente, nuestro sistema ya tiene un mecanismo para mantener los perfiles de cuenta de usuario y autenticar esas cuentas de usuario desde nuestra página de inicio de sesión.¿Cómo construir la integración de LDAP para mi aplicación web?
Somos un poco ignorantes sobre LDAP y estamos confundidos acerca de algunas cosas. Disculpe el posible uso de una terminología equivocada (recuerde, somos un poco ignorantes sobre esto).
Creemos entender los conceptos básicos de cómo esto podría funcionar:
- Nuestro cliente configura su cuenta para "activar" la función de "autenticación remota" por su cuenta. Proporcionan la URL remota que autenticará a sus usuarios.
- Los usuarios acceden a nuestra página de inicio de sesión e intentan iniciar sesión con su nombre de usuario y contraseña proporcionados por el sistema LDAP de su compañía.
- Nuestra página de inicio de sesión enviará de manera segura las credenciales de inicio de sesión (presumiblemente cifradas y hash en algún formato acordado) a la URL de "autenticación remota" proporcionada por nuestro cliente.
- La secuencia de comandos del cliente autenticará al usuario y luego lo redireccionará a nuestro sitio con el "estado de autenticación".
- Nuestra página analizará el "estado de autenticación" y aceptará al usuario como conectado o no.
Suponiendo que la información anterior es incluso semi-correcta, aún necesitaremos que cada usuario tenga una cuenta en nuestro sistema. ¿No necesitaremos alguna forma de sincronizar nuestros perfiles de cuenta de usuario con los perfiles de usuario en el directorio LDAP? ¿Es esto simplemente una "identificación externa" que hace referencia a la identificación del usuario en el sistema LDAP? ¿Se requeriría entonces que la secuencia de comandos de "autenticación remota" del cliente debe proporcionar esa identificación a nuestro sistema para que sepamos en qué cuenta de usuario de nuestro sistema asociamos el inicio de sesión?
¿Qué nos falta?
Por cierto, nuestra plataforma es IIS, ASP.Net 2.0 y SQL Server 2005.