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を使用することでメリットが得られると思いますか?