2.2. 在目录服务器中安全地使用角色
在创建新角色时,请考虑用户是否可以从角色中轻松添加或删除自己。例如,您可以允许 Mountain Biking 相关组角色的用户轻松添加或删除自己。但是,您必须不允许分配了 marketing 角色的用户从角色中添加或删除自己。
一个潜在的安全风险是通过激活角色来激活用户帐户。Inactive 角色为其后缀定义了特殊的访问控制指令(ACI)。如果管理员允许用户自由地从角色中添加和删除自己,则这些用户可以从非活动角色中删除自己,以解锁其帐户。
例如,用户被分配一个受管角色。当 Directory 服务器使用帐户取消激活锁定此受管角色时,用户无法绑定到服务器,因为目录服务器为该用户计算 nsAccountLock 属性为 true。但是,如果用户已经绑定到目录服务器,且现在通过受管角色锁定,用户可以从其条目中删除 nsRoleDN 属性,并在没有指定限制 ACI 时解锁他自己。
要防止用户删除 nsRoleDN 属性,请根据角色类型使用以下 ACI:
受管角色.对于属于受管角色成员的条目,请使用以下 ACI:
aci: (targetattr="nsRoleDN") (targattrfilters= add=nsRoleDN:(!(nsRoleDN=cn=AdministratorRole,dc=example,dc=com)), del=nsRoleDN:(!(nsRoleDN=cn=nsManagedDisabledRole,dc=example,dc=com))) (version3.0;acl "allow mod of nsRoleDN by self but not to critical values"; allow(write) userdn=ldap:///self;)-
过滤的角色。保护作为过滤器一部分的属性(
nsRoleFilter)。不要允许用户添加、删除或修改过滤角色使用的属性。如果 Directory 服务器计算 filter 属性的值,则必须保护可修改此过滤器属性值的所有属性。 - 嵌套角色。嵌套角色可以包含过滤和管理的角色。因此,您必须为嵌套角色包含的角色的每个属性限制 ACI 中的修改操作。