- PR -

LDAPプロバイダによるActiveDirectory操作時の通信の暗号化について

投稿者投稿内容
fun
会議室デビュー日: 2007/02/09
投稿数: 4
投稿日時: 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/10
投稿数: 4
投稿日時: 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を実行するにはどうしたらよいか?

ご存知の方がおられましたら御教授頂ければと思います。

よろしくお願いします。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-02-11 23:22
引用:

通常、LDAPプロバイダのADsPathはドメイン名等でバインドが可能ですが、
ローカルからはIP指定でないとバインドすることができないようです。



この部分は、ここを読むとよいでしょう。

LDAP provider ADsPath

それから、「ルート証明書」は対象の client に install されているのは確認していますか?


引用:
VBScriptからドメインの管理者権限でcacls.exeやsubinacl.exeと
いったexeを実行するにはどうしたらよいか?



これは全く別問題なので、別件で質問したほうがいいと思われます。
フスス
会議室デビュー日: 2007/02/10
投稿数: 4
投稿日時: 2007-02-12 01:49
ちゃっぴさま

回答及びご指導ありがとうございます。

上記のサイトを参考にして私が行うことができたユーザの登録が、
「ADへの認証>別権限を取得>ユーザ登録」といった流れで行え
ているものと思い、exeの実行(ExecメソッドorRunメソッド)も
可能なのではと思い書き込みを行わせて頂いた訳ですが、回答自
体もマトを得たものではなかったように思います。

改めて別件で質問させて頂きたいと思います。

ありがとうございました。
fun
会議室デビュー日: 2007/02/09
投稿数: 4
投稿日時: 2007-02-13 11:56
フスス様、ちゃっぴ様

ご指導ありがとうございます。

ちゃっぴ様のご助言の通り、ルート証明書をmmcのスナップインから
クライアントにインストールすることにより、OpenDSObjectの第4引数に
2を指定して実行することができました。
ありがとうございました。

ただ、一点疑問があります。

ちゃっぴ様のご助言があるまではクライアント側にドメインコントローラ
証明書をインストールし、実行を試していたのですが、そのときには実行
することができませんでした。
ルート証明書とドメインコントローラ証明書の2つが必要であるのかと思った
のですが、ルート証明書インストール後、ドメインコントローラ証明書を
削除した状態で試したところ、実行することができてしまいました。

クライアント側の設定としてはルート証明書のインストールのみでよいと
いうことなのでしょうか?
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-02-13 22:00
引用:

funさんの書き込み (2007-02-13 11:56) より:

ただ、一点疑問があります。

ちゃっぴ様のご助言があるまではクライアント側にドメインコントローラ
証明書をインストールし、実行を試していたのですが、そのときには実行
することができませんでした。
ルート証明書とドメインコントローラ証明書の2つが必要であるのかと思った
のですが、ルート証明書インストール後、ドメインコントローラ証明書を
削除した状態で試したところ、実行することができてしまいました。

クライアント側の設定としてはルート証明書のインストールのみでよいと
いうことなのでしょうか?



え〜悪いこと言いませんから、本屋さんでもいって公開鍵認証について詳しく書いてある本購入して勉強されたほうがいいと思いますよ。

まがりなりにも CA を管理するわけですから、公開鍵認証がどのようにして行われるかくらいちゃんと理解していないとダメでしょう。

証明書とは

一応、Help にも上記のようなものもありますけど、全然説明足りていないわけですが。
fun
会議室デビュー日: 2007/02/09
投稿数: 4
投稿日時: 2007-02-14 15:55
ちゃっぴ様、ご指導ありがとうございます。

今回の件はSSLハンドシェイク時のサーバ認証を行う際に証明書の発行元の
認証機関が信頼されているCAであるかが検証できなかったためにSSL通信が
できなかったものと認識しております。

通常、上記検証がクライアント側で保持しているCA証明書の一覧と一致すれば、
サーバから送信された証明書のデジタル署名の検証に移ると思われますが、
ここでクライアントが使用する公開キーがCA証明書の公開キーでよいのかと
いうことを確認したく、お聞きしたかったのですが・・・。

CA証明書の公開キーとSSLハンドシェイク時にサーバから送信されるサーバ
証明書の公開キーに対応する秘密キーがひとつであるのであれば納得できますが、
別であるなら別の証明書のインストールが必要ではないのかと思った次第です。

認識等に間違いがあればご指摘をお願いします。
加納正和
ぬし
会議室デビュー日: 2004/01/28
投稿数: 332
お住まい・勤務地: 首都圏
投稿日時: 2007-02-14 22:59
引用:

funさんの書き込み (2007-02-14 15:55) より:
ちゃっぴ様、ご指導ありがとうございます。

CA証明書の公開キーとSSLハンドシェイク時にサーバから送信されるサーバ
証明書の公開キーに対応する秘密キーがひとつであるのであれば納得できますが、
別であるなら別の証明書のインストールが必要ではないのかと思った次第です。

認識等に間違いがあればご指摘をお願いします。



純然たる意味で公開鍵証明書の検証について。

CA->SSLサーバ証明書

の関連になっているはずなので、CAの証明書が「正しい物」==
「信頼できる認証局証明書」としてクライアントにインストールしているのであれば
SSLサーバ証明書が「正しい」と判定できるはずです。

SSLサーバ証明書はCAが署名しただけですので、CAの秘密鍵は不要です。
秘密鍵で暗号化したので、公開鍵で復号すれば、署名は検証できます。

詳細は公開鍵証明書の内容になりますけど。要するに「信頼点」さえクライアントに
登録してあれば正しいかどうか判定できます。
#中間証明書が必要な場合は検証できないけど。。。。

スキルアップ/キャリアアップ(JOB@IT)