2011-08-30 113 views
6

我有一個使用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

回答

9

將整個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 
4

好吧,這裏是一個答案的開頭:

一旦你安裝了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

相關問題