문제가 또 있다.
1. 사용자의 초기 비번은 어떻게 할 것인가?
2. 국어로 된 설명은 어떻게 달 것인가? (특히 이름)
1. 비번은 unicodPwd 속성에 의해 지정될 수 있다. 덤프될 때는 출력되지 않겠죠 -_-;;
2. 국어로 된 설명을 달고 덤프를 해보면 다른 항목은 콜론(:)이 하나인데, 이녀석은 유독 콜론이 두개로 붙는다.
둘 다 유니코드로 되어있다는 공통점이 있다...
Base64인코딩을 하게 되어있음.
비번은 MD4인지 MD5 해쉬가 되고
이런 식이면 간단하게 ldif파일을 생성할 수 없는데 ㅠ.ㅠ;;
2번은 해결되었다. 콜론을 한개로 한 다음 유니코드로 설명을 단다. (euc-kr인코딩으로 하면 낭패)
비번번도 비슷하게 될까? 안됨: unwilling이 뜬다.
유저마다 초기 비번을 다르게 할 일이 있나?...
그렇지 않다면...
간단한 php함수를 사용해보자.
http://forums.devshed.com/ldap-programming-76/modifying-active-directory-passwords-through-php-and-iis-74683.html 에서 발췌한 것에 의하면...
$user['unicodePwd'] = "{md5}".base64_encode(pack("H*",md5($_POST['newpassword'])));
대충 PHP표준함수로 생성 가능하군 -_-!
md5과정을 거치지 않으면 그게 유니코드로 된 설명이 되는 것이고...
--- modify.ldif ---
dn: CN=ssanzing2,OU=2005,OU=NormalUsers,DC=DOMAIN,DC=xxx,DC=ac,DC=kr
changetype: modify
replace: unicodePwd
unicodePwd:: MhgPkQOFfaRZVyf9vbnRyiD8E0A==
ldapmodify -f modify.ldif를 쓰는데...
안된다 -_-
ldap_modify: Server is unwilling to perform (53)
additional info: 0000001F: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0
왜일까:http://support.microsoft.com/default.aspx?scid=kb;en-us;263991
SSL을 써야 하기 때문 (-_-)
나름대로 보안에 신경을 썼으나 불편하군 ㅜ.ㅠ;;
할 수 없이(?) 윈도우쪽에서 일을 처리하자. 필자는 되도록 간단한 것을 선호한다 ㅠ.ㅠ;;
dsmod명령이다.
> dsmod user "CN=ssanzing2,OU=20
05,OU=NormalUsers,DC=BUILTIN,DC=xxx,DC=ac,DC=kr" -pwd 초기비번
이 정도야 뭐... 커맨드라인 백엔드가 있으니 이를 이용하는 프로그램/매크로을 짜는 것을 금방이겠다. 매크로 프로그램은 Automate 추천 ㅡㅡㅋ