0

以下のようなシナリオのアーキテクチャのアイデアを探しています。

環境: いくつかの機能を実行するサービス (Windows サービスでホストされている wcf) があります。このサービスにアクセスするための API を提供し、他のクライアント機能も備えたクライアント ライブラリ (.NET Windows DLL) を提供しています。

問題: ビジネス上の理由から、特定のバージョンのクライアントのみが特定の機能にアクセス (特定の API にアクセス) できるようにし、他のバージョンのクライアントにはアクセスを許可しないサービスのメカニズムを探す必要があります。基本的には、1 つの特定のクライアント バージョンからのすべての要求を信頼し、他のバージョンのクライアントを介した基本的な操作のみをサポートするようにサービスを教育することを検討しています。

注:特定のバージョンのソフトウェア クライアントのアクセスを許可または拒否するだけで、ユーザーとはまったく関係がないため、これにユーザー許可またはユーザー セキュリティ コンテキストを追加することはできません。

例:バージョン X クライアントから、すべての READ および SAVE 機能を許可する必要があります。しかし、他のバージョンからは、すべての読み取りのみを許可でき、保存は許可できません。

考えられる解決策: これまでのところ、バージョン番号を含む構成をクライアントに追加し、それをクライアントからのすべてのサービス要求に渡すことを考えてきました。サービスは、DB または Web 構成から完全に信頼するバージョンを知ることができます。このサービスでは、チャネルをインターセプトして、クライアント メッセージからこの特定の文字列があるかどうかを確認できるため、特定の API へのアクセスをサポートまたは拒否できます。

このシナリオに対するその他の洗練された解決策、または関連することを行った人がいる場合は、それも役立ちます。

ありがとう

4

1 に答える 1

0

サービスへのリクエストと一緒に提供されたときに、クライアントが提供したハッシュに基づいてクライアントにアクセスを許可するハッシュをクライアントに提供できますか?

あなたがほのめかしたように、猫の皮を剥ぐ方法はたくさんあります。

サービス/クライアントシステムをこのように動作させたい理由を聞いてもいいですか?

于 2012-07-06T14:19:37.993 に答える