Me interesan las mejores prácticas de uso de la autenticación LDAP en una aplicación web basada en Java. En mi aplicación, no quiero almacenar el nombre de usuario/contraseña, solo algunos identificadores. Pero quiero recuperar información adicional (nombre, apellido) si existe alguna en un catálogo LDAP.Mejores prácticas de LDAP
Respuesta
Mi equipo usa LDAP como una forma estándar de autenticación. Básicamente, tratamos LDAP como cualquier otra base de datos.
Para agregar usuario a la aplicación, debe elegir uno de LDAP o crearlo en LDAP; cuando el usuario es eliminado de la aplicación, permanece en LDAP pero no tiene acceso a la aplicación.
Básicamente, necesita almacenar solo el nombre de usuario LDAP localmente. Puede leer datos de LDAP (correo electrónico, departamento, etc.) desde LDAP cada vez, o extraerlos de algún modo de la aplicación, aunque leerlos desde LDAP es probablemente más simple e inteligente ya que los datos de LDAP pueden cambiar. Por supuesto, si necesita informar o usar datos de LDAP extensamente, es posible que desee extraerlo de LDAP (manualmente o con la tarea por lotes).
Lo bueno es que una vez que un usuario está deshabilitado en LDAP, se desactiva en todas las aplicaciones a la vez; Además, el usuario tiene las mismas credenciales en todas las aplicaciones. En el entorno corporativo, con un montón de aplicaciones internas, esta es una gran ventaja. No use LDAP para usuarios para una sola aplicación; no hay beneficios reales en ese escenario.
Si tiene más de una aplicación basada en web y desea usar la autenticación LDAP, una solución de inicio de sesión único preempaquetado podría ser mejor que crear su propia autenticación LDAP. CAS admite la autenticación LDAP y puede recuperar los datos que necesita para su aplicación.
En mi universidad, en realidad hemos implementado CAS como un inicio de sesión único en contra de nuestro servidor de Active Directory. También utilizamos CAS para autenticar nuestras aplicaciones J2EE y estamos trabajando en el uso de CAS para autenticar nuestras aplicaciones PHP.
Utilizamos AD para mantener a los usuarios del dominio. Hay ciertas unidades organizativas según el tipo de usuario. Cada uno de los usuarios tiene una identificación única que es su identificación de estudiante/empleado, por lo que las aplicaciones pueden usarla como clave principal en sus bases de datos. Tenemos un método de autorización basado en bases de datos para nuestras aplicaciones PHP. La autorización para la aplicación J2EE proviene de un valor en LDAP.
Buena suerte con su aplicación.
¿Desea que el usuario ingrese solo la ID y luego obtenga el resto de su información de LDAP? Eso es bastante fácil.
- Crear contexto LdapInitial y conectarse a LDAP
- Haga una búsqueda para el ID (que debe ser almacenado como un valor de atributo) - por ejemplo, (& (identificador de usuario = John) (objectClass = user)) - que significa "ID de usuario = John y objectClass = user"
- objeto SearchResult contendría todos los atributos (o los que se solicita)
Algunos LDAP las implementaciones (MS ActiveDirectory LDAP notable) no le permiten conectarse con usuarios anónimos. Para aquellos que necesita tener un ID de usuario/contraseña técnica para conectarse.
Como se dijo anteriormente, LDAP normalmente tiene sentido cuando tiene muchas aplicaciones.
P.S. Para sentir lo que LDAP es probar Apache Directory Studio.
Para conocer las mejores prácticas generales con LDAP, consulte "LDAP: Programming practices".
El enlace está muerto, pero se puede encontrar un resumen en https://ff1959.wordpress.com/2011/10/27/ldap-programming-best-practices/ –
- 1. Mejores prácticas de LDAP Modeling
- 2. Mejores prácticas de LinqToSql
- 3. Mejores prácticas de Maven
- 4. ¿Mejores prácticas de Flex?
- 5. Mejores prácticas de Sitecore
- 6. Mejores prácticas de CoreData
- 7. Mejores prácticas de Lucene.Net
- 8. Mejores prácticas de Javascript
- 9. Mejores prácticas de NAnt
- 10. ¿Mejores prácticas de PHP?
- 11. Mejores prácticas de transacciones
- 12. Mejores prácticas de PyLint?
- 13. mejores prácticas de ctags
- 14. Mejores prácticas de ActionListener
- 15. DTO: mejores prácticas
- 16. Selenium, Nunit ¿Mejores prácticas?
- 17. Node.js + mejores prácticas repetitivo
- 18. CONEXIÓN SQL mejores prácticas
- 19. NSDateFormatter compartido: ¿mejores prácticas?
- 20. UITableView Mejores prácticas
- 21. NamedQuery: Mejores prácticas
- 22. GWT Mejores prácticas compuestas
- 23. Android strings.xml ¿Mejores prácticas?
- 24. CSS Esquema mejores prácticas
- 25. Java enumeración mejores prácticas
- 26. Integración continua: mejores prácticas
- 27. DataReader mejores prácticas
- 28. Mejores prácticas para C#
- 29. ¿Mejores prácticas de Google Maps?
- 30. .net ¿Mejores prácticas de diagnóstico?
¡No del todo! En la base de datos de mi aplicación, deseo solo ID de tienda y DN relacionado de LDAP. Y si necesito información adicional sobre el usuario, puedo obtenerla del directorio usando DN –
Depende de usted, aunque es una duplicación. Pero, ¿de qué se trata realmente? –