Mig*_*gol 27 comparison ldap active-directory openldap
这两种LDAP协议实现之间的主要差异是什么?对于异质环境哪个更好?有关此主题的任何好网站?
squ*_*ism 54
以下是我所知道的一些差异.OpenLDAP可以称为通用LDAP服务器,类似于许多其他供应商的LDAP服务器(Fedora DS 389,Oracle Internet Directory,IBM Tivoli Directory Server).Active Directory更适合Microsoft产品套件(即:运行Microsoft域).各有利弊.
OpenLDAP在安装后为空,没有结构(称为DIT).它甚至没有开箱即用的根条目.AD将提供基本结构,并且已准备好GUI工具以开始填充用户.OpenLDAP和其他人希望您手动创建DIT,因此您必须设计一个结构.因此,如果您的项目涉及到类似的内容,那么您必须计划将用户,组,角色放在哪里以及考虑ACL或分支委派.例如,您可能拥有widgets.com的域名.在AD中,发布的结构将如下所示:
+ dc=widgets,dc=com
|-- cn=Computers
|-- cn=Users
|-- cn=Groups
在OpenLDAP(或其他vanilla实现)中,您可以通过多种方式设计DIT.您可以遵循域组件(dc = foo,dc = bar)约定,也可以使用按地理区域组织的内容(o = foo,c = bar).这一点并不重要,但你应该选择其中一个.AD使用DC约定,但不提供选择,但其他LDAP服务器可以遵循任一约定.如果你想要适应一个大的MS域,我会坚持使用DC约定来保持一致性和易于集成.但是对于这个例子,我们假装我们公司组织(o)在一个国家(c)没有地区或单位(ou):
+ o=widgets,c=us
|-- cn=Machines
|-- cn=People
|-- cn=Groups
|-- cn=Roles
然后,您可以根据需要扩展架构.如果要扩展AD架构,AD将要求您通过Active Directory架构编辑器MMC控制台插件添加架构元素(创建自定义MMC).在那之后,它非常简单.首先定义属性,然后定义对象类.OpenLDAP要求您编写LDIF(首先需要属性,然后是对象类).或者将Apache Directory Studio与OpenLDAP一起使用,这是一个非常棒的GUI和管理工具,使OpenLDAP near-AD易于使用.
AD不允许您匿名查询389上的所有内容.如果要获取架构信息(称为目录),则必须在3289上进行查询并进行身份验证.这让我想起了LDAP的DIB与DIT隐藏,但我不知道AD是否试图在这里做同样的事情.
AD的默认查询限制为10,000.如果您想一次性吸取所有内容,则必须在客户端或代码中使用分页控件,或修改您正在搜索的域控制器上的默认查询限制.请注意,分页控件可能会有问题.我让他们使用Netscape库在java中工作,但是一些LDAP客户端似乎无法正常工作,即使他们声称它们支持分页控件(YMMV).
AD的身份验证有点奇怪.您可以通过电子邮件格式化用户名(-D username @ domain)进行身份验证,也可以使用完整的用户DN.如果有办法在OpenLDAP中执行此操作,我不知道该怎么做但我不会打扰.与其他LDAP服务器相比,这很奇怪.普通LDAP通常遵循DN格式(cn = username,cn = Users,o = widgets,c = us).
我想简而言之,AD是自以为是,OpenLDAP是通用的.因此,AD很容易站起来,但OpenLDAP可以更灵活.
And*_*ong 14
对于血源环境,您希望使用通用服务器,例如OpenLDAP.AD的优势通常在于它已经包含内部用户的用户帐户 - 这些帐户可以与单独的LDAP服务器保持同步,但这会增加复杂性.
至于协议的具体细节,Oracle虚拟目录的文档有一个非常好的总结.(OVD是一种可用于代理AD并将其一些怪癖转换为更标准接口的产品.):
http://download.oracle.com/docs/html/E10286_01/app_bundled_plugins.htm#CHDGDBBG
范围属性 Active Directory中的属性和具有超过1000个值的ADAM一次返回1000个名称,其中包含返回的值范围(或Windows 2003的1500).范围返回到形式的客户端:成员; 1-1000:someValue中为了获得下一个千项,客户端应用程序必须以某种方式知道重复查询和请求属性成员; 1001-2000.与其他目录产品相比,这要求应用程序以特殊方式处理Microsoft Active Directory.
密码更新 Microsoft Active Directory和ADAM对如何使用LDAP更新用户密码有特殊规则:
- 密码只能通过安全的SSL连接进行更新.
- 如果用户正在更新自己的密码,则原始密码必须包含在修改删除中,新密码是同一修改操作中的修改添加.
- 只有管理员可以在不知道以前密码的情况下重置用户的密码.
- Active Directroy不使用userPassword属性,它使用unicodePwd属性( 引用-UTF16-hex-padded-base64编码).
ObjectClass映射大多数LDAP目录对用户和组使用inetOrgPerson和groupOfUniqueNames对象类.Microsoft Active Directory使用具有特定于Microsoft的Active Directory NOS要求的属性的用户和组objectClasses.
这些是一些主要的,但还有其他的.