# Manual de usuario de LDAP

## Introducción

**LDAP** (Lightweight Directory Access Protocol) es un protocolo estándar utilizado para acceder y gestionar información almacenada en servicios de directorio, como el *Active Directory* de Microsoft, el *OpenLDAP* entre otros. Frecuentemente se usa para centralizar información de usuarios, grupos y recursos en una red, como en sistemas de autenticación, directorios de contactos y sistemas de gestión de acceso.

{% hint style="info" %}
Este manual cubre el uso de LDAP con la herramienta [Apache Directory Studio](https://directory.apache.org/studio/).
{% endhint %}

![](/files/c1bff9fd45fc2b19b5a5b20047ed962ca9586307)

## Iniciando el uso

### Creando una conexión

Por el menú File -> New se abrirá el *Wizard*, elegir LDAP Browser -> LDAP Connection. O, en la ventana de conexiones, con el botón derecho elegir New Connection.

Rellenar solamente el `Nombre de la conexión` (*Connection name*) y el `Hostname` (o IP) y avanzar a la siguiente pantalla.

![](/files/dd56b68a796bf4e86e02b960bd0cb3299600be2d)

Rellenar el campo `Bind DN or User` y `Bind password` según lo informado por el equipo que creó el LDAP. Después de configurado es posible hacer clic en Check Authentication para confirmar el acceso e inicio de sesión en el LDAP.

![](/files/dedf4a352fbe6c5ac3f45d575bce8d3d1e0ae641)

{% hint style="success" %}
**(Opcional)** En la siguiente pantalla, *Browser Option*, marcar `Fetch operational attributes while browsing` para mejorar la visibilidad de los grupos a los que pertenece cada usuario.
{% endhint %}

### Conectando por la pestaña de Connections

Verifique qué servidor de la lista desea conectar, haga doble clic en el servidor elegido o selecciónelo y haga clic en el ícono de conexión (destacado en rojo en la imagen abajo).

![](/files/089768d0178f15258af746432221100c9f1b08b7)

Si la conexión tiene éxito, el ícono del servidor cambiará a amarillo:

![](/files/b7764e1fe77d7bc5be0366704d773eb2e06f2bb6)

## Estructura del LDAP

### Árbol de directorios

El árbol utilizado se basa esencialmente en *Groups* y *Users*, pudiendo adicionalmente contar con *Policies* para políticas de contraseña.

![](/files/b068316dc08afca054d5b499b1d8d11b83866f8c)

### Siglas

<table><thead><tr><th width="200">Sigla</th><th>Significado</th></tr></thead><tbody><tr><td><code>dc</code></td><td>Componentes del dominio (Domain Component)</td></tr><tr><td><code>o</code></td><td>Unidad organizacional a la cual pertenece el usuario (Organizational Unit)</td></tr><tr><td><code>cn</code></td><td>Nombre común (Common Name)</td></tr><tr><td><code>sn</code></td><td>Apellido de la persona (Surname)</td></tr><tr><td><code>uid</code></td><td>ID de usuario (User ID)</td></tr><tr><td><code>mail</code></td><td>correo electrónico (Email Address)</td></tr></tbody></table>

### Árbol *Users*

En este árbol se crean los usuarios y se definen sus contraseñas, puede estar estructurado en subniveles para facilitar la organización de los usuarios mediante el concepto de agrupamiento por localidad, departamento, etc.

### Árbol *Groups*

En este árbol se definen grupos que representarán permisos/roles de acceso a las herramientas, mediante la adición del usuario al grupo de acceso deseado.

Ejemplo de grupos:

* `etr_view` - Usuarios añadidos a este grupo tendrán acceso a los permisos definidos en el grupo, que representan opciones de acceso al ETR como visualizador.
* `bcc_verify` - Usuarios añadidos a este grupo podrán iniciar sesión en el BCC y realizar búsquedas de verificación (búsquedas 1:1).

### Registro de usuario

En la creación de usuario, rellenar los siguientes atributos:

`cn` - usado como el nombre del **inicio de sesión** del usuario; `sn` - usado para registrar el **nombre completo** del usuario; `uid` - reservado para uso futuro, debiendo rellenarse con el mismo texto que el `cn`; `password` - rellenado con la **contraseña** de este usuario; `mail` - usado para registrar el **correo electrónico** del usuario.

Para registrar un usuario, haga clic con el botón derecho encima de `ou=User` y elija New -> New Entry:

![](/files/7ff0c39999704399dfa7dbcfa919dd97f9ba0d26)

Se abrirá la pantalla de creación de usuario. En caso de que existan `o` intermedias, cambie la ruta en el directorio de creación. En caso contrario, si no se realiza ninguna alteración, el usuario será creado en la raíz del directorio *Users*.

![](/files/34a4bf6ff314af272d71d736bfdb726efef0e576)

En la pantalla siguiente, elimine `organizationalUnit`:

![](/files/99f179cce12b3ffdaad628d5afe3c7a3b4a5d295)

Añada `inetOrgPerson` y la aplicación automáticamente traerá las clases de dependencia `organizationalPerson`, `person` y `top`:

![](/files/5a52407a94ac261b4966378fcb7afaadd236ea72)

Avance a la siguiente pantalla para elegir el `cn`. Rellene con el `cn` de inicio de sesión deseado:

![](/files/bccc6a937fad03cf70dee56ba83b426f834550d9)

En esta nueva pantalla se muestra un resumen de lo que se hará y se puede cambiar el `sn`. Rellene, si es posible, con el nombre completo del usuario.

![](/files/fb6c372a44fafda14177700b667ceec057ba7fe0)

A continuación, haga clic con el botón derecho del ratón en New Attribute:

![](/files/4a9b35fc5c239da6db96d043809f0a2c47ebb86b)

Elija `UID` y rellene con el valor del `UID`.

{% hint style="info" %}
El valor del `UID` debe provenir del administrador de usuarios del sistema.
{% endhint %}

A continuación, el atributo `userPassword`:

![](/files/7f81187994c5ee31ec8ddbbd53af111a210df369)

Al finalizar, se abrirá la pantalla para definir la contraseña. Elija `CRYPT-SHA-512` y rellene con la contraseña deseada:

![](/files/12db42ac24f2745be42e2c4a082bdd33dedf5c09)

Finalmente, elimine el *objectClass* `organizationalPerson (estructural)` haciendo clic con el botón derecho y eligiendo Delete Value:

![](/files/26b0bfe82457822f16ffcaed97fa2045136d1ea4)

### Adición de grupo a un usuario

En *Users*, abra el registro de un usuario y copie el **DN** del usuario mostrado en el encabezado de la pantalla:

![](/files/4a6498aa98809f3cd7099686d8ad7a54b23f3c75)

{% hint style="info" %}
**DN** es la sigla para *Distinguished Name*, que es el **Nombre Distinguido** del objeto en el LDAP. Es la manera de identificar un objeto de forma única en el directorio. Proporciona la ruta a la entrada específica dentro de la jerarquía del directorio LDAP, que está organizada en una estructura de árbol. Un DN se compone de una secuencia de nombres relativos distintos (RDNs) conectados por comas. Cada RDN es un componente del DN que representa un valor de atributo específico.

Por ejemplo:

<img src="/files/c72eb27e74c1db32061fdbcb9bc3251144771bb0" alt="" data-size="original">

* `cn=leandro.pinheiro`: **Nombre Común** (`cn`) de la entrada. Generalmente se utiliza para nombres de personas u objetos.
* `ou=Users`: **Unidad Organizacional** (`o`) donde la entrada está ubicada.
* `dc=oldap`: **Componente de Dominio** (`dc`). Puede representar un subdominio o una parte específica del dominio dentro de la estructura LDAP.
* `dc=igp`: Otro **Componente de Dominio** (`dc`). Representa otra parte del dominio, posiblemente indicando un departamento o subdivisión dentro de la organización.
* `dc=griaule`: **Componente de Dominio** (`dc`) de nivel más alto. Representa el dominio principal de la organización.

Por lo tanto, el DN `cn=leandro.pinheiro,ou=Users,dc=oldap,dc=igp,dc=griaule` identifica a un usuario específico llamado `leandro.pinheiro` dentro de la unidad organizacional `Users`, que forma parte del subdominio `oldap`, del dominio `igp`, dentro del dominio principal `griaule`. Este DN proporciona una ruta clara y única para localizar esta entrada específica en el directorio LDAP de la organización.
{% endhint %}

A continuación, abra la raíz de *Groups* y elija el grupo deseado. Haga clic con el botón derecho en el grupo y en New Attribute. En `Attribute Type`, elija `member`. Haga clic en Finish.

![](/files/dc2f657ff06b8cd5e0aca0656b70c9f05e7e7618)

En la pantalla **DN Editor**, pegue el **DN** completo del usuario (copiado en el primer paso). Haga clic en OK:

![](/files/69b8cdf66b037d45bf09dcf962b6e4423cb9cc1c)

### Adición rápida de grupo a un usuario

Cuando el grupo ya posee usuarios/miembros, la adición de un nuevo usuario al grupo es más ágil: basta con hacer clic con el botón derecho en el componente `member` y elegir New Value. La pantalla **DN Editor** se abrirá. Entonces, como se muestra en la sección anterior, pegue el **DN** completo del usuario y haga clic en OK.

![](/files/f0f45469b32eca2d7d0e442bab5dc6aa16dc3e2a)

### Eliminación del usuario de un grupo

Abra el grupo en el que el usuario está:

![](/files/51e72485e5f8fafd376478d457d42c6f5e75d582)

Haga clic con el botón derecho en el `member` del usuario que se desea eliminar del grupo y haga clic en Delete Value:

![](/files/5e450e8c073a0b7ad807a1b0d996cf12d611e3c1)

Confirme haciendo clic en OK:

![](/files/af2a3996e36d1881d20092b9d06197451fbad063)

### Creación de grupo

Para crear un nuevo grupo, haga clic con el botón derecho encima de `ou=Groups` y elija New -> New Entry.

![](/files/88bc96658ddd56fbba3e81bd8de1be19ae2f76ea)

Se abrirá la pantalla de creación, similar a la creación de usuarios. Elija la opción `organizationalUnit`.

![](/files/4f4476b7b8f0fbc931acd16f87e50c0fcd134786)

Elija `o` y rellene un nombre, en el ejemplo abajo se eligió `LDAP`. Finalice la creación del grupo haciendo clic en Finish.

![](/files/e11f4dec2832c8ad4ef01d30c57531b940945c80)

## Navegación en el LDAP

### Búsqueda de grupos del usuario por "Quick Search"

Para localizar los grupos de un usuario, acceda al buscador del LDAP y seleccione la opción `cn` o `member`.

{% hint style="info" %}
Seleccionando `member`, será necesario buscar utilizando el **DN** completo del usuario.
{% endhint %}

En la parte superior derecha, verifique si el siguiente ícono está seleccionado:

![](/files/1005673595287fd0d93fed3c67a43f0c81f4eefb)

Si no lo está, selecciónelo. Esto permitirá hacer una búsqueda por todo el árbol de groups (opciones `search one level only` o `search whole subtree`).

![](/files/b20ea0dd9077faa9b46c9ee2a98056fffed3ca74)

Verifique la respuesta en el `Quick Search`:

![](/files/0d1455c5a057ce5a3646ea957d2323bcca3523f0)

{% hint style="danger" %}
**Nunca realizar eliminación de usuario usando el resultado de la búsqueda** (en el elemento Quick Search), pues se han buscado los grupos a los que pertenece esta persona. Por lo tanto, **borrar una línea del Quick Search significa borrar el grupo** y no el usuario.
{% endhint %}

### Lista de grupos del usuario en la descripción del usuario

Otra forma de verificar los grupos a los que pertenece el usuario es a través de la *Fetch*.

Para ello, haga clic con el botón derecho del ratón en el nombre del usuario y elija Fetch -> Fetch Operational Attributes:

![](/files/05a32d1c0bcc986a792b2dc1216f4601a6112c74)

También es posible insertar el *Fetch Operacional Attributes* haciendo clic con el botón derecho del ratón y eligiendo Properties. A continuación, haga clic en `Connection` y abra la pestaña `Browser Options`. Entonces, en la sección `Features`, marque la opción `Fetch operational attributes while browsing`:

![](/files/ce922d0a1b80fef6e897f156a1bb04e811c33c90)

Así, los grupos a los que pertenece el usuario se mostrarán durante la navegación:

![](/files/42ead02ec313c96309e9cd50517b6daf147c9f40)

### Cambio de contraseña

Localice al usuario mediante Quick Search, como se muestra [en este paso a paso](#pesquisa-de-grupos-do-usuario-pelo-quick-search).

Después de localizar al usuario, haga doble clic en userPassword y abra la pestaña `New Password`.

![](/files/010a46e2122f53df57585cc04017e02ebdcbee5a)

Introduzca la nueva contraseña y confirme.

Después de aplicar la nueva contraseña, aparecerá la pantalla de *Modification Logs* confirmando su modificación.

### Verificación de contraseña

Para verificación de contraseña, primero localice al usuario mediante Quick Search, como se muestra [en este paso a paso](#pesquisa-de-grupos-do-usuario-pelo-quick-search).

Después de localizar al usuario, haga doble clic en userPassword y abra la pestaña `Current Password`.

En el campo, `Verify Password`, introduzca la contraseña actual del usuario y haga clic en Verify.

Si la contraseña es correcta, el mensaje "*Password verified successfully*" será mostrado.

![](/files/50725fd2631e2181b759df39198d48e2a845478d)

## Organización de usuarios

### Usuarios por subgrupos

La organización eficiente de los usuarios en un directorio LDAP puede realizarse mediante subárboles. Esta estructura facilita la administración del directorio, permitiendo una segmentación clara de los usuarios basada en criterios específicos como empresa, departamento o contratos.

#### Concepto de Subárbol de Usuarios

Para optimizar la gestión de usuarios, se recomienda la implementación de un subárbol jerárquico con uno o dos niveles como máximo de profundidad. Esta práctica garantiza una separación lógica de los usuarios, aportando claridad y eficiencia en la administración del directorio.

#### Ventajas del Subárbol de Usuarios

1. **Simplificación de la Administración**: Reduce la complejidad de la administración del LDAP.
2. **Organización Estructurada**: Facilita la localización y gestión de objetos LDAP.
3. **Mejora del Rendimiento**: Minimiza el tiempo de respuesta en consultas y operaciones en el LDAP.

![](/files/1da4f154689f9d31ce96b95fb598c3c9999d485a)

Esta estructura ejemplifica:

* **ROOT**: Nivel raíz del directorio LDAP.
* **Organización**: Unidad organizacional principal.
* **UF**: Unidad Federativa, ejemplificando con `SP` (São Paulo).
* **CONTRATO**: Subdivisión de contratos, como `Polícia Científica`.
* **USER**: Usuarios dentro del contrato específico.
* **Permiso**: Permisos asociados a los usuarios.

Otro ejemplo, este directamente en el LDAP, consiste en un árbol de subgrupos. Donde se tiene un grupo `policiaCivil` y dentro de él un subgrupo `SC`.

![](/files/8508901bdfef4874e4cf82ec8379ee5ebc223031)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.griaule.com/gbs/es/configuracion-de-gbds/ldapusermanual.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
