2012-02-23 100 views
2

我需要創建一個Web服務來收集客戶應用程序中的數據。WCF Web服務適用於非微軟SOAP客戶端嗎?

這些應用程序使用不同的技術進行編程,它們都有一個共同點:它們可以使用普通的SOAP Web服務。

我已經有一個WCF服務可以被暴露,但因爲它只是爲了內部目的而構建的,所以我從來不必去保護它。

我讀了很多關於如何保護WCF服務以及如何從Microsoft客戶端應用程序中使用它的文章。但是,我非常關心客戶的非微軟應用程序實現標準WCF服務安全性的能力。我必須記住,其中一些可能是無狀態的,無法保持會話或安全的WCF服務可能需要的任何內容。

所以這裏是我現在的選擇。

1)將用戶名/密碼參數添加到每個WCF功能並對每個呼叫執行憑證檢查。 (我有一個SSL證書......是否足以認爲這個選項是安全的?)

2)刪除我的WCF服務並創建一個帶有用戶名/密碼參數的普通SOAP Web服務,如選項#1中所述更接近我的客戶的應用程序功能。

3)實現標準的WCF安全性,讓客戶找到自己處理的方法。 (這裏真正的問題是:WCF的安全性是否足夠簡單,足以由任何SOAP客戶端實現?)

4)更改我的名字,並在發現我是Web服務安全noob之前,用我的客戶的錢轉移到牙買加。

5)別的東西...

那麼我最好的選擇是什麼?

回答

2

是的,我可以提供我們使用的選項。這聽起來像你想basicHttpBinding

我們使用basicHttpBinding的和一個WCF Web服務設置IIS以使用基本HTTP認證

因此,非.NET客戶端可以輕鬆使用它(basicHttpBinding),我們可以爲它們提供一個Active Directory域帳戶,允許它們通過IIS進行訪問。沒有用戶名/密碼可以不斷地通過網絡服務來回發送,並且通過HTTPS運行以確保安全。

它目前正在被PHP,Java和.NET客戶端使用。是的,.NET客戶端仍然可以將其作爲服務引用導入,從而使事件更容易陷入FaultException。

沒有解決方案對每個人都是完美的,但對我們的需求非常好。

1

是的,但某些配置有利於某些供應商。見CodePlex上,基於WCF快遞互操作綁定項目:

http://wcf.codeplex.com/wikipage?title=WCF%20Express%20Interop%20Bindings

他們提供與互操作的設置:

  • 的Oracle WebLogic
  • 甲骨文地鐵
  • IBM的WebSphere
  • 的Apache Axis2的

Oracle Metro(以前稱爲SUN WSIT)堆棧在WS - */Oasis標準方面是迄今爲止最先進的。