what significa que obtener name groupname example ejemplo domain atributos active java java-ee ldap

java - obtener - que significa cn en active directory



Mejores prácticas de LDAP (4)

Estoy interesado en las mejores prácticas de uso de 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.


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 desde 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, necesitas 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, está deshabilitado 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 la web y desea utilizar 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.

Usamos AD para retener 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 tu aplicación.


Entonces, ¿desea que el usuario ingrese solo la identificación y luego obtenga el resto de su información de LDAP? Eso es bastante fácil.

  1. Crear contexto LdapInitial y conectarse a LDAP
  2. Haga una búsqueda de la ID (debe almacenarse como algún valor de atributo), por ejemplo, (& (userid = john) (objectClass = user)) - que significa "userid = john AND objectClass = user"
  3. El objeto SearchResult contendría todos los Atributos (o los que usted solicitó)

Algunas implementaciones de LDAP (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.

PD. Para sentir lo que LDAP es probar Apache Directory Studio.