Files
Spencer Jones 7db3584ad3 Release v0.1.0
- Initial release of LDAP Docker development tool
- Full .env configuration support with comprehensive documentation
- Pre-configured test users and SSL/TLS support
- Consolidated documentation in README
2025-10-20 13:37:54 -07:00
..
2025-10-20 13:37:54 -07:00
2025-10-20 13:37:54 -07:00

LDAP Docker Examples

This directory contains example scripts and applications demonstrating how to use the LDAP server for authentication and user management.

📝 Note: In the examples below, values shown as {.env:VARIABLE_NAME} are configurable via environment variables in your .env file. The actual default values are: LDAP_PORT=389, LDAPS_PORT=636, LDAP_BASE_DN=dc=testing,dc=local, and LDAP_ADMIN_PASSWORD=admin_password. See the main Configuration section for all available options.

Available Examples

1. Simple Authentication (simple_auth.py)

A Python script demonstrating basic LDAP authentication and user information retrieval.

Features:

  • Authenticate users with username/password
  • Retrieve detailed user information
  • Get user group memberships
  • List all users in the directory

Usage:

# Authenticate a user (default: jdoe)
python examples/simple_auth.py

# Authenticate with custom credentials
python examples/simple_auth.py --username jsmith --password password123

# List all users
python examples/simple_auth.py --list-users

# Use a different LDAP server
python examples/simple_auth.py --server ldaps://localhost:{.env:LDAPS_PORT}

Example Output:

LDAP Authentication Example
Server: ldap://localhost:{.env:LDAP_PORT}

Attempting to authenticate user: jdoe
✅ Authentication successful for user: jdoe
✅ Authentication successful!

Fetching user information...

==================================================
USER INFORMATION
==================================================
Username:    jdoe
Full Name:   John Doe
First Name:  John
Last Name:   Doe
Email:       jdoe@testing.local
UID Number:  10001
GID Number:  10001
DN:          uid=jdoe,ou=people,{.env:LDAP_BASE_DN}
==================================================

Fetching user groups...
User belongs to 2 group(s):
  • developers
  • users

Using in Your Application

Python with ldap3

from ldap3 import Server, Connection

# Connect and authenticate
server = Server('ldap://localhost:{.env:LDAP_PORT}')
conn = Connection(
    server,
    user='uid=jdoe,ou=people,{.env:LDAP_BASE_DN}',
    password='password123',
    auto_bind=True
)

# Search for users
conn.search(
    '{.env:LDAP_BASE_DN}',
    '(objectClass=inetOrgPerson)',
    attributes=['uid', 'cn', 'mail']
)

for entry in conn.entries:
    print(f"{entry.cn}: {entry.mail}")

conn.unbind()

Using ldapsearch (Command Line)

# Search for a user
ldapsearch -H ldap://localhost:{.env:LDAP_PORT} \
  -D "cn=admin,{.env:LDAP_BASE_DN}" \
  -w {.env:LDAP_ADMIN_PASSWORD} \
  -b "{.env:LDAP_BASE_DN}" \
  "(uid=jdoe)"

# List all users
ldapsearch -H ldap://localhost:{.env:LDAP_PORT} \
  -D "cn=admin,{.env:LDAP_BASE_DN}" \
  -w {.env:LDAP_ADMIN_PASSWORD} \
  -b "ou=people,{.env:LDAP_BASE_DN}" \
  "(objectClass=inetOrgPerson)" \
  uid cn mail