LDAP - 如何使用 objectclass:account 和 objectclass:inetOrgPerson 的属性?

LDAP - 如何使用 objectclass:account 和 objectclass:inetOrgPerson 的属性?

我有一个 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,那么您可以使用AllowGroupsand/or 中的其同类ssh_config。(注意:rfc2703bis 模式允许分组继承,至少使用sssd,而 rfc2703 又名 nis 模式则不允许。)

否则,使用extensibleObject,或者您可以将自己的模式写入 AUX 主机或将 SUP 写入 posixAccount。

您还可以使用 OpenLDAP 的访问控制,但我不会谈论其细节。

相关内容