1

別のサーバーの .ASHX 内から WCF 経由で SharePoint Web サービスを呼び出そうとしています。私のコードは、Visual Studio のデバッグ Web サーバー内で実行すると機能しますが、IIS からは機能しません。動作中のサーバーはさまざまな認証モード (Kerberos、NTLM) で動作し、動作していないサーバーはどの認証モードでも動作しません。どちらの場合も同じユーザーになりすましています。

NTLM を使用して、Wireshark で動作中のセッションと非動作中のセッションを記録しました。作業中のものでは、Wireshark は NTLM データを解析し、私が期待するドメインとユーザー名を報告します。動作していないものでは、それは示しています

  DOMAIN: NULL
  USER NAME: NULL

IIS でデバッグしましたが、偽装はサービス呼び出しの時点で確実に機能しています。をチェックするWindowsIdentity.GetCurrent()と、それは私が期待するユーザーです。

動作しているサーバーと動作していないサーバーで WCF サービス プロキシを調べると、同じように見えます。ClientCredentials を処理する部分は""、両方のバージョンのユーザー名とパスワードに設定されています。

他に何を確認するかについてのアイデアはありますか?NTLM データの DOMAIN と USER NAME が NULL に設定されているのはなぜですか? それはどこから取得されますか?

4

1 に答える 1

1

これによれば:

http://support.microsoft.com/kb/207671

IIS が HTTP 要求を処理するとき、IIS は偽装を実行して、要求を処理するためのリソースへのアクセスが適切に制限されるようにします。偽装されたセキュリティ コンテキストは、要求に対して実行される認証の種類に基づいています。IIS 4.0 で使用できる 5 種類の認証は次のとおりです。

Authentication Type                          Impersonation Type
------------------------------------         ---------------------
Anonymous Access (no authentication)         Network
Auto Password Synchronization is
ON (ON=default)

Anonymous Access (no authentication)         IIS Clear Text
Auto Password Synchronization is OFF         

Basic Authentication                         IIS Clear Text 

NT Challenge/Response Authentication         Network 

Client SSL Certificate Mapping               Interactive

私の場合、ネットワークトークンを持っていますが、

ネットワーク トークンは、ネットワーク リソースへのアクセスを「許可されていません」。(ネットワーク トークンの名前は、この種のトークンが従来、ユーザーがネットワーク経由で認証されるときにサーバーによって作成されるためです。サーバーがネットワーク トークンを使用してネットワーク クライアントとして機能し、別のサーバーにアクセスできるようにすることを「委任」と呼びます。セキュリティホールの可能性があると考えられています。)

KB には、問題を回避するためのさまざまな方法が記載されています。

于 2012-05-23T12:14:56.850 に答える