ldap/v0¶
Usage¶
This relation interface describes the expected behavior of any charm claiming to be able to provide or consume the LDAP authentication configuration data.
Glossary of LDAP Terms¶
Abbreviation |
Term |
|---|---|
DN |
Distinguished Name |
DIT |
Directory Information Tree |
Direction¶
flowchart TD
Requirer -- user, \ngroup --> Provider
Provider -- urls, \nbase_dn, \nbind_dn, \nbind_password_secret, \nauth_method, \nstarttls --> Requirer
Behavior¶
Both the provider and the requirer need to adhere to a certain set of
criteria to be considered compatible with the ldap interface.
Sensitive information is transmitted through Juju Secrets rather than directly through the relation databag(s).
Provider¶
Is expected to use
userandgroupprovided by therequirerto create a bind DN in the DIT for therequirerto use for thebindoperation. If therequirerdoes not provideuserandgroup, theproviderleveragesrequirer’s Juju application name and model name.Is expected to provide the
requirerwith necessary configuration for performing LDAP authentications and operations.Is expected to update the application databag if any field’s data is changed in the
providercharmed application.
Requirer¶
Is expected to optionally provide
userandgroupfor theproviderto generate the bind DN.Is expected to consume the LDAP configuration data provided by the
providerto configure therequirer’s charmed application.
⚠️ Use of special characters
Try to avoid the special characters listed here for the
userandgroupin therequirer’s databag.
Relation Data¶
Provider¶
The provider provides LDAP URL, base DN, and bind DN, and LDAP
authentication method for the requirer to connect and perform LDAP operations.
It should be placed in the application databag.
Example¶
relation-info:
- endpoint: ldap
related-endpoint: ldap
application-data:
urls: [ldap://ldap.canonical.com:3893, ldap://ldap.ubuntu.com:3893]
base_dn: dc=canonical,dc=com
bind_dn: cn=app,ou=model,dc=canonical,dc=com
bind_password_secret: secret://59060ecc-0495-4a80-8006-5f1fc13fd783/cjqub6vubg2s77p3nio0
auth_method: simple
starttls: true
Requirer¶
The requirer provides LDAP client information. It should be placed in the
application databag.
Example¶
relation-info:
- endpoint: ldap
related-endpoint: ldap
application-data:
user: sssd
group: machine-localhost