canaille-globuzma/demo/ldap-server.py

55 lines
1.1 KiB
Python
Raw Normal View History

import logging
2021-12-20 22:57:27 +00:00
import slapd
slapd = slapd.Slapd(
2020-11-15 17:32:03 +00:00
suffix="dc=mydomain,dc=tld",
root_cn="admin",
root_pw="admin",
port=5389,
log_level=logging.INFO,
schemas=(
"core.ldif",
"cosine.ldif",
"nis.ldif",
"inetorgperson.ldif",
2022-11-15 11:47:44 +00:00
"ldif/memberof-config.ldif",
"ldif/refint-config.ldif",
),
2020-11-15 17:32:03 +00:00
)
slapd.start()
try:
suffix_dc = slapd.suffix.split(",")[0][3:]
slapd.ldapadd(
"\n".join(
[
"dn: " + slapd.suffix,
"objectClass: dcObject",
"objectClass: organization",
"dc: " + suffix_dc,
"o: " + suffix_dc,
"",
"dn: " + slapd.root_dn,
"objectClass: applicationProcess",
"cn: " + slapd.root_cn,
]
)
+ "\n"
)
2022-11-15 11:47:44 +00:00
for ldif in (
"ldif/bootstrap-users-tree.ldif",
"ldif/bootstrap-oidc-tree.ldif",
2022-11-15 11:47:44 +00:00
):
with open(ldif) as fd:
try:
slapd.ldapadd(fd.read())
except RuntimeError:
pass
slapd.wait()
finally:
slapd.stop()