为什么 objectClass 在 LDAP 服务器之间不同
Why objectClass is different between LDAP servers
我正在尝试编写一个应用程序,将来自多个 LDAP 服务器的用户同步到一个数据库中。我试图编写一个代码,从给定的 basedn 中查找服务器中的所有组。但后来我注意到 objectClass 值在 LDAP 服务器之间是不同的。
例如,OpenLDAP 使用 objectClass=posixgroup 来标识一个组,而 AD 使用 objectClass=group。试图找到为什么没有这方面的标准,但找不到。
除了为每个服务器类型配置它之外,是否有办法识别该服务器用于组的 objectClass 名称的值?
对此没有唯一的答案。对于 OpenLDAP 和许多其他情况,这取决于您使用的模式。我在 OpenLDAP 中对组使用 groupOfUniqueNames
,对角色使用 organizationalRole
,还有其他选择。
OpenLDAP 不 使用objectClass=posixgroup
来识别组。事实上,是连接到目录服务器的服务使用或不使用特定的模式。目录服务器本身是无意识的(或者至少从 LDAP 的角度来看——Active Directory 比 LDAP 做的更多)。
在 POSIX 系统上,例如Linux 很明显 posixgroup
被许多服务使用,同样 group
class 是 Windows 特定的。许多服务允许自定义在目录中搜索信息的方式,即您可以根据您的模式调整它们的配置。
因此,虽然您可以使用技巧来处理这两种情况,但如果您想真正确定使用了哪种模式,您有两个选择:
- 识别正在使用该目录的服务并查找它们
- 向服务器查询它支持的模式。通常这些也是在使用的(至少 'somebody')。例如,在我的 OpenLDAP 服务器上,我只包含按需提供的模式。因此,在此服务器上,您会找到
posixgroup
架构。但是我怀疑您是否会在典型的 Active Directory 服务器上找到它(但您会发现 group
)。 Schemata 具有世界唯一的对象 ID,因此您可以测试特定 ID 的存在以确保 group
确实是您知道的 group
。
我正在尝试编写一个应用程序,将来自多个 LDAP 服务器的用户同步到一个数据库中。我试图编写一个代码,从给定的 basedn 中查找服务器中的所有组。但后来我注意到 objectClass 值在 LDAP 服务器之间是不同的。
例如,OpenLDAP 使用 objectClass=posixgroup 来标识一个组,而 AD 使用 objectClass=group。试图找到为什么没有这方面的标准,但找不到。
除了为每个服务器类型配置它之外,是否有办法识别该服务器用于组的 objectClass 名称的值?
对此没有唯一的答案。对于 OpenLDAP 和许多其他情况,这取决于您使用的模式。我在 OpenLDAP 中对组使用 groupOfUniqueNames
,对角色使用 organizationalRole
,还有其他选择。
OpenLDAP 不 使用objectClass=posixgroup
来识别组。事实上,是连接到目录服务器的服务使用或不使用特定的模式。目录服务器本身是无意识的(或者至少从 LDAP 的角度来看——Active Directory 比 LDAP 做的更多)。
在 POSIX 系统上,例如Linux 很明显 posixgroup
被许多服务使用,同样 group
class 是 Windows 特定的。许多服务允许自定义在目录中搜索信息的方式,即您可以根据您的模式调整它们的配置。
因此,虽然您可以使用技巧来处理这两种情况,但如果您想真正确定使用了哪种模式,您有两个选择:
- 识别正在使用该目录的服务并查找它们
- 向服务器查询它支持的模式。通常这些也是在使用的(至少 'somebody')。例如,在我的 OpenLDAP 服务器上,我只包含按需提供的模式。因此,在此服务器上,您会找到
posixgroup
架构。但是我怀疑您是否会在典型的 Active Directory 服务器上找到它(但您会发现group
)。 Schemata 具有世界唯一的对象 ID,因此您可以测试特定 ID 的存在以确保group
确实是您知道的group
。