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:
spring.ldap.urls=ldap://myserver:1235
spring.ldap.username=admin
spring.ldap.password=secret
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:
@Component public class MyBean { private final LdapTemplate template; public MyBean(LdapTemplate template) { this.template = template; } }
@Component class MyBean(private val template: LdapTemplate) { }
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:
spring.ldap.embedded.base-dn=dc=spring,dc=io
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:
spring.ldap.embedded.base-dn[0]=dc=spring,dc=io
spring.ldap.embedded.base-dn[1]=dc=pivotal,dc=io
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.
GO TO FULL VERSION