0

JNDI プログラムを使用して、Active Directory の別のグループにグループを追加しようとしています。そうすると、次のエラーが表示されます

[LDAP: エラー コード 53 - 00002142: SvcErr: DSID-031A0FC0、問題 5003 (WILL_NOT_PERFORM)、データ 0

私が使用しているコードスニペットは以下のとおりです

  1. グループ属性の設定

Attributes attrs = new BasicAttributes(true);
attrs.put("objectClass","group")
attrs.put("description","A test group");

  1. グループを別のグループに追加する

try{
    ModificationItem member[] = new ModificationItem[1];
    member[0]= new ModificationItem(DirContext.ADD_ATTRIBUTE, new BasicAttribute("member", groupDN)); 

ctx.modifyAttributes(grpDN,member);
 System.out.println("Added group to group: " + grpDN);

}catch (NamingException e) { System.err.println("Problem adding group to group: " + e); }

ほぼ同じタイプのコード (以下) を使用して、ユーザーをグループに追加できます。

  1. ユーザー属性の設定

// Create attributes to be associated with the new user
Attributes attrs = new BasicAttributes(true); 
attrs.put("objectClass","user");
attrs.put("samAccountName","Perry");
attrs.put("cn","Perry");

attrs.put("givenName","Perry"); attrs.put("sn","Perry"); attrs.put("displayName","Perry Peterson"); attrs.put("description","Research Engineer");

int UF_ACCOUNTDISABLE = 0x0002; int UF_PASSWD_NOTREQD = 0x0020; int UF_PASSWD_CANT_CHANGE = 0x0040; int UF_NORMAL_ACCOUNT = 0x0200; int UF_DONT_EXPIRE_PASSWD = 0x10000; int UF_PASSWORD_EXPIRED = 0x800000;

attrs.put("userAccountControl",Integer.toString(UF_NORMAL_ACCOUNT + UF_PASSWD_NOTREQD + UF_PASSWORD_EXPIRED+ UF_ACCOUNTDISABLE));

  1. ユーザーをグループに追加する

try{
    ModificationItem member[] = new ModificationItem[1];
    member[0]= new ModificationItem(DirContext.ADD_ATTRIBUTE, new BasicAttribute("member", userDN)); 

ctx.modifyAttributes(groupDN,member);
System.out.println("Added user to group: " + groupName);
}catch (NamingException e){
    System.err.println("Problem adding user to group: " + e);

}

ここで私が間違っていることを知っている人はいますか、それともユーザーの場合のようにグループに設定する必要がある属性がありますか? JNDI クライアントとサーバーの間に SSL 接続があり、ユーザー パスワードを正常にリセットできます (SSL が存在しない場合はできません)。

以前に作成したグループが適切に作成されていないために、これが発生していると思われます

よろしく

ペリー

4

1 に答える 1