Autenticación LDAP

LDAP (Lightweight Directory Access Protocol) es un protocolo Internet para acceder y mantener servicios de información de directorio distribuido a través de una red. Si utiliza LDAP para autenticar usuarios para aplicaciones web, dedique un minuto para revisar el contenido de este tema antes de empezar.

Directrices de programación

Al autenticar con LDAP, tenga en cuenta las directrices siguientes:
  • Utilice solo una interfaz LDAP: los usuarios solo se pueden autenticar a través de una conexión a un servidor LDAP.
  • Active Directory: está prohibido utilizar una interfaz de Active Directory, sin embargo se admite la autenticación LDAP con Active Directory.
  • Propiedades del administrador: el administrador de LDAP debe tener acceso a todas las propiedades de LDAP del usuario.
Los atributos LDAP leídos por IBM® API Connect son los siguientes:
Atributo Definición
mail Dirección de correo electrónico SMTP del usuario.
cn Se utiliza internamente para determinar el nombre común del usuario.
sn Se utiliza internamente para determinar el apellido del usuario.
givenname Se utiliza internamente para determinar el nombre de pila del usuario.
Prefijo de Search dn Se utiliza como nombre de usuario.

Utilización de un servidor LDAP para la autenticación de usuarios

Cada entrada de un servidor de directorios LDAP tiene un nombre distinguido (DN). El DN es el nombre que identifica de forma exclusiva una entrada en el directorio. Un DN se compone de pares attribute=value , separados por comas. Por ejemplo:
cn=Ben Gray,ou=editing,o=New York Times,c=US
cn=Lucille White,ou=editing,o=New York Times,c=US
cn=Tom Brown,ou=reporting,o=New York Times,c=US

Cualquiera de los atributos definidos en el esquema de directorio se puede utilizar para crear un DN. El orden de los pares atributo=valor de componente es importante. El DN contiene un componente para cada nivel de la jerarquía de directorios desde la raíz hasta el nivel en el que reside la entrada. Los DN de LDAP empiezan por el atributo más específico (normalmente algún tipo de nombre) y continúan con atributos cada vez más amplios, terminando a menudo con un atributo de país. El primer componente del DN se conoce como el nombre distinguido relativo (RDN). Identifica una entrada de forma distinta de las demás entradas que tienen el mismo padre. En los ejemplos anteriores, el RDN "cn=Ben Gray" separa la primera entrada de la segunda entrada, (con RDN "cn=Lucille White"). Estos dos ejemplos de DN son por lo demás equivalentes. El par atributo=valor que forma el RDN de una entrada también debe estar presente en la entrada. (Esto no es aplicable a los demás componentes del DN.)

Ejemplos

En los ejemplos siguientes, se realiza una búsqueda de usuario desde el DN base. La búsqueda se realiza de forma anónima, o si se utiliza un enlace autenticado, se utiliza un usuario autenticado. El DN de búsqueda añade el prefijo, el nombre de usuario proporcionado y el sufijo. Si el prefijo utilizado es (uid= y el sufijo utilizado es ")", uid se convierte en el atributo del nombre de usuario. El filtro de búsqueda predeterminado utilizado es: (|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter})) y los atributos utilizados para el prefijo también se añaden al filtro de búsqueda. En este caso, donde '(uid=' es el prefijo, cuando se buscan usuarios, el filtro de búsqueda se convierte en:
  (|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter}*)(uid={filter}*))
donde {filter} se sustituye por el texto real.

El DN de enlace autenticado es un usuario en el servidor LDAP externo autorizado para obtener los DN base y buscar en el directorio LDAP dentro de la base de búsqueda definida. También debe poder leer otras propiedades de usuario y utilizarse si no se permite el acceso anónimo a LDAP para obtener los DN base y para buscar y obtener acceso a los atributos de usuario. Cuando se realiza una búsqueda de Steve, se utiliza el filtro de consulta LDAP que se muestra en el ejemplo siguiente y la búsqueda se realiza desde el DN base especificado en la interfaz de usuario. Cuando se devuelve el DN del usuario, se utilizan el DN y la contraseña para autenticar al usuario:

(|(cn=Steve*)(sn=Steve*)(mail=Steve*)(givenName=Steve*)(uid=Steve*)).
Para enlazar durante llamadas de inicio de sesión, la serie de búsqueda utilizada es el prefijo. Por ejemplo, si el prefijo es '(uid=', la serie de búsqueda utilizada para buscar un usuario durante el inicio de sesión se convierte en: (uid=Steve).
Utilización del atributo de correo como nombre de usuario
Cuando desea utilizar una dirección de correo electrónico como nombre de usuario (por ejemplo, steve@company.com), normalmente utiliza el atributo de correo como prefijo '(mail='. En este caso, utilice la siguiente serie de búsqueda para realizar la búsqueda internamente (suponiendo '(mail=' como prefijo):
(|(cn=steve@company.com*)(sn=steve@company.com*)(mail=steve@company.com*)
(givenName=steve@company.com*)(mail=steve@company.com*))  
En el ejemplo anterior, si se encuentra el DN, se utiliza la contraseña con el DN para realizar un enlace. Se toma el primer resultado, por lo que asegúrese de utilizar un atributo exclusivo para el nombre de usuario. A continuación, se leen las propiedades LDAP para el usuario (cn, sn, mail, givenName). Si las propiedades LDAP no se pueden leer utilizando el usuario que ha iniciado la sesión, se leen del DN del usuario utilizando las credenciales de enlace autenticadas. Si el atributo de nombre usuario difiere, también se consulta. Por ejemplo, si el prefijo es '(uid=', el atributo uid también se lee desde el objeto DN del usuario:
(|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter}*))
Nota: El prefijo y el sufijo no se pueden utilizar para obtener el DN de un usuario directamente. Por ejemplo, el intento siguiente de obtener directamente el DN de un usuario falla:
Prefix: "uid=", Suffix: ",ou=users,dc=company,dc=com"

Referencias de LDAP

Las referencias de LDAP permiten particionar un árbol de directorios y distribuirlo entre varios servidores LDAP. Una referencia de LDAP es una manera que tiene el controlador de dominio de indicar a una aplicación cliente que no tiene una copia del objeto solicitado, al tiempo que proporciona al cliente una ubicación que con mayor probabilidad contendrá el objeto. El cliente utiliza entonces el objeto como la base de una búsqueda de DNS para un controlador de dominio.

El soporte de API Connect para la referencia LDAP incluye:
  • Búsqueda de usuarios que forman parte de varios árboles y bosques de Active Directory.
  • Autenticación de usuarios en Cloud Manager, API Manager y el Portal CMS.
Nota: API Connect El soporte de referencia LDAP depende de las condiciones siguientes:
  • Hay un solo host/puerto LDAP configurado con credenciales de administrador y las referencias de/a todos los usuarios se hacen a partir del DN base del árbol/servidor.
  • Como parte de la búsqueda de usuarios que sigue a la referencia de LDAP, se utilizan las mismas credenciales de administrador en los árboles/bosques en sentido descendente.
  • La autenticación de la API LDAP no da soporte a la referencia de LDAP externa. Se admite la referencia LDAP interna.