Ldap ACL 用户组/公司间隔离

正常情况下,登录一个 Ldap 用户,可以看到整个树形结构。但在一些情形下,我们希望如 dc=ali,dc=example,dc=com 仅能够被 “ali” 这个节点下的用户看到,而“dc=ali” 这个节点下的用户又仅能访问本节点下的信息,而无法看到如 dc=huawei 节点下的信息。即使 dc=baidu, dc=ali, dc=huawei 之间具有隔离性,各个公司仅能访问自己公司的节点下的 subtree, 而其他公司无法访问或是被访问。
因此要使用 Ldap 中的 ACL 进行控制,在此给出该情形的 ACL 示例。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v79dkZu4-1673233052114)(null)]

# acl.ldif 内容
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: to attrs=userPassword
  by dn="cn=admin,dc=example,dc=com" write
  by anonymous auth
  by self write
  by * none
olcAccess: to dn.regex="^cn=system_user,ou=system_user"
  by dn="cn=admin,dc=example,dc=com" write
  by * read
olcAccess: to dn.regex="dc=([^,]+),dc=example,dc=com$"
  by dn.regex="cn=system_user,ou=system_user,dc=$1,dc=example,dc=com" write 
  by dn.regex="dc=$1,dc=example,dc=com$" read
  by * none
olcAccess: to *
  by dn="cn=admin,dc=example,dc=com" write
  by anonymous auth
  by self write
  by * read

acl.ldif 内容解读:
内容中第一个 olcAccess 设置的密码规则;
第二个 olcAccess 设置的各个公司下的 cn=system_user,ou=system_user…不可更改 ,仅超管可改;
第三个 olcAccess 设置的各个公司用户隔离,仅看到本公司下的节点;
第四个 olcAccess 设置的所有属性的可见性,匿名用户隔离;

# 最后通过 ldapmodify 指令讲 acl 控制加载到 ldap 配置中
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f acl.ldif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值