LDAP

Módulo 5. Spring
Nivel 17 , Lección 10
Disponible

LDAP (Protocolo ligero de acceso a directorios) es un estándar industrial abierto, independiente de la plataforma Protocolo a nivel de aplicación para organizar el acceso y el mantenimiento de servicios de información de directorio distribuidos a través de una red IP. Spring Boot proporciona configuración automática para cualquier servidor LDAP compatible, así como soporte para un servidor LDAP integrado en memoria desde ID independiente.

Las abstracciones LDAP se proporcionan a través de Spring Data LDAP. Para una recopilación conveniente de dependencias, existe un spring-boot-starter-data-ldap de “inicio”.

Conectarse a un servidor LDAP

Para conectarse al servidor LDAP, asegúrese de declarar una dependencia en el "inicio" spring-boot-starter-data-ldap o spring-ldap-core y luego declara la URL de tu servidor en tu application.properties como se muestra en el siguiente ejemplo:

Propiedades
spring.ldap.urls=ldap://myserver:1235
spring.ldap.username=admin
spring.ldap.password=secret
Yaml
spring:
  ldap:
    urls: "ldap://myserver:1235"
    username: "admin"
    password: "secret"

Si necesita configurar los ajustes de conexión, puede utilizar las propiedades spring.ldap.base y spring.ldap.base-environment.

LdapContextSource se configura automáticamente en función de estos parámetros. Si un bean DirContextAuthenticationStrategy está presente, está vinculado al LdapContextSource configurado automáticamente. Si necesita configurarlo para usar PooledContextSource, por ejemplo, aún puede implementar un LdapContextSource autoconfigurable. Asegúrese de marcar su ContextSource configurado como @Primary para que el LdapTemplate configurado automáticamente pueda usarlo.

Repositorios LDAP de Spring Data

Spring Data incluye soporte de repositorio para LDAP.

Una instancia autoconfigurable de LdapTemplate se puede implementar como cualquier otro Spring Bean, como se muestra en el siguiente ejemplo:

Java
import java.util.List;
import org.springframework.ldap.core.LdapTemplate;
import org.springframework.stereotype.Component;
@Component
public class MyBean {
    private final LdapTemplate template;
    public MyBean(LdapTemplate template) {
        this.template = template;
    }
 // ...
 public List<User> someMethod() {
        return this.template.findAll(User.class);
    }
}
Kotlin
import org.springframework.ldap.core.LdapTemplate
import org.springframework.stereotype.Component
@Component
class MyBean(private val template: LdapTemplate) {
 // ...
 fun someMethod(): List<User> {
        return template.findAll(User::class.java)
    }
}

Servidor LDAP en memoria integrado

Para fines de prueba, Spring Boot admite la configuración automática de un servidor LDAP en memoria desde ID ilimitado. Para configurar el servidor, agregue la dependencia com.unboundid:unboundid-ldapsdk y declare la propiedad spring.ldap.embedded.base-dn como se muestra a continuación:

Propiedades
spring.ldap.embedded.base-dn=dc=spring,dc=io
Yaml
spring:
  ldap:
    embedded:
      base-dn: "dc=spring,dc=io"

Puede definir múltiples valores base de búsqueda "base-dn", sin embargo, dado que los nombres distintivos generalmente contienen comas, deben definirse usando notación de prueba.

Puedes utilizar una entrada de la lista yaml en archivos yaml. Los archivos de propiedades deben incluir el índice como parte del nombre de la propiedad:

Propiedades
spring.ldap.embedded.base-dn[0]=dc=spring,dc=io
spring.ldap.embedded.base-dn[1]=dc=pivotal,dc=io
Yaml
spring.ldap.embedded.base-dn:
  - "dc=primavera,dc=io"
  - "dc=pivotal,dc=io"

De forma predeterminada, el servidor se inicia en un puerto aleatorio y también inicia el lanzamiento de herramientas de soporte estándar para LDAP. No es necesario establecer la propiedad spring.ldap.urls.

Si hay un archivo schema.ldif en el classpath, se utiliza para inicializar el servidor. Si desea cargar el script de inicio desde otro recurso, también puede utilizar la propiedad spring.ldap.embedded.ldif.

De forma predeterminada, el esquema estándar se utiliza para validar archivos en el formato LDIF. Puede deshabilitar la validación por completo configurando la propiedad spring.ldap.embedded.validation.enabled. Si tiene atributos personalizados, puede usar spring.ldap.embedded.validation.schema para definir tipos de atributos personalizados o clases de objetos.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION