LDIF用于在OpenLDAP中创建Active Directory用户和组?

时间:2011-08-30 21:28:27

标签: active-directory openldap

我有一个使用Active Directory对用户进行身份验证的Web应用程序,我正在尝试用OpenLDAP替换AD。

文档说我需要以管理员身份登录域控制器,打开用户管理窗口,单击相应的组织单位并将用户ID添加到适当的组(这些组应具有范围“全局”和组类型“安全性”)。

我需要在OpenLDAP服务器上创建等效条目。有人可以为此提供示例LDIF吗?我不知道类和我应该使用的属性,我无法访问域控制器。最有问题的项目似乎是组类型和范围,因为它们似乎是二进制值,而不是字符串。

请注意,我不想完全替换Active Directory - 我只需要用户ID和组。我已经尝试将microsoft.schema添加到OpenLDAP,但它不起作用。我找到了一些有关修改Microsoft Outlook架构的信息;我需要类似但更简单的东西。

2 个答案:

答案 0 :(得分:10)

将整个ActiveDirectory架构转换为OpenLDAP几乎是不可能的,这是巨大的。但是,我们只能添加所需的属性和类:

attributetype ( 1.2.840.113556.1.4.750 NAME 'groupType' 
   SYNTAX '1.3.6.1.4.1.1466.115.121.1.27' SINGLE-VALUE 
)

attributetype ( 1.3.114.7.4.2.0.33 NAME 'memberOf' 
    SYNTAX '1.3.6.1.4.1.1466.115.121.1.26' 
)

objectclass ( 1.2.840.113556.1.5.9 NAME 'user'
        DESC 'a user'
        SUP organizationalPerson STRUCTURAL
        MUST ( cn )
        MAY ( userPassword $ memberOf ) )

objectclass ( 1.2.840.113556.1.5.8 NAME 'group'
        DESC 'a group of users'
        SUP top STRUCTURAL
        MUST ( groupType $ cn )
        MAY ( member ) )

然后,可以轻松创建用于插入用户和组的LDIF文件:

dn: dc=myCompany
objectClass: top
objectClass: dcObject
objectClass: organization
dc: myCompany
o: LocalBranch

dn: ou=People,dc=myCompany
objectClass: top
objectClass: organizationalUnit
ou: People
description: Test database

dn: cn=Users,dc=myCompany
objectClass: groupOfNames
objectClass: top
cn: Users
member: cn=Manager,cn=Users,dc=myCompany

dn: cn=Manager,cn=Users,dc=myCompany
objectClass: person
objectClass: top
cn: Manager
sn: Manager
userPassword:: e1NIQX1tc0lKSXJCVU1XdmlPRUtsdktmV255bjJuWGM9

dn: cn=ReadWrite,ou=People,dc=myCompany
objectClass: group
objectClass: top
cn: ReadWrite
groupType: 2147483650
member: cn=sysconf,ou=People,dc=myCompany

dn: cn=sysopr,ou=People,dc=myCompany
objectClass: user
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: sysopr
sn: team
memberOf: cn=ReadOnly,ou=People,dc=myCompany
userPassword:: e1NIQX1jUkR0cE5DZUJpcWw1S09Rc0tWeXJBMHNBaUE9

答案 1 :(得分:6)


好的,这是答案的开头:

安装OPENLdap后

A - 将您的slapd.conf修改为:

1)修改包含的模式

include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetperson.schema

2)修改模式文件,如this FAQ

中所述

3)修改您的命名上下文(personaly I'am使用HDB作为后端)

database hdb
suffix "dc=dom,dc=com"
rootdn "cn=Manager,dc=dom,dc=com"
rootpw secret
directory /usr/local/var/openldap-hdb

4)然后重新启动目录

B - 插入根

这是LDIF文件(root.ldif)

dn: dc=dom,dc=com
objectclass: dcObject
objectclass: organization
o: Company name
dc: dom

这是命令行

ldapadd –x –D "cn=Manager,dc=dom,dc=com" -W –f root.ldif

C - 插入用户

这是LDIF文件(user.ldif)

dn: cn=user1,dc=dom,dc=com
objectClass: inetOrgPerson
sn: users
cn: user1
telephoneNumber: 9999

这是命令行

ldapadd –x –D "cn=Manager,dc=dom,dc=com" -W –f user.ldif

D - 建议

Apache directory studio,对我来说,是一个非常好的LDAP浏览器,它是开源的,它在Linux和Windows上的java上运行。使用它,您可以图形浏览AD和OpenLdap,只需单击即可执行B和C部分。


MSDN中记录了Active-Directory Schema (Classes and attributes)。例如,以下是有关groupType的信息。这是你期望的吗?