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

mur*_*loq 7 active-directory openldap

我有一个使用Active Directory验证用户的Web应用程序,我正在尝试用OpenLDAP替换AD.

文档说我需要以管理员身份登录域控制器,打开用户管理窗口,单击相应的组织单位并将用户ID添加到适当的组(这些组的范围应为"Global",组类型为"Security" ).

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

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

mur*_*loq 11

将整个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 ) )
Run Code Online (Sandbox Code Playgroud)

然后,可以轻松创建用于插入用户和组的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
Run Code Online (Sandbox Code Playgroud)


JPB*_*anc 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
Run Code Online (Sandbox Code Playgroud)

2)本FAQ中解释的Modifiy模式文件

3)修改你的命名上下文(personaly我使用HDB作为后端)

database hdb
suffix "dc=dom,dc=com"
rootdn "cn=Manager,dc=dom,dc=com"
rootpw secret
directory /usr/local/var/openldap-hdb
Run Code Online (Sandbox Code Playgroud)

4)然后重新启动目录

B - 插入根

这是LDIF文件(root.ldif)

dn: dc=dom,dc=com
objectclass: dcObject
objectclass: organization
o: Company name
dc: dom
Run Code Online (Sandbox Code Playgroud)

这是命令行

ldapadd –x –D "cn=Manager,dc=dom,dc=com" -W –f root.ldif
Run Code Online (Sandbox Code Playgroud)

C - 插入用户

这是LDIF文件(user.ldif)

dn: cn=user1,dc=dom,dc=com
objectClass: inetOrgPerson
sn: users
cn: user1
telephoneNumber: 9999
Run Code Online (Sandbox Code Playgroud)

这是命令行

ldapadd –x –D "cn=Manager,dc=dom,dc=com" -W –f user.ldif
Run Code Online (Sandbox Code Playgroud)

D - 建议

Apache目录工作室,对我来说,非常好的LDAP浏览器,它的开源,它在Linux和Windows上的java顶部工作.使用它,您可以图形浏览AD和OpenLdap,只需单击即可执行B和C部分.


MSDN中记录了Active-Directory 架构(类和属性).例如,以下是有关groupType的信息.这是你期望的吗?