1

UIにはASP.net2.0、中間層には.Net Webサービス(ASMX)、DBにはSQLServer2005を備えた従来の3層Webアプリを継承しました。これは現在、会社の従業員だけがユーザーであるイントラネットアプリケーションです。現在、アプリケーションはActive Directory(AD)認証を使用しています。

ログイン画面で、ユーザーにはユーザー名/パスワードダイアログが表示されます。中間層は、ADを呼び出して、ユーザー名/パスワードを確認します。OKの場合、sessionId guidが生成され、UIに返送されます。このsessionIdは、セッション内のUIからの後続のすべての呼び出しで渡されます。中間層のすべてのメソッドは、要求を処理する前に、まずSQLServerの単純なセッションテーブルに対してsessionIDの有効性を確認します。

次に、アプリケーションの中間層のWebサービスを、パブリックインターネットで利用できる新しいUIで利用できるようにする必要があります。認証は新しいUIによって管理されるため、認証について心配する必要はありません。ただし、セキュリティなしでWebサービスを完全に開いたままにしたくありません。サービスを呼び出すシステムにそうする許可があることを確認したいだけです。現在使用されているsessionIdを維持する必要があるため、新しいUIに負担をかけたくありません。

新しいUIから呼び出されたときにサービスを保護するための最良の方法についての見解はありますか?x509証明書を使用できると思いますが、以前にこれを実行したことがあるので、不利な点(パフォーマンス?)や実装方法を認識していません。

新しいUIは、.Net3.5を使用して開発されました。中間層に.Net3.5をインストールできるので、WCFを使用することでメリットが得られると思いますか?

4

1 に答える 1

0

これが暗号化に適した問題だとは思いません。IP制限を使用してWebサービスへのアクセスを制限することをお勧めします。このデータがオープンインターネットなどの安全でない接続を介して転送されている場合は、sslを使用してクライアントとサーバーを検証し、送信されたデータを安全に保つことができます。おそらく実装が最も簡単なVPNを使用することもできます。

私はあなたのセッションテーブルに関心があります。これにより、ユーザーアカウントを取り消すのに時間がかかると思います。このセッションに有効期限がない場合、ユーザーアカウントを取り消すことはできません。ユーザーがログインした後、どのようにそれらを開始しますか?

1つの解決策は、要求ごとにASMXWebサービスクエリのActiveDirectoryを用意することです。ADサーバーに大きな負荷がかかっていない場合は、これで問題ありません。ADはそれ自体が非常に効率的なデータベースであることに注意してください。

于 2010-04-22T19:06:04.593 に答える