- PR -

AD情報の取得について

1
投稿者投稿内容
.netビギナー
会議室デビュー日: 2006/07/15
投稿数: 6
投稿日時: 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で表示すると、
問題なく表示されます。

そのため、権限の設定かと思いますが、実際にどのユーザーにどういった権限を付与すればいいのかがわからず、
解決できないでいます。

なにとぞご教示願います。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-11-29 20:59
ASPファイルオブジェクトの使用
.netビギナー
会議室デビュー日: 2006/07/15
投稿数: 6
投稿日時: 2006-11-30 06:52
ちゃっぴさん、返答ありがとうございます。

当方の環境に漏れがあり、大変申し訳ありませんが、
IISでは匿名認証を使用しておりません。

元々、ログインユーザーをIISの環境変数から特定し、ADの情報を引っ張ろうとしていたためです。

ちなみに、クライアントマシンにDomainAdmin権限でログインしても、エラーが表示されるという、
不可解な状態となっております。

何か手立てがあるものでしょうか?
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-11-30 22:46
これほんとに前は動いていたんですか?

統合 Windows 認証で Web server を経由して別の server に資格情報を送るには、いくつかの制限があります。

まず第一に Kerberos 認証ができるように構成されていること。

ADsPath の指定方法によっても Kerberos が利用できたりできなかったりするので、注意が必要です。

LDAP ADsPath


それから2番目ですけど、対象の Web Server が「コンピュータを委任に対して信頼する」権利を保持していないといけません。

[HOWTO] IIS の Kerberos に関する問題のトラブルシューティング

ということで、ご確認くださいな。
ゆいたん
ベテラン
会議室デビュー日: 2004/08/26
投稿数: 91
投稿日時: 2006-12-04 12:11
これが動作していたという前提で考えると、
以前の環境はActive DirectoryとASPが動作しているサーバーが
同一だったということはありませんか。
# Exchange Serverを入れたのでそちらにソースを移動されたとか

ADへのアプローチにはプライマリトークンが必要なため
ダブルホップできません。
ASPスクリプト上で偽装してあげないとだめだと思います。

ちょうど同じネタを.netでやっていたので。
ご参考になれば。
1

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