Active Directory是否真的符合LDAP标准?

Mik*_*oss 6 ldap active-directory

我正在开发一个产品插件(一个RMS),允许客户将存储在其LDAP目录中的员工信息导入到我们应用程序中的相应Person记录中.

我们的RMS允许个人记录具有多个名称和地址(它是一个公共安全系统:此功能用于支持具有AKA和多个已知地址的人员).由于软件的性质,我们认为如果LDAP服务器支持,从LDAP中提取多个名称和地址非常有用.

我的印象是Active Directory会支持这一点,但它根本不显示.例如,看看RFC 2256,第5.41和5.42节,很明显这givenName是一个多值字段(即语法没有指定SINGLE-VALUE,RFC 2252声明"多值"是默认值).这同样适用于cn,sn,streetAddress,和大多数其他任何"标准"的属性,我懒得抬一下.

微软自己的文档似乎表明它们符合RFC 2256:

目前,Windows 2000 Active Directory通过支持以下RF​​C达到LDAP合规性.

[RFC 2256随后列在各种"支持的"RFC中,标题为"核心LDAP要求 - RFC 3377"]

RFC 3377声明RFC 2256确实是8个RFC集合的一部分,它们共同构成了LDAPv3的完整技术规范.

我很困惑:不会遵循标准属性的实际建议语法,例如givenNameet al.构成"违规"?

此外,是否有人在连接和查询Active Directory与其他目录服务器(OpenLDAP,eDirectory等)之间有明确的差异列表?这是一个VB6应用程序,所以我一直在使用ADSDSOObjectADODB提供程序.起初,我以为我可以只写相同的代码对任何目录服务器,并将它作为我用的是标准的属性,只要工作,但很明显,如果相同的属性定义为他人在一些实现单值和多值,我我将不得不编写代码来处理这种情况.

我开始怀疑这是否是为什么这么多具有​​某种"LDAP集成"的应用程序通常具有完全独立的"Active Directory"设置页面,然后是"每个其他LDAP服务器"的设置的原因之一t Active Directory"......

Joh*_*lla 2

“遵守”标准的问题在于,很少有实体或软件在所有可能的方面真正 100% 符合标准。相反,在缺乏某些指导方针或规则的情况下,使用短语“合规”通常意味着实施实体认为该软件满足规范的主要内容。

例如,以 CSS Level 2 为例。当今大多数现代浏览器都会声称“兼容 CSS 2”,但并非每个此类浏览器都实现 100% 的规范。尽管如此,用户可能会发现在很大一部分情况下渲染体验大致相同。因此,合规性往往由以下各项的组合来表示:

  • 实施者的声明(例如,Mozilla 发布声明称 Firefox 3.5 符合 CSS 2)
  • 第三方测试(例如 Acid 测试)

AD 和 LDAP“合规性”的方式与此大致相同。您链接的文档暗示不存在任何合规性或一致性指令,因此 Microsoft 在此采取了(合理的,IMO)立场:“供应商声明与第三方测试套件相结合是最合适的替代方案”。从本质上讲,这意味着如果 Exchange 和其他声称 LDAP 合规性的实体通过了衡量标准合规性的测试,那么它们实际上是合规的。

  • 与此形成对比的是,LDAP 市场中的其他大公司似乎都以正确的方式做事,或者至少比 Microsoft 更准确地实施规范。它让人想起“此页面最好使用 Internet Explorer 查看”的日子。 (3认同)