OpenDS から Active Directory へのオブジェクト クラス定義の移行で行き詰まりました。私はすでにいくつかの定義を正常に移行しました(そして、Java アプリケーションで AD に読み書きできます) - しかし、今は行き詰まっています。
私の OpenDS スキーマの説明には、次のようなものがあります。
objectClasses: ( 1.3.6.1.4.1.99.2
NAME 'myNewClass'
SUP top STRUCTURAL
MUST ( myAttribute1 $ myAttribute2 $ myAttribute3 )
MAY someOtherAttribute
)
これを次のような AD スキーマ構文に変換しました。
# Class: myNewClass
dn: cn=myNewClass,cn=Schema,cn=Configuration,dc=X
changetype: add
objectClass: classSchema
governsID: 1.3.6.1.4.1.99.2
ldapDisplayName: myNewClass
adminDisplayName: myNewClass
objectClassCategory: 0
systemOnly: FALSE
# subclassOf: top
subclassOf: 2.5.6.0
# rdnAttId: myAttribute1
rdnAttId: 1.3.6.1.4.1.99.1
# mustContain: myAttribute2
mustContain: 1.3.6.1.4.1.99.2
# mustContain: myAttribute3
mustContain: 1.3.6.1.4.1.99.3
# mayContain: someOtherAttribute
mayContain: 1.3.6.1.4.1.99.4
# possSuperiors: organizationalUnit
possSuperiors: 2.5.6.5
# defaultObjectCategory: myNewClass
defaultObjectCategory: cn=myNewClass,cn=Schema,cn=Configuration,dc=X
しかし、クラス myNewClass のオブジェクトを書き込もうとすると、次の例外が発生します。
javax.naming.InvalidNameException: "myAttribute1=Read+myAttribute2=Allow+myAttribute3=cn\=someResource": [LDAP: error code 34 - 0000208F: LdapErr: DSID-0C090715, comment: Error processing name, data 0, v1db1 ];
問題は rdnAttId にあると思います。これは、AD では不可欠であると思われます (OpenDS ではそうではありません)。単一の値にしか設定できません (したがって、myAttribute1 を選択しました)。
どうする?