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

问题描述:

我有一个使用Active Directory来验证用户的Web应用程序,我试图用OpenLDAP替换AD。用于在OpenLDAP中创建Active Directory用户和组的LDIF?

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

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

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

+0

你能更明确。你需要LDIF脚本,所以它是编程,所以我不投票结束这个问题,但它不是那么明确。您真正想做什么,将用户从AD迁移到OpenLDAP?用LFIF添加新用户到OpenLDAP?你告诉过一个文件哪一个(你可以编辑你的问题并把链接?)。另一个问题为什么OpenLDAP能够知道ADAM(AD like)在Windows上运行并且是免费的? – JPBlanc

+0

我需要使用Active Directory使用的相同方案(类,属性)在OpenLDAP中创建新用户和组(不从AD迁移它们)。我无法提供我提到的文件 - 它是专有的。我知道ADAM,但我无法使用它(该解决方案应该是基于Linux的)。感谢您的关注。 – muriloq

将整个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 


好吧,这里是一个答案的开头:

一旦你安装了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)Modifiy模式文件作为this FAQ

3)修改您的命名上下文(说明本人来说我'使用HDB作为后端)

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

4)然后重新启动目录

乙 - 插入你的根

下面是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 

Ç - 插入用户

这里是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浏览器,它是开源的,它适用于Java在Linux和Windows上。使用它你可以浏览AD和OpenLdap,只需点击B和C部分。


活动目录Schema (Classes and attributes)记录在MSDN中。例如,这里有关于groupType的信息。这是你期望的吗?

+0

谢谢,但您只给出了设置OpenLDAP的通用说明 - 我已经这样做了(并且我正在使用Apache Directory Studio)。我需要知道的是如何以AD的特定方式创建用户和组。例如,组类型和组作用域属性不是简单的字符串“安全”和“全局”,它们使用长数字常量(我没有)。 – muriloq

+0

我编辑我的答案,但我不确定明白你的期望。 – JPBlanc