2012-01-19 13 views
2

私たちはWCFサービスを使用しています。今は、Windows認証を使用していますが、これは長くはありません。一部のサービスはファイアウォールの外側にあり、データベースで検証されたユーザー名/パスワードを使用します。特定のユーザーからのWCFサービス「ガーディング」 - アプリケーションID

私の技術リーダーは、私たちが持っているサービスに "参照を追加"してパーティーをするのが簡単であることを "怖がっています"。彼は別のアイデンティティ(アプリケーション)を追加してサービスを「ガード」したいと考えています。彼はサービスが特定のアプリケーションからの要求を受け入れるようにしたいので、特定のユーザーは単にサービスを使用するだけではなく、そのサービスへの参照を追加して呼び出すことができます。ネットワーク内の不正なコードを防ぐために、ネットワーク上のサービスが要求を満たす前にそれらの資格情報を認証する必要があるかもしれないので、ここでは動作原理であるアイデンティティ+クレデンシャルを持つアプリケーションの概念です(つまり、アプリケーションではない)が「Joe User」のエンドユーザー資格情報を使用してサービスにアクセスすることを禁止します。

これは意味がありますか?

そして、彼は、Juval Lowyの本は、WCF呼び出し(セキュリティインターセプター)中に複数のアイデンティティを送信することを説明する付録にあると信じています。それらのすべてがエンドユーザーIDでなければならないという特別な示唆はなく、その場合、そのうちの1つが要求を行うアプリケーションのIDである可能性があります。

どうすればいいですか?

おかげで、 サム

答えて

3

アプリケーションIDを送信すると、問題は、その身元を確認するために使用される秘密はどこかに保存しなければならないことです。マシン上の1つのアプリケーションに表示されている場合は、一般的に、同じIDで実行されている他のアプリケーションから見ることができます。

あなたのマネージャは、「許可されたマシンから来た」と満足していますか?その場合、単にクライアント証明書を使用することができます

また、ユーザーが認証され、要求された機能を実行する権限がある場合、どのアプリケーションから来たのか彼らが誰であると言っているのか、彼らが要求していることをすることが許されているのか、なぜ、彼らは要求をするためにバイヤーを使うことができないのか - それはサービスの要点ではない(密接に結合されたクライアントサーバアプリ)?

+0

「クライアント証明書を使いますか」を拡張できますか?あなたはどのように "許可され​​たマシン"を持っていますか? –

+0

マシンにクライアント証明書(秘密鍵を含む)をインストールし、その証明書を使用してマシンに認証された証明書があることを証明している場合、証明書ベースの認証はすでにWCFセキュリティモデルに組み込まれています私は "単純に"言った) –

+0

>それは一般に同じアイデンティティの下で実行されている他のアプリケーションから見えるでしょう。---私は彼が異なるアイデンティティを持つ各アプリケーションについて話していると思います –

0

誰かがあなたのサービスへの参照を追加することをもっと難しくするために、mexエンドポイントを削除するだけです。このようにして、見知らぬ人が有効な要求メッセージを作成することは非常に難しいでしょう。

これで、信頼できる人にのみWSDLを手動で配布できます。

1

MSDNのドキュメントでCommon Security Scenariosを調べて、必要なオプションがあるかどうかを確認してください。

私の目に浮かぶオプションは、Transport Security with Certificate AuthenticationMessage Security with Mutual Certificatesです。どちらもX.509証明書に依存しています。後者のオプションはメッセージレベルにあるため、必要に応じて証明書の配信とセキュリティネゴシエーションを処理できます。

関連する問題