10

特定のフォルダー内のディレクトリとファイルを一覧表示しようとしています。homedirectoryこのフォルダーは、Windows 認証 (NTLM) によってログインし、Active Directory (プロパティ)から取得される現在のユーザー (Page.User) に依存します。

ドメイン ユーザーを使用して AD にアクセスし、フォルダーの場所を取得していますが、これは正常に機能します。

System.IO.DirectoryInfo.GetDirectories()失敗したのは、偽装でも使用してサブフォルダーを取得することです。

偽装に使用しているコードは次のとおりです。

System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext =  ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();

偽装されているユーザーがフォルダーにアクセスできることを確認しました。

これまでのところ、委任または Kerberos 認証を設定する必要があるようですが、これは本当ですか? これらはこれを達成する唯一の方法ですか?なりすましだけで十分ではないでしょうか。

4

1 に答える 1

2

なりすましにより、ウェブサイト サービス アカウントは、そのマシン上の別のユーザーになりすます (なりすます) ことができます。そのため、AD にクエリを実行して、あなた (または偽装されたユーザー) が許可されている権限を確認します。

別のマシン上の UNC 共有へのアクセスを要求することは、偽装されているユーザーに代わって Web サイト サービス アカウントが動作していることを受け入れるように他のマシンに要求することです。これは委任です。他のマシンは、ユーザーの資格情報自体をチェックしていませんが、そのチェックを Web サーバーに委任しています。

クライアントがさらに別のマシンから Web サイトに接続している場合 (通常は Web サーバーの場合)、クライアントから Web サーバー、UNC ファイル サーバーへの「ダブル ホップ」があります。

(SetSPNユーティリティを介して)Kerberosを構成し、Webサイトサービスアカウント(ADユーザーとコンピューター内)の委任権限を有効にする必要があることをお勧めします。これを設定するのに問題がある場合は、DeleConfigというツールを心からお勧めします。

于 2012-12-19T16:34:13.583 に答える