2009-09-01 99 views
0

請建議我在下面提到的場景中實現的最佳身份驗證方式:這種情況下最適合的認證技術是什麼?

需求是我必須在全球多個國家部署WCF Web服務。

注意:所有在其上部署服務的機器位於同一個域中。

1.訪問此服務的客戶端應該屬於同一個域,否則認證應該失敗。

目前我使用使用「視窗」

+0

有些問題。該服務是否會公佈在域名網絡上?您希望能夠調用服務的人是誰?是否有人登錄到允許調用該服務的域?您可能還想考慮授權以及認證。 – 2009-09-01 03:37:18

+0

是的服務在域網絡上公開公開,只有在同一個域中的客戶端可以訪問該服務。實際上,我們會將桌面應用程序交給客戶端,通過它客戶端可以調用Web服務的方法(如讀取和寫入)。 – 2009-09-01 04:08:04

回答

1

我curous你爲什麼會想域是相同的,如果它需要在世界各地不同國家進行部署消息安全模式。除非您正在討論將服務託管在未公開的內部網絡上,否則強制執行相同的域名可能會很困難。不同的國家有不同的域標準。美國有更豐富的域名可供選擇。其他國家通常有一個國家特定的根,可能有一個區域性的根。

我不會將您的服務耦合到託管它的域,也不建議將域用作身份驗證的一個因素。如果您的服務需要在這些國家/地區的互聯網上公開披露,我建議您使用Windows安全以外的其他服務。基於聲明的安全機制可能效果最佳。在服務實現內部,可以檢查聲明,並且如有必要,可以將Windows身份驗證與WCF身份驗證分開進行驗證。聲明還允許您不僅使用用戶名/密碼或證書來完全驗證和授權客戶端請求。您可以請求呼叫者域名,國家,地區和其他證據包含在索賠中,從而使您可以驗證呼叫是否從適當的位置和相應的客戶端進行,比使用Windows身份驗證更靈活(如果您公開公開您的服務,Windows身份驗證可能無法使用)

+0

不同意你寫的內容,但對我來說聽起來像海報正在談論的是部署在一個私人的廣域網上,服務器位於世界各地,而不是互聯網。 – 2009-09-01 03:32:47

+0

是的Tuzo是正確的..該服務部署在廣域網上不在互聯網 – 2009-09-01 04:08:37

+0

如果它在廣域網上,那麼相同的域應該顯然不成問題。如果服務提供的行爲需要經過身份驗證的Windows帳戶才能運行,那麼我會使用Windows安全性。但是,如果行爲不需要Windows帳戶,我會考慮使用其他身份驗證機制,例如證書。 Windows身份驗證完全取決於域,並且可能會有所緩解。證書通常更適合需要認證的非人類實體,並且可以獨立於域進行管理。 – jrista 2009-09-01 06:29:18

1

由於您在Intranet上運行並假設您的Windows應用程序將直接連接到該服務,因此我將使用Windows身份驗證與Transport Security一起使用。

有關指導,請參閱patterns & practices Improving Web Services Security Guide

我仍然質疑您是否需要授權。如果您在未經授權的情況下使用Windows身份驗證,它將簡化您的服務,但將允許任何域用戶訪問您的服務,無論他們是否使用Windows應用程序。當然,他們必須瞭解端點和消息結構,但他們仍然有可能這樣做。

如果Windows身份驗證確實是所有需要的,我會仍然提出授權問題並將其記錄(並在適用時取消簽名)。一方面這涵蓋了你,但也使人們明確瞭解決策和可能的風險。

+0

感謝Tuzo對你的迴應..是的,我通過公元授權。 一旦我進行身份驗證,我將查看該用戶所屬的組,並基於該組,我將設置該特定用戶的角色。你可以建議授權嗎? – 2009-09-01 04:56:07

相關問題