내 사용자는 inetOrgPerson 입니다. 사용자를 활성화/비활성화하는 속성은 무엇입니까? 저는 JNDI 라이브러리를 사용하고 있으며 Active Directory용인 이 코드를 시도하고 있는데 LDAP: error code 17 - userAccountControl: attribute type undefine이 표시됩니다. 속성을 넣으려고 하면.put("userAccountControl","0x0001"); 사용자를 생성하는 동안 동일한 오류가 발생합니다.
어떤 아이디어?
public void disableEnableUser(String user) throws Exception {
ModificationItem[] mods = new ModificationItem[1];
//To enable user
//int UF_ACCOUNT_ENABLE = 0x0001;
//mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("userAccountControl",Integer.toString(UF_ACCOUNT_ENABLE)));
// To disable user
int UF_ACCOUNT_DISABLE = 0x0002;
mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("userAccountControl",Integer.toString(UF_ACCOUNT_DISABLE)));
connection.modifyAttributes("path to user", mods);
}
답변1
userAccountControl
AD 속성이므로 openldap에서는 찾을 수 없습니다(inerOrgPerson의 정의) 이 없습니다 userAccountControl
. 사용자를 잠그려면 다른 방법을 사용해야 합니다.
한 가지 가능성은 암호 정책(ppolicy) 오버레이를 사용하는 것입니다. ppolicy는 pwdAccountLockedTime
"00000101000000Z"로 설정된 경우 관리 잠금을 나타내는 속성을 정의합니다. 이것이 작동하려면 LDAP 트리에 ppolicy를 포함해야 합니다. 이는 기본적으로 파일 ldapadd
에 대한 정책을 의미합니다 ppolicy.ldif
.
또 다른 가능성은 사용자의 비밀번호를 잠금을 나타내는 비밀번호로 변경하는 것입니다. 예를 들어, {SSHA}
비밀번호의 접두어를 로 변경하면 {SSHA}!
사용자가 잠겨 있는지 쉽게 나타낼 수 있습니다. 보너스로 추가 오버레이가 필요하지 않으며 사용자가 로그인하는 것도 방지합니다.