Source code for canaille.backends.ldap.configuration

from pydantic import Field

from canaille.app.configuration import BaseModel


[docs] class LDAPSettings(BaseModel): """Settings related to the LDAP backend. Belong in the ``CANAILLE_LDAP`` namespace. """ URI: str = Field( "ldap://localhost", examples=["ldap://localhost", "ldaps://ldap.example.org"] ) """The LDAP server URI.""" ROOT_DN: str = "dc=example,dc=org" """The LDAP root DN.""" BIND_DN: str = "cn=admin,dc=example,dc=org" """The LDAP bind DN.""" BIND_PW: str = "admin" """The LDAP bind password.""" TIMEOUT: float = 0.0 """The LDAP connection timeout.""" USER_BASE: str = Field(..., examples=["ou=users,dc=example,dc=org"]) """The LDAP node under which users will be looked for and saved. For instance `ou=users,dc=example,dc=org`. """ USER_CLASS: list[str] = ["inetOrgPerson"] """The object class to use for creating new users.""" USER_RDN: str = "uid" """The attribute to identify an object in the User DN.""" GROUP_BASE: str = Field(..., examples=["ou=groups,dc=example,dc=org"]) """The LDAP node under which groups will be looked for and saved. For instance `"ou=groups,dc=example,dc=org"`. """ GROUP_CLASS: str = "groupOfNames" """The object class to use for creating new groups.""" GROUP_RDN: str = "cn" """The attribute to identify an object in the Group DN.""" GROUP_NAME_ATTRIBUTE: str = "cn" """The attribute to use to identify a group."""