我有一个 openLDAP,用于向各种服务器验证用户身份,每个用户可以访问不同数量的主机。我通过使用“host”属性和使用 LDAP 进行身份验证的计算机的 PAM 配置中的过滤器来解决该要求,例如在https://wiki.debian.org/LDAP/PAM)通过使用查询“(&(objectClass=posixAccount)(uid=$username)(|(host=$hostname)(host=$fqdn)(host=\*)))”)
现在我还需要向用户条目添加电子邮件属性,objectclass:inetOrgPerson 似乎是最合适的。
但是,我不能同时使用 objectclass:account 和 objectclass:inetOrgPerson;我可以使用 objectclass:posixAccount 和 objectclass:inetOrgPerson,如在中所述将 inetOrgPerson 添加到 account/posixAccount LDAP 条目,但随后我就失去了“主机”属性。
有人对如何解决这个问题有什么建议吗?“extensibleObject”是唯一的解决方法吗?
编辑:最后,我为此使用了 extensibleObject;感觉不像是“正确”的解决方案,因为它降低了模式检查的实用性,但它似乎是唯一合理的方法。
答案1
如果严格来说是 ssh,那么您可以使用AllowGroups
and/or 中的其同类ssh_config
。(注意:rfc2703bis 模式允许分组继承,至少使用sssd
,而 rfc2703 又名 nis 模式则不允许。)
否则,使用extensibleObject
,或者您可以将自己的模式写入 AUX 主机或将 SUP 写入 posixAccount。
您还可以使用 OpenLDAP 的访问控制,但我不会谈论其细节。