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
- 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.
| 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
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=USCualquiera 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
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):
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=steve@company.com*)(sn=steve@company.com*)(mail=steve@company.com*) (givenName=steve@company.com*)(mail=steve@company.com*))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 atributouidtambié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.
- 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.
- 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.