2012-03-03 20 views
5

私は、WS-Securityの内部構造がほとんどわかっていないことを最初に認めます。私は以下のようにSOAPサービスファクトリを持っています。このサービスを内部テスト専用.NETクライアント(svcutil.exe +自動生成WSDLを介して自動生成された.csプロキシクラスを使用)で使用すると、すべて問題ありません。第5回「実際の」(暗号化された)SOAPリクエスト/レスポンスの前に、最初の4つのセキュリティSOAPリクエスト - レスポンスハンドシェイクのペアを見ることができます。私は一般的にセキュリティを理解していますが、私はこの特定のハンドシェイクについての詳細を知りたがっています - 鍵交換を行っていると思いますか?とにかくSSL over HTTP + HTTP基本認証またはWS-Security?

は、一部

  1. ので、私は基本的なSOAPの私は知っています
  2. (WS-Securityの)ハンドシェイクセキュリティHTTPSとHTTP基本認証を知らない(とあたりの対SSLトランスポートの速度を好みますメッセージのSOAP暗号/署名-ベリファイ)
  3. 非.NETクライアント

との互換性を維持しながら、私は私が行うべきである考えていたSOAPエンドポイントの途切れを確保したいですHTTPS + HTTP基本認証によるSOAP交換だから、質問は

  1. に沸騰OK HTTPS + HTTP基本認証を介してSOAP交換はありますか?または珍しい(interop悪夢!)嫌悪感?
  2. 上記の内容:サービスファクトリを推奨設定に設定するにはどうすればよいですか?言うまでもなく、私はマイル離れたインターネット環境では無意味であるWindows認証から滞在したい...

    public class SoapServiceHostFactory : ServiceHostFactory 
    { 
        private Type serviceInterfaceType; 
    
        public SoapServiceHostFactory(Type serviceInterfaceType) 
        { 
         this.serviceInterfaceType = serviceInterfaceType; 
        } 
    
        protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses) 
        { 
         ServiceHost host = base.CreateServiceHost(serviceType, baseAddresses); 
         ServiceMetadataBehavior smb = host.Description.Behaviors.Find<ServiceMetadataBehavior>(); 
    
         // Enable metadata 
         if (smb == null) 
         { 
          smb = new ServiceMetadataBehavior(); 
          host.Description.Behaviors.Add(smb); 
         } 
         smb.HttpGetEnabled = true; 
    
         // Enable debugging for service 
         ServiceDebugBehavior sdb = host.Description.Behaviors.Find<ServiceDebugBehavior>(); 
         if (sdb == null) 
         { 
          sdb = new ServiceDebugBehavior(); 
          host.Description.Behaviors.Add(sdb); 
         } 
         sdb.IncludeExceptionDetailInFaults = true; 
    
         // SOAP Security configuration 
         WSHttpBinding myBinding = new WSHttpBinding(); 
         myBinding.Security.Mode = SecurityMode.Transport; 
    
         host.AddServiceEndpoint(serviceInterfaceType, myBinding, ""); 
         return host; 
        } 
    } 
    

答えて

5

あなたは大規模な、より相互運用可能なWS-SecurityのよりであることをSSL +基本認証を見つけるでしょう。

ポイントツーポイント統合を行っているなら、より複雑なマルチホップ、マルチパーティーの統合をしているならば、SSLが確実に進む方法でしょう。そして、WSでそれを厳しくする必要があるでしょう - セキュリティ。

+0

ありがとうございました。たぶん別の質問として2番目の部分を投稿する必要がありますが、SSL +基本認証を行うためにSOAPサービスファクトリをどのように設定するのですか?特に、基本認証がどのdB/XMLファイルに対してルックアップを実行するかを知っているかどうかは不明です。メンバーシップ・プロバイダーを結ぶ?ありがとう! – DeepSpace101

+1

一般的にSSL&Authで、SOAPレイヤではなくWebサーバーによって処理されますが、特にWCFについては不明です – superfell