- - PR -
Active DirectryにLDAPでアカウント作成、パスワードがセットできない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-10-07 04:50
いつもお世話になってます。
現在WEBをつかっていろいろなActive Directryにユーザーアカウントをつくる ASPをつかおうとしてます。 Robbie Allen著のMAnaging Enterprise Active Directry Service のVBScriptのサンプルコードをつかってテストしてますが、パスワードの設定でうまくいきません ユーザーアカウントは正常に作成され、情報もはいるのですが パスワードの設定に失敗して結局、 アクティブヂィレクトリのツールで初期パスワードを設定しなおさなければならず 困ってます。 どうしたら、パスワードの初期設定がうまくいくでしょうか? またパスワードの初期設定がうまくいってないのでASP上では アカウントの有効化も失敗しております。 ただアクティブヂィレクトリのツール上では有効になってますが もちろん、アクティブヂィレクトリのツール上でパスワードを初期化するまで はログインすることができません。 なにかヒントがありましたらどうか教えてください =====テストASPコード======= <%@LANGUAGE="VBSCRIPT" CODEPAGE="932"%> <% On Error Resume Next new_user= "Taro.Yamada" dim user, passwd, new_user user="Admin@MYCOMP.COM" passwd="AdminPass" Dim ldapObj, contADsPath, contObj set ldapObj = GetObject("LDAP:") contADsPath = "LDAP://AD.MYCOMP.COM:389/OU=Users,OU=Kanagawa,DC=MYCOMP,DC=COM" Set contObj = ldapObj.OpenDsObject(contADsPath,user,passwd,1) Set usrObj = contObj.Create("user","CN="&new_user) usrObj.Put "sAMAccountName",new_user usrObj.Put "userPrincipalName", new_user & "@MYCOMP.COM" usrObj.Put "mail", new_user & "@MYCOMP.COM" usrObj.Put "givenName", "Taro" usrObj.Put "sn", "Yamada" usrObj.Put "displayName", "Taro Yamada" usrObj.SetInfo If Err.Number Then %> Error Creating User<br> <% Else %> User Created<br> <% End If usrObj.SetPassword(new_user) If Err.Number then %> Password Set Error<br> <% else %> Password Set<br> <% end if usrObj.Put "pwdLastSet", 0 usrObj.SetInfo If ErrNumberr then %> Counter Reset Error<br> <% else %> Counter OK<br> <% END if usrObj.AccountDisabled = false usrObj.SetInfo if Err.Number then %> アカウント有効失敗<br> <% else %> アカウント有効成功<br> <% end if %> |
|
投稿日時: 2004-10-07 08:11
自己レスです。
パスワードの設定部分をあとにして、アカウント有効化だけをさきにやってみました。 相変わらずパスワードは設定ぜきません。 ちなみに環境はWindows2000 アクティブヂィレクトリにWindows2003のIIS6.0 でうごいているASPからLDAPの386でアクセスしてます あいかわらず初期パスワードは設定できませんがブランクパスワードとして アカウント自体は起動して初期パスワードが設定されていないという以外は すべてうまくいってます。もともとJAVAのJINIでつくりこんで JSPやサーブレットなどと連携させようとおもってたのですが アクティブヂィレクトリのハッシュ暗号の仕様は非公開だそうなので ASPを選んでみましたがこれだとあまりかわらないですね。 .NETがらみに投稿もよんでいますがいまいちヒントがつかめません ASPもしくはVBで別マシンからアクセスしてパスワードまで設定成功している ようでしたらどうかヒントを教えてください よろしくお願いいたします |
|
投稿日時: 2004-10-07 09:33
たけたんさんこんにちは。
私の持っている環境でやると、アカウントが無効になっていますが、 パスワードの設定はできているようです。 # 有効化する方法はお持ちのようなのでそれをすればいいんですよね? クライアントからログオンするとパスワードの変更を求められますし、 そのダイアログで入力する古いパスワードはスクリプトで設定した パスワードでした。 開示されているスクリプトで変更したのはパスワードがユーザー名と 同一(変数)でしたのでそこを"password"という感じで変更したのと ドメインを替えたくらいです。 私なら、同等のことをやるのにLDAPではなくWinNT名前空間使います。 そちらは検討できないのでしょうか。 # WinNT名前空間使うならサンプルも結構転がっていると思いますよ。 的外れならごめんなさい。 以上 |
|
投稿日時: 2004-10-07 15:43
ゆいたんさん
情報ありがとうございます。 確かにWinNT空間でやろうとしていますが、いろいろしらべると 例のコードのようにサイトごとにユーザーをふりわけることができない ようなのでLDAPをつかったしだいです。 WinNTだとドメインの直下にユーザーがくるのですが ADの構造だと、ドメインの下に組織をいれて、管理できたのが魅力でした。 すこしWinNTの空間でやってみます。ありがとうございました。 .NETでもLDAPでアクセスした場合のINVOKE関数 かなにかでやるパスワード設定はくせもののようで、明確な答えがなく MSではバグとかいってました(ただSP3で修正されているので私の環境では 原因とはかんがえられないのですが) できるかどうかわかりませんが、 LDAPでオブジェクトをつくってWInNT空間でアクセスしなおして パスワードだけ再設定できるかやってみます ありがとうございました。 ちなみにゆいたんさんのうまくいった環境(Active Directry) はどのような環境でしょうか? ASPはActive DIRECTRYとは別マシンで実行されましたでしょうか? 質問ばかりですみません。 |
|
投稿日時: 2004-10-07 21:00
> 例のコードのようにサイトごとにユーザーをふりわけることができない > ようなのでLDAPをつかったしだいです。 OUを振り分けることはLDAP名前空間でないと確かにできないかもしれないですね。 > ちなみにゆいたんさんのうまくいった環境(Active Directry) > はどのような環境でしょうか? ActiveDirectoryはWindows2000ServerSP4です。 ASPを実行したIISは普段使っているクライアントのWindows2000ProSP4になります。 |
1