在 docker 上使用 bitnami/openldap 容器 - 如何创建 ACL 进行读写访问?

问题描述 投票:0回答:1

我目前正在努力使用 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。 非常感谢!

docker openldap bitnami
1个回答
0
投票

我的 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

我希望我的帖子有帮助。

干杯...皮迪

© www.soinside.com 2019 - 2024. All rights reserved.