将属性/对象定义导入Active Directory(AD LDS)

时间:2014-06-19 15:33:26

标签: active-directory ldif opends

目前我正在使用OpenDS并且必须迁移到Active Directory(AD LDS)。

我有一些在OpenDS / config / schema目录中的.ldif文件中定义的自定义属性/对象,如下所示:

attributeTypes: ( 1.3.6.1.4.1.99.1
  NAME 'myNewAttribute'
  DESC 'some text'
  EQUALITY caseIgnoreMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE
  )

objectClasses: ( 1.3.6.1.4.1.99.2
  NAME 'myNewClass'
  SUP top STRUCTURAL
  MUST ( person $ myNewAttribute )
  MAY someOtherAttribute
  )

不幸的是ldifde不理解这种格式,所以我使用ADSI Edit逐个手动导入我的定义(很麻烦!) - 但遇到了一些问题:

  • 似乎AD只支持少数不同的SYNTAX定义,如2.5.5.12。如何将1.3.6.1.4.1.1466.115.121.1.15之类的内容映射到AD?

  • oMSyntax:似乎是AD特定的,并且其他LDAP世界都不知道。 oMSyntax与attributeSyntax结合似乎定义了AD世界中的数据类型。

  • 像ADALITY这样的东西似乎在AD中完全丢失了!如何处理?

问题:是否有工具将具有属性/对象定义的LDIF文件转换为MS / AD / ldifde理解的格式?

或者更一般的问题:将属性/对象定义从OpenDS,OpenLDAP等迁移到Microsoft世界的最佳做法是什么?

1 个答案:

答案 0 :(得分:2)

欢迎使用Diretories兼容性世界。首先是以下语法:

attributeTypes: ( 1.3.6.1.4.1.99.1
  NAME 'myNewAttribute'
  DESC 'some text'
  EQUALITY caseIgnoreMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  SINGLE-VALUE
  )

不是LDIF语法。它是Netscape中使用的语法,如目录,用于指定Schema(OpenLDAP,Ex Sun目录服务等)。只要您想在Active Directory中引入新属性和类,就可以使用以下三种方法之一来实现:

  • Manualy使用常见的ADSIEDIT.MSC(我从不这样做):

ADSIEDIT Active-Directory Schema Editor

  • 使用特定的Active Directory Scema Editor MMC(Microsoft管理控制台)

这是我在开发阶段使用的方式。

MMC.EXE -> File -> Open Component -> Active Directory Schema

如果您使用的是旧服务器,则此MMC仅可用于录制Active X组件:

Regsvr32 c:\windows\system32\schmmgmt.msc

MMC Active-Directory Schema Editor

这种方式更容易,它是我在开发虚拟机上使用的方式来创建我的属性,然后使用LDIFDE.EXE工具导出LDIF描述以清除它(删除系统属性)并导入它在生产服务器上。

  • Programaticaly使用LDIF

以下是属性

的LDIF语法示例
dn: CN=SlxChapitres,CN=Schema,CN=Configuration,DC=XXXX
changetype: add
objectClass: top
objectClass: attributeSchema
cn: SlxChapitres
distinguishedName: CN=SlxChapitres,CN=Schema,CN=Configuration,DC=XXXX
instanceType: 4
attributeID: 1.3.6.1.4.1.10558.2.1.6
attributeSyntax: 2.5.5.4
isSingleValued: FALSE
showInAdvancedViewOnly: TRUE
adminDisplayName: SlxChapitres
oMSyntax: 20
lDAPDisplayName: SlxChapitres
name: SlxChapitres
objectCategory: CN=Attribute-Schema,CN=Schema,CN=Configuration,DC=XXXX

此代码 LDIF,我可以使用LDIDE.EXE程序注入DC=XXXX语法,允许我使用LDIFFDE的-c DNSrc DNTarget .EXE程序选项,将其定位到正确的DN。

  • 就语法和匹配规则而言,我认为Active-Directory 不是那么标准。 Microsoft在这些概念之间使用了一种组合来给出一个他们称之为语法的东西。无论何时创建新属性,都必须指定其语法。要在21个语法的总集中唯一标识语法,必须指定2条信息:语法的OID和所谓的OM语法。必须将这对值设置在一起并与Mictosoft documention正确关联。