我對WCF比較陌生,想就如何在通過WCF公開其「業務層操作」的應用程序上實現身份驗證的最佳(或最正確)方法發表意見?在企業架構的WCF服務中實現身份驗證的最佳方式是什麼?
是一個令牌應該傳遞,加入了用戶名/密碼,並且每次驗證......或者什麼?
此外任何鏈接將不勝感激。
我對WCF比較陌生,想就如何在通過WCF公開其「業務層操作」的應用程序上實現身份驗證的最佳(或最正確)方法發表意見?在企業架構的WCF服務中實現身份驗證的最佳方式是什麼?
是一個令牌應該傳遞,加入了用戶名/密碼,並且每次驗證......或者什麼?
此外任何鏈接將不勝感激。
一個非常重要的安全性的考慮是,在WCF安全工作在兩個層面上
信息安全
交通運輸安全
其良好的做法是使用傳輸層安全保護,一般通信和消息層給用戶一個有效的用戶身份驗證,並批准他的特權。
無論你在每次調用進行身份驗證,如果服務合同被定義爲確定一個
我建議使用PerCall作爲其最有效硬件資源的使用,但這取決於你的情況。
我知道一個我使用的:它使用ASP.NET成員身份框架來與WCF進行身份驗證。我目前正試圖讓OpenID和其他提供者進入系統,這讓我重新思考這種類型的身份驗證的ASP.NET成員資格。
但是,如果你正在控制自己的賬戶,我會去ASP.NET成員。
WCF提供了許多認證和後續授權機制。
至於身份驗證:如果您在局域網內的企業防火牆之後,使用直接的Windows憑據是最簡單的 - 不需要混亂的用戶名/密碼來記住和發送,它只是可以開箱即用。這可以與針對Windows組成員系統的授權檢查相結合,例如,只允許某些用戶組執行操作。
如果您正在尋找面向互聯網的服務,您可以選擇用戶名/密碼方案或證書。標準的用戶名/密碼方案可以根據ASP.NET 2.0爲我們帶來的ASP.NET成員資格系統進行檢查,無論是用於身份驗證(成員資格)還是授權(角色提供者)。
如果您處理的是一組非常有限的外部用戶,例如,商業夥伴等。證書必須「帶外」傳遞給客戶,例如在其他方面,通過磁盤或其他方式。但是一旦安裝完成,它就可以無縫使用和驗證。
朱瓦爾·洛(「編程WCF服務」的作者)對MSDN上Declarative WCF Security中,他強調了他的五個安全方案,如何使用和保護他們一個偉大的文章,他甚至有一個聲明擴展WCF做這隻需要將一個屬性應用到您的服務合同 - 非常聰明!
我最近爲某些媒體預覽服務實現了一個相當大的WCF服務層。由於我們在互聯網上公開它,因此Windows身份驗證不是一種選擇。由於我們已經有了現有的用戶/角色系統,我們也決定不使用ASP.NET會員供應商。
我最終實現了自定義身份驗證/授權模塊並使用SSL作爲傳輸層安全元素。使用WCF屬性,我可以使用標準WCF基礎結構檢查角色權限。
鏈接,幫助我對我的方式得到的目標: