El Protocolo ligero de acceso a directorios (LDAP) es un protocolo de Internet que funciona en TCP/IP y se utiliza para acceder a la información de los directorios. El protocolo LDAP se suele utilizar para acceder a un directorio activo. Nos permite mantener un directorio de artículos e información sobre ellos. LDAP almacena los datos en forma de registros que contienen un conjunto de atributos.
Perl: servidor LDAP
La distribución Perl -LDAP es una colección de módulos Perl que nos proporciona una interfaz orientada a objetos para servidores LDAP. Algunas características de Perl-LDAP Server se dan a continuación:
- Al utilizar la interfaz de objetos de Perl, los módulos Perl-LDAP proporcionan una interfaz que permite búsquedas complejas de directorios LDAP utilizando solo una pequeña cantidad de código.
- Todos los módulos Perl-LDAP están escritos completamente en Perl, lo que hace que su biblioteca sea realmente compatible con varias plataformas.
- Se está desarrollando activamente.
Los cuatro pasos para trabajar con un servidor LDAP son conectarse, autenticarse, interactuar y cerrar sesión. Interactuar incluye buscar, agregar, eliminar y modificar registros. Para hacer todo eso, necesitamos un módulo de Perl que se encargue de administrar la sesión LDAP.
Net::LDAP es uno de ellos. Es una colección de módulos que nos permite implementar la API de servicios LDAP para programas Perl. El módulo se puede utilizar para buscar directorios y realizar funciones de mantenimiento, como agregar, eliminar o modificar entradas.
Para instalar el servidor Net::LDAP , use el siguiente comando:
perl -MCPAN -e shell install Net::LDAP
Obtener datos del servidor
El servicio de directorio basado en LDAP almacena la información en entradas. Cada entrada pertenece a una o más clases de objetos que especifican el tipo de entrada que se almacena en el directorio. Un atributo es el que contiene los datos de una entrada.
Cada entrada en un servicio de directorio basado en LDAP tiene un nombre exclusivo asociado. Este “nombre distinguido” (DN) se compone de una string separada por comas de “nombres distinguidos relativos” (RDN) que juntos especifican la ubicación y el nombre de una entrada dentro del árbol de directorio. Un nombre distinguido relativo se compone de uno o más pares de atributo/valor que son únicos en su nivel en el árbol de directorios.
Nota: Mientras usamos LDAP, siempre debemos buscar o usar una operación extendida para obtener datos.
Cuando usamos el método de búsqueda, devuelve un objeto que contiene un conjunto de entradas (datos).
Los componentes básicos de un método de búsqueda son la base y el filtro. marca la parte superior del árbol que se está buscando e indica los registros que nos interesan.
Hay 2 formas de obtener las entradas:
- Obtener todo el conjunto de entradas
Perl
foreach $result ($mesg->all_entries) { # Perform some operation on the data }
- Obteniendo las entradas una por una
Perl
$num_entries = $mesg->count( ); for ($i = 0; $i < $num_entries; $i++) { my $entry = $mesg->entry($i); # Perform some operation on the data }
A continuación se muestra un programa básico para obtener información del servidor LDAP e imprimirla:
Perl
use strict; use warnings; use Net::LDAP; # Package Definition # Initialization $ldap = Net::LDAP->new("ldap.example.com") or die $@; # Binding $ldap->bind( ); $mesg = $ldap->search(base => $base_dn, filter => $FILTER); $mesg->code( ) && die $mesg->error; foreach $result ($mesg->all_entries) { # We can perform any operation on the entries # like adding, removing, modifying the data etc print $result->get_value(''), "\n", } $ldap->unbind( );
Error de límite de administrador excedido
A veces hay errores en los registros del servidor que a menudo se relacionan con los problemas internos de LDAP, lo que genera mensajes de error relacionados con LDAP. Aunque los errores no son fatales, indican problemas para investigar.
El error de límite administrativo excedido indica que se ha excedido el límite del servidor LDAP establecido por la autoridad administrativa.
Supongamos que se realizó una búsqueda LDAP que era más grande que el servidor de directorio permitido.
Error de límite de administración excedido”.
Perl
use Net::LDAP; # Package Definition # Initialization $ldap = Net::LDAP->new("mumbaiuniversity.com") or die $@; # Binding $ldap->bind( ); my $result = $ldap->search( # Searching base => "", filter => "(&(cn=Thomas*) (sn=S*))", ); die $result->error if $result->code; printf "COUNT: %s\n", $result->count; $ldap->unbind;
Publicación traducida automáticamente
Artículo escrito por vishalraina y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA