- - PR -
AD情報の取得について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-11-29 16:24
お世話になります。
現在、ASPを使用して、ADからアカウント情報を取得しようとしています。 以前は、現在使用しているスクリプトで問題なく動作していたのですが、 Exchange Server 2003を導入した途端に、エラーが発生するようになりました。 以下、スクリプトの内容を記載します。 ※例として、ユーザー「Administrator」の表示名を取得するものとします。 ドメイン名:MyDomain.Local ドメインコントローラ(DC1):2003 Server Webサーバー:(Web1):2000 Server <%Language = "VBScript" %> <% Option Explicit Dim ObjConn, ObjCmd, ObjRS Dim FullName Set ObjConn = Server.CreateObject("ADODB.Connection") ObjConn.Provider = "AdsDSOObject" ObjConn.Open "Active Directory Provider" Set ObjCmd = Server.CreateObject("ADODB.Command") ObjCmd.ActiveConnection = ObjConn ObjCmd.CommandText = "select displayName from 'LDAP://dc=mydomain, dc=local' where samAccountName = 'Administrator'" Set ObjRS = Objmd.Execute Do Until ObjRS.EOF FullName = ObjRS("displayName") ObjRS.MoveNext Loop Response.Write "FullName = " & FullName & "<br>" %> 本スクリプトを実行しますと、「テーブルは存在しません」とエラーが表示されます。 また、発生行は >Set ObjRS = Objmd.Execute の部分です。 また、WebサーバーにDomainAdmin権限者にてログインしてIEで表示すると、 問題なく表示されます。 そのため、権限の設定かと思いますが、実際にどのユーザーにどういった権限を付与すればいいのかがわからず、 解決できないでいます。 なにとぞご教示願います。 |
|
投稿日時: 2006-11-29 20:59
ASPファイルオブジェクトの使用
|
|
投稿日時: 2006-11-30 06:52
ちゃっぴさん、返答ありがとうございます。
当方の環境に漏れがあり、大変申し訳ありませんが、 IISでは匿名認証を使用しておりません。 元々、ログインユーザーをIISの環境変数から特定し、ADの情報を引っ張ろうとしていたためです。 ちなみに、クライアントマシンにDomainAdmin権限でログインしても、エラーが表示されるという、 不可解な状態となっております。 何か手立てがあるものでしょうか? |
|
投稿日時: 2006-11-30 22:46
これほんとに前は動いていたんですか?
統合 Windows 認証で Web server を経由して別の server に資格情報を送るには、いくつかの制限があります。 まず第一に Kerberos 認証ができるように構成されていること。 ADsPath の指定方法によっても Kerberos が利用できたりできなかったりするので、注意が必要です。 LDAP ADsPath それから2番目ですけど、対象の Web Server が「コンピュータを委任に対して信頼する」権利を保持していないといけません。 [HOWTO] IIS の Kerberos に関する問題のトラブルシューティング ということで、ご確認くださいな。 |
|
投稿日時: 2006-12-04 12:11
これが動作していたという前提で考えると、
以前の環境はActive DirectoryとASPが動作しているサーバーが 同一だったということはありませんか。 # Exchange Serverを入れたのでそちらにソースを移動されたとか ADへのアプローチにはプライマリトークンが必要なため ダブルホップできません。 ASPスクリプト上で偽装してあげないとだめだと思います。 ちょうど同じネタを.netでやっていたので。 ご参考になれば。 |
1