0

単一の小さな ASP.NET Web アプリによってのみ消費される結合された DAL/BLL として構築された WCF Web サービスを保護するための最も簡単で効果的なアプローチは何ですか?

バックグラウンド:

特にセキュリティに関して言えば、私は比較的 Web 開発初心者です。

現在の DAL は、Web アプリと asmx Web サービスの両方にライブラリとして存在し、VS2003 で完全に自作されています。認証/トークン生成メソッドは Web サービス経由で呼び出されますが、それ以外はすべて Web アプリから直接呼び出されます。私たちの DBA は、これが安全でないことを懸念しており、すべてのデータベース アクセスが Web サービスでも発生することを望んでいます (私は、この懸念/解決策がそもそも有効であるかどうかを疑問視する立場にはありませんが、誰か詳しく説明できる場合なぜそうであるか、そうでないかについては、してください)。

私はVS2012で武装しており、これが私の仕事です。調査の結果、WCF にたどり着きました。テスト用の Web サービスと、それを正常に使用するテスト用の Web アプリを既に作成しています。

4

1 に答える 1

0

Type-Sharing と DataContract 共有の違いを発見することをお勧めします。

しかし、最も速いパスは次のとおりです。

「回線を介して」来る DotNet オブジェクトには NetDataContractSerializer を使用します。これが「型共有」シリアライザーです。ただし、クライアントが DotNet のみの場合にのみ機能します (これはあなたの場合のようです)。

私は何をしますか?

  1. ドメイン ライブラリ ( DTO オブジェクトのみ) を作成します。
  2. WCF IService(s) にそのライブラリを参照させます。すべての「コントラクト」は、DTO ライブラリ内のスカラーまたはオブジェクトを受け入れる必要があります。
  3. IServices を実装するラッパー「サービス層」 (サーバー側) を用意します。ここのコードは非常に「ばかげた」ものになります。リクエストを真のビジネス層に渡すだけです。(この分離の理由は、WCF を経由せずにビジネス レイヤー ロジックに到達できるようにするためです (「単体テスト」を考えてください)。
  4. ドメイン ライブラリ (DTO オブジェクト) dll をクライアント側と共有します。(これは、タイプ共有を使用して、NetDataContractSerializer を使用することに依存します)。

それが完了すると......「生の」WCFが機能するようになります。次に、構成を通じて wcf セキュリティを適用できます。

これは、証明書ベースのセキュリティを使用するための適切なウォークスルーです。

http://blog.mitchdenny.com/2007/09/06/using-certificate-based-authentication-and-protection-with-windows-communication-foundation-wcf/

于 2013-06-13T17:37:05.643 に答える