Files
docker_ldap_testing/examples/README.md
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

114 lines
2.9 KiB
Markdown

# 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](../README.md#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:**
```bash
# 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
```python
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)
```bash
# 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
```