OpenLDAP provides centralized authentication for InventarioITU, acting as the single source of truth for user identities across all lab environments at ITU Mendoza. It runs as theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/carlamndz/InventarioITU/llms.txt
Use this file to discover all available pages before exploring further.
ldap-service container and listens on port 389, allowing the inventario-web Node.js application to validate credentials at login time. Every user who accesses the inventory system — whether a lab administrator or teaching staff — must have a valid entry in the OpenLDAP directory.
Deploy the OpenLDAP Container
The recommended way to run OpenLDAP for InventarioITU is with theosixia/openldap image. The following command bootstraps the server with the ITU Mendoza organization and the itu.edu.ar domain:
Directory Information Tree (DIT)
InventarioITU organizes LDAP entries under two organizational units:ou=usuarios for individual user accounts and ou=grupos for role-based groups. This structure maps directly to the access levels enforced by the web application.
cn=administradores have full read/write access to inventory records, while members of cn=docentes can view equipment assignments but cannot modify them. Create both OUs before adding any user entries.
When you add your LDAP configuration to the
ldap/ directory, you can save LDIF files there and apply them with ldapadd after the container is running. The example snippets in this guide can be saved directly into ldap/ as a starting point.Add a User Account
User entries follow theinetOrgPerson and posixAccount object classes. Save the snippet below as jdoe.ldif and apply it with ldapadd:
{SSHA} password hash before setting userPassword:
Connect inventario-web to LDAP
The Node.js application reads its LDAP configuration exclusively from environment variables. Set the following variables in your Docker Compose file, Kubernetes Secret, or.env file before starting inventario-web:
| Variable | Example Value | Purpose |
|---|---|---|
LDAP_URL | ldap://ldap-service:389 | Connection URL for the LDAP server |
LDAP_BASE_DN | dc=itu,dc=edu,dc=ar | Root of the directory tree |
LDAP_BIND_DN | cn=admin,dc=itu,dc=edu,dc=ar | Service account used for bind operations |
LDAP_BIND_PASSWORD | admin_password | Password for the service account |
LDAP_USER_SEARCH_BASE | ou=usuarios,dc=itu,dc=edu,dc=ar | Subtree searched when validating a login |
LDAP_BIND_PASSWORD in a Secret and inject it as an environment variable rather than placing it directly in the Deployment manifest:
Test the LDAP Connection
After the container is running and users have been added, verify connectivity and entry retrieval withldapsearch:
uid=jdoe. If you receive ldap_bind: Invalid credentials (49), double-check the admin password. If you receive No such object (32), the ou=usuarios organizational unit has not been created yet.
From within the Kubernetes cluster, run the same search through the web pod to confirm internal DNS resolution: