2009-08-07 17 views
7

私はコンソールアプリケーションでホストされているサーバー上のWCFサービスにアクセスするアプリケーションを持っています。私はそこに問題がない、それは私が問題があるまだ別のサーバー上のコンソールアプリケーションから別のサービスにアクセスしようとするときです。WCFのセキュリティ上の問題

私は接続にTCPを使用しています。私はすべてのデフォルトのセキュリティ値を使用しています。

だから、私はA-> Bから行くつもりです。

... 「SSPIの呼び出しに失敗しました」...「ターゲットプリンシパル名が間違っています」...スタックトレース:私はちょうどA-> Cから行くとき、すべてがエラー罰金

であることに注意してください

私がプリントアウトするとき
Console.WriteLine(ServiceSecurityContext.Current.PrimaryIdentity.Name); ます。Console.WriteLine( "ServiceSecurityContext.Current.WindowsIdentity.Name);
私はそれは大丈夫であるのログイン

私の窓だと見ることができるので、B-からなるとき、それは私の資格情報を渡していないようです> C

任意のアイデア?

答えて

8

SSPIを使用すると、Windows認証を使用しているを示している。

あなたのドメインでサービスCのための安全なプリンシパル名を作成したことがありますか?SETSPNコマンドをグーグル。問題はその窓でありますdoから資格を渡さない主に信頼できないシステムにドメイン内に安全なプリンシパル名を指定して、トークンを渡すことができます。

Secure Principal Name SPN Creation Tutorial

+0

資格情報がAからBに移動するが、BからCとは異なる現在実行中のAppDomainに一致するため、BからCへの同じ資格情報は有効でないため、これが原因であると考えられます。 –

3

あなたは、ダブルホップの問題と呼ばれるものが発生しています。 http://blogs.msdn.com/knowledgecast/archive/2007/01/31/the-double-hop-problem.aspx
解決策は、一般的に、Kerberos認証を使用することです。これは、Spenceによると、SPNのようなものが含まれています。

+0

これは*正確に*私が遭遇しているもの。私はコーヒーのフルカップでこれを掘り起こし、電球の瞬間を待ちます。ありがとう! – McArthey

関連する問題