我目前正在努力使用 bitnami 的 openldap docker 容器导入 ldap acls。例如,我想要对来自 ou=groups,dc=eample,dc=com 的组下的组 x 进行简单的读写访问。
我已经创建了一个管理员用户用于登录 phpldapadmin,我发现我需要 LDAP-Config 管理员来获得更高的权限。看起来像这样:
services:
openldap:
image: bitnami/openldap:2.6
container_name: openldap
environment:
- LDAP_ADMIN_USERNAME=admin
- LDAP_ADMIN_PASSWORD=admin
- "LDAP_ROOT=dc=example,dc=com"
- LDAP_CONFIG_ADMIN_ENABLED=yes
- LDAP_PORT_NUMBER=389
- BITNAMI_DEBUG=false
volumes:
- 'openldap_data:/bitnami/openldap'
- ./ldifs:/ldifs #exchange folder for import acls in this case
phpldapadmin:
image: osixia/phpldapadmin:latest
restart: always
container_name: phpldapadmin
environment:
- PHPLDAPADMIN_LDAP_HOSTS=openldap
- PHPLDAPADMIN_HTTPS=false
- LDAP_ENABLE_TLS=no
depends_on:
- openldap
volumes:
openldap_data:
driver: local
如果我尝试导入 acls,则会收到有关找不到 cn=config 或未通过身份验证的错误。配置用户的密码凭据应为 admin admin(示例)。
我尝试过的一个片段
dn: olcDatabase={1}mdb,cn=config 变更类型:修改 删除:olcAccess
添加:olcAccess olcAccess:{0}到 dn.subtree="ou=User,dc=example,dc=com" group.exact="ou=sec_assets,ou=User,dc=example,dc=com" 写入
也许有人可以向我解释如何使用非常简单的语法正确导入 acls。 非常感谢!
我的 bitnami openldap 容器(最新)默认使用 hdb 数据库。 因此,在检查正确的 dn 之后,我使用以下示例表达式来修改与 hdb 数据库相关的凭据:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=1001,cn=peercred,cn=external,cn=auth" manage by * none
opeldap 服务正在使用 uid 1001 运行。
您可以通过以下方式列出所有数据库及其 ACL:
ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(objectClass=olcDatabaseConfig)' olcAccess
我希望我的帖子有帮助。
干杯...皮迪