我有一个使用Active Directory对用户进行身份验证的Web应用程序,我正在尝试用OpenLDAP替换AD。
文档说我需要以管理员身份登录域控制器,打开用户管理窗口,单击相应的组织单位并将用户ID添加到适当的组(这些组应具有范围“全局”和组类型“安全性”)。
我需要在OpenLDAP服务器上创建等效条目。有人可以为此提供示例LDIF吗?我不知道类和我应该使用的属性,我无法访问域控制器。最有问题的项目似乎是组类型和范围,因为它们似乎是二进制值,而不是字符串。
请注意,我不想完全替换Active Directory - 我只需要用户ID和组。我已经尝试将microsoft.schema添加到OpenLDAP,但它不起作用。我找到了一些有关修改Microsoft Outlook架构的信息;我需要类似但更简单的东西。
答案 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的信息。这是你期望的吗?