1

これが私が達成したいことです:

私の ASP.NET Web サービスは、 //serviceというサーバーでホストされています。サーバーおよびアプリケーションによって Web サービスへのアクセスを制御したいと考えています。ここで言いたいのは、2 つの ASP.NET Web アプリケーション (app1 と app2) が//web1というサーバーでホストされていて、 //web1/app1だけが Web サービスを呼び出せるようにしたいということです。//web1の IP アドレスへのアクセスを許可できることはわかっていますが、それでは//web1/app1//web1/app2の両方が Web サービスにアクセスできてしまいます。

Web アプリケーションにログイン/パスワードを処理させたくないので、SSL 証明書の使用を考えています。//serviceでは、//web1の IP へのアクセスを許可し、クライアント証明書を//web1から Windows アカウントにマップします。これにより、//web1からのアプリケーションのみがアクセスできるようになります。しかし、 //web1/app1のみへのアクセスをさらに制御するにはどうすればよいでしょうか?

4

2 に答える 2

2

標準のHTTP 認証を使用して、どのアプリケーションが Web サービスにアクセスできるかを制御できます。

認証情報は、各リクエストのAuthorizationヘッダーで渡されます。すべての Web サービス クライアント (つまり、//web1/app1) は独自の資格情報を持つ必要があるため、認識された資格情報を提供せずに //web1/app2 が Web サービスに接続しようとすると、アクセスが拒否されます。

認証情報やその他の機密データを保護するために、SSL を使用してすべてのトラフィックを暗号化することをお勧めします。

役に立つかもしれないいくつかの記事を次に示します。

幸運を!

于 2008-12-24T07:28:37.963 に答える
0

あまり。

証明書は、クライアントとサーバー ドメイン間の伝送を保護します。複数のサブディレクトリに対して複数の証明書を持つことは、実際には機能しません。

やりたいことは、トークンを返すログイン サービスを作成することです。次に、そのトークンを使用してサーバー側でセッションを管理し、クライアントはそれを後続のすべての要求とと​​もに使用して、利用可能なサービスにアクセスして実行します。(このトークンはこの Web サービスにアクセスできますか? t/f)

クライアントに何らかの資格情報へのアクセスを許可する必要があります。それが証明書の交換であろうと、ユーザー/パスであろうと、クライアントが実際に誰であるかを把握する必要があります。

于 2009-01-16T18:18:35.807 に答える