- - PR -
LDAPプロバイダによるActiveDirectory操作時の通信の暗号化について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-09 13:20
お世話になります。funと申します。
ADSIを利用し、ADへの認証とユーザのパスワード変更、ユーザ追加を 管理しようと考えていますが、LDAPプロバイダを利用し、認証を行う 際の通信の暗号化ができなくて行き詰まっています。 OpenDSObjectの第四引数に2を指定すると通信が暗号化されるとの事 なのですが、2を指定すると「サーバは使用可能ではありません。」 というエラーが発生します。 SSL通信を行う前提条件としてADサーバ(w2k3)側に認証機関をエンター プライズCAとしてインストールしています。 これによりすべてのDCで必要な証明書が自動でコピーされるそうなので すが、クライアント側として何か設定あるいはプログラミングが必要 なのでしょうか? 以上です。よろしくお願い致します。 環境: サーバ:w2k3サーバ(ActiveDirectory、認証機関) クライアント:VB6.0SP5+ADSI ※クライアントがドメインに参加していない状況での実行を想定しています。 クライアントがドメインユーザでなく、ローカルマシンにローカルユーザで ログインした状態です。 通常、LDAPプロバイダのADsPathはドメイン名等でバインドが可能ですが、 ローカルからはIP指定でないとバインドすることができないようです。 | ||||||||
|
投稿日時: 2007-02-11 11:10
始めまして フススと申します。
現在、「ローカルユーザ(ドメインに参加していない)」での ユーザ管理に取り組んでいるVBScript・ADSIの初心者です。 良い情報交換ができればと思い参加させて頂きました。 funさんへ 当方では以下のサイトにあるスクリプトのドメイン情報を入れ替えた 程度で、VBScriptからActiveDirectoryへのユーザ登録、ユーザ情報 の参照には成功しています。 Hey, Scripting Guy! 別の資格情報のもとでスクリプトを実行するには http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/dec04/hey1213.mspx 当方の環境----------------------------------------------------- サーバ w2kサーバ(ActiveDirectory) クライアント DCではないw2k3サーバです。 ※w2k3上にVBScriptをおいておき、sshでキックしてユーザ管理を行う 必要があり、いろいろと情報を集めています。 --------------------------------------------------------------- ※まだ見られていないのであれば一度、見てみてください。 次に、現在、下記の方法がわからず困っています。 VBScriptからドメインの管理者権限でcacls.exeやsubinacl.exeと いったexeを実行するにはどうしたらよいか? ご存知の方がおられましたら御教授頂ければと思います。 よろしくお願いします。 | ||||||||
|
投稿日時: 2007-02-11 23:22
この部分は、ここを読むとよいでしょう。 LDAP provider ADsPath それから、「ルート証明書」は対象の client に install されているのは確認していますか?
これは全く別問題なので、別件で質問したほうがいいと思われます。 | ||||||||
|
投稿日時: 2007-02-12 01:49
ちゃっぴさま
回答及びご指導ありがとうございます。 上記のサイトを参考にして私が行うことができたユーザの登録が、 「ADへの認証>別権限を取得>ユーザ登録」といった流れで行え ているものと思い、exeの実行(ExecメソッドorRunメソッド)も 可能なのではと思い書き込みを行わせて頂いた訳ですが、回答自 体もマトを得たものではなかったように思います。 改めて別件で質問させて頂きたいと思います。 ありがとうございました。 | ||||||||
|
投稿日時: 2007-02-13 11:56
フスス様、ちゃっぴ様
ご指導ありがとうございます。 ちゃっぴ様のご助言の通り、ルート証明書をmmcのスナップインから クライアントにインストールすることにより、OpenDSObjectの第4引数に 2を指定して実行することができました。 ありがとうございました。 ただ、一点疑問があります。 ちゃっぴ様のご助言があるまではクライアント側にドメインコントローラ 証明書をインストールし、実行を試していたのですが、そのときには実行 することができませんでした。 ルート証明書とドメインコントローラ証明書の2つが必要であるのかと思った のですが、ルート証明書インストール後、ドメインコントローラ証明書を 削除した状態で試したところ、実行することができてしまいました。 クライアント側の設定としてはルート証明書のインストールのみでよいと いうことなのでしょうか? | ||||||||
|
投稿日時: 2007-02-13 22:00
え〜悪いこと言いませんから、本屋さんでもいって公開鍵認証について詳しく書いてある本購入して勉強されたほうがいいと思いますよ。 まがりなりにも CA を管理するわけですから、公開鍵認証がどのようにして行われるかくらいちゃんと理解していないとダメでしょう。 証明書とは 一応、Help にも上記のようなものもありますけど、全然説明足りていないわけですが。 | ||||||||
|
投稿日時: 2007-02-14 15:55
ちゃっぴ様、ご指導ありがとうございます。
今回の件はSSLハンドシェイク時のサーバ認証を行う際に証明書の発行元の 認証機関が信頼されているCAであるかが検証できなかったためにSSL通信が できなかったものと認識しております。 通常、上記検証がクライアント側で保持しているCA証明書の一覧と一致すれば、 サーバから送信された証明書のデジタル署名の検証に移ると思われますが、 ここでクライアントが使用する公開キーがCA証明書の公開キーでよいのかと いうことを確認したく、お聞きしたかったのですが・・・。 CA証明書の公開キーとSSLハンドシェイク時にサーバから送信されるサーバ 証明書の公開キーに対応する秘密キーがひとつであるのであれば納得できますが、 別であるなら別の証明書のインストールが必要ではないのかと思った次第です。 認識等に間違いがあればご指摘をお願いします。 | ||||||||
|
投稿日時: 2007-02-14 22:59
純然たる意味で公開鍵証明書の検証について。 CA->SSLサーバ証明書 の関連になっているはずなので、CAの証明書が「正しい物」== 「信頼できる認証局証明書」としてクライアントにインストールしているのであれば SSLサーバ証明書が「正しい」と判定できるはずです。 SSLサーバ証明書はCAが署名しただけですので、CAの秘密鍵は不要です。 秘密鍵で暗号化したので、公開鍵で復号すれば、署名は検証できます。 詳細は公開鍵証明書の内容になりますけど。要するに「信頼点」さえクライアントに 登録してあれば正しいかどうか判定できます。 #中間証明書が必要な場合は検証できないけど。。。。 |