用于在 Ping Federate 中获取用户组的 OpenLDAP 搜索过滤器

OpenLDAP search filter to get groups of a user in Ping Federate

我能够获取用户所属的用户组。只有当用户被分配到一个组时我才能得到这个。我正在使用以下搜索过滤器来获取组:

&(objectClass=groupOfNames)(member=cn=${username},ou=Users,dc=example,dc=com)

此过滤器在 openLDAP ldapsearch 中完美运行。但是在 Ping federate 中,当我尝试为用户获取超过 1 个组时,它给了我空值。

请告诉我是否有任何其他方法可以实现。

谢谢, 阿斯维尼 J

不幸的是,这不可能使用 OpenLDAP,因为您的过滤器 returning 超过 1 个对象(多个组,每个组都有一个唯一的 DN)。如果您查看 OpenLDAP 日志,很可能 return 向 PingFederate 发送 "sizelimit exceed" 消息,因为 PF 明确指示 LDAP 服务器仅 return 1 个对象。这是将 PingFederate 与 Active Directory 以外的目录和 returning 组列表一起使用时的常见问题。您可以在此处查看有关此类错误的更多信息 -

https://ping.force.com/Support/PingIdentityArticle?id=kA340000000GsD6CAK

如果 OpenLDAP 能够以类似于 AD 的方式管理组和组成员资格,您应该能够 return 组列表到 PingFederate,就像您尝试做的那样。