7

2つのActiveDirectoryドメイン、AとBがあります。ドメインAのユーザーは、ドメインBのサーバーにあるリソースを表示および操作するために、デスクトップでアプリケーションを実行する必要があります。各ユーザーは、ドメインBにもアカウントを持っています。プログラムでドメインBリソースの操作を実行するために、各ユーザーのドメインB IDを偽装するには?

ワークフローの例:

  1. ユーザーはドメインAにログインします。
  2. ユーザーがデスクトップアプリケーションを起動します。
  3. ユーザーがドメインBのリソースを指定します。
  4. アプリケーションは、ユーザーにドメインBの資格情報の入力を求めます。
  5. アプリケーションは、指定されたリソースにアクセスするためにユーザーのドメインBIDを偽装します。
  6. ユーザーは、アプリケーションを使用してドメインBリソースを操作します。
4

3 に答える 3

10

お使いのコンピューター(偽装を行っているコンピューター)が、偽装しようとしているユーザーアカウントのドメインを信頼しないドメインのメンバーである場合、偽装は失敗します。そうでなければ言う人は誰でも、私は証拠を見たいです。

于 2009-09-02T16:10:09.730 に答える
2

Win32 APIについて説明しますが、.NETからこれらのAPIをp/invokeできると確信しています。http://pinvoke.netを確認してください。

LogonUser APIを呼び出して、ユーザーのドメインBクレデンシャルを表すアクセストークンを作成する必要があります。

次に、ImpersonateLoggedOnUserを呼び出し、そのアクセストークンを渡します。別のクレデンシャルのセットを偽装するか、RevertToSelf APIを呼び出すまで、呼び出し元のスレッドはドメインBのクレデンシャルを偽装します。

言うまでもなく、LogonUser呼び出しを成功させるには、実行しているマシンがドメインBを信頼する必要があります。

于 2009-06-15T16:26:48.303 に答える
1

必要ななりすましの問題をカバーするこの質問をチェックしてください。

于 2009-06-15T16:23:30.000 に答える