LDAP πΒΆ
This page describes how application roles consume the platformβs LDAP provider, OpenLDAP.
The variable tree lives in 12_ldap.yml under LDAP.
For the cross-cutting IAM principles, including the paired identifier rule shared with OIDC, see common.md.
For OIDC-side details see oidc.md.
Variable Tree π³ΒΆ
The high-level structure:
Key |
Meaning |
|---|---|
|
Base DN derived from |
|
Bind DN for CRUD on entries below |
|
Bind DN for |
|
Container for user objects |
|
Container for organizational groups |
|
Container for application RBAC roles |
|
Password for the data administrator DN |
|
Hostname or container name to dial |
|
Port resolved through the ports registry |
|
Full |
|
Transport security mode, empty when unused |
|
True when the consumer shares the OpenLDAP Docker network |
Rules:
Roles MUST connect via
LDAP.SERVER.URI. Building the URI from the individualINFINITO_DOMAIN,PORT, and protocol parts is forbidden because the helper variables in 12_ldap.yml already pick the correct scheme based on Docker-network availability.The data administrator DN MUST be used for adding, modifying, and removing users, groups, and roles. The configuration administrator DN MUST be used only for schema and overlay changes pushed via
ldapi:///.New OUs SHOULD NOT be invented. Place users under
OU.USERS, RBAC roles underOU.ROLES, and organizational groups underOU.GROUPS.
Object Classes π§±ΒΆ
LDAP.USER.OBJECTS lists the structural and auxiliary object classes attached to user entries:
Group |
Key |
Default |
Purpose |
|---|---|---|---|
Structural |
(list) |
|
Core identity, internet attributes, UNIX account fields |
Auxiliary |
|
|
Adds |
Auxiliary |
|
|
Stores SSH public keys for services like Gitea |
Each entry has exactly one structural class chain.
New auxiliary classes SHOULD be added under LDAP.USER.OBJECTS.AUXILIARY so consumers can probe them by symbolic name instead of literal string.
User Attributes πͺ§ΒΆ
LDAP.USER.ATTRIBUTES lists the LDAP attribute names that applications query:
Key |
Default value |
Meaning |
|---|---|---|
|
|
Login identifier, paired with the OIDC |
|
|
Primary email |
|
|
Display name |
|
|
First name |
|
|
Last name |
|
|
SSH key attribute |
|
|
Per-user Nextcloud quota |
Rules:
Templates MUST reference
LDAP.USER.ATTRIBUTES.*. Hardcodeduid,cn, orsnvalues are forbidden because the underlying schema may switch flavor in the future.The login attribute is paired with the OIDC username claim by design. Changing one without the other breaks LDAP-OIDC correlation. See oidc.md for the OIDC-side rule.
Filters πΒΆ
LDAP.FILTERS.USERS provides reusable LDAP search filters:
Key |
Purpose |
|---|---|
|
Resolve a single user by login attribute, parameterized via |
|
Match every user entry, used for sync jobs and listings |
Roles SHOULD prefer these filters over composing new ones inline so a future schema change updates every consumer at once.
RBAC π₯ΒΆ
LDAP.RBAC controls how application roles are represented:
Key |
Meaning |
|---|---|
|
Allowed group flavors, currently |
|
Placeholder DN for empty |
groupOfNames requires at least one member attribute.
The placeholder DN exists so newly created empty groups remain schema-valid until the first real member is added.