インターネット経由で HR システムにデータを出し入れするための単純な Web サービスを構築する必要があります (これはホストされたソリューションです)。IIS と ASP.Net を .Net 2.0 で使用しています。
それを調べたところ、Webサービスを安全にする方法がいくつかあります.どの方法を選択するかについて、長所と短所についていくつかの見解を示してアドバイスを求めています.
これらは私が知っている方法です:
SSL 経由の SoapHeaders
UID/PWD を SOAP ヘッダーにポストし、SOAP 拡張機能を実装します (リンク)。
実装は非常に簡単で、SSL 経由で非常に安全です。これは、比較的単純であるため、私の好みのオプションです。また、歴史的な理由から、すべての VBScript から Web サービスを使用する必要があるため、単純な SOAP を処理できることはおまけです。
ただし、注意点はありますか?これはセキュリティ上のリスクであるとクライアントから不満を言われることはありますか?
TransportWithMessageCredential での WCF の使用
WS に言及している古い記事をたくさん見つけました。間違いでなければ、これが現在 WCF で提供されているものですか? この Microsoft リンクには入門書があります。
私が正しく理解している場合、これはクライアントとサーバー間の認証に証明書ベースのセキュリティを使用します。これは正しいですか、それとも完全に間違っていますか?
少なくとも実装に関しては、これははるかに大きな仕事になると思います。また、VBScript から Webservice に直接アクセスすることはできないので、それが呼び出す dll を作成し、それをローカルに展開する必要があります - 正しいですか?
これは.Net 2.0でも利用できますか?
その他の方法
- asmx ファイルへの匿名アクセスを禁止し、IIS に依存してチャレンジ/レスポンスによる認証を行うことができます。これは私のシナリオでは実際に実用的ですが、非常に洗練されていないように感じます (VBScript からそれを機能させる方法もわかりません)。
- メソッド呼び出しに UID を渡すことは、SoapHeader とは相性が悪いので、使用しません。
この問題に対する最善のアプローチについてアドバイスをいただければ幸いです。Soap ヘッダーが安全である理由について誰かが十分な議論をしている場合は、「十分に安全」である限り、それが最も簡単に使用できるように思われるので、ぜひ聞いてください。