2014-11-25 196 views
7

這涉及到一個自定義的WS聯合身份提供者,但我肯定不重複,我的問題:Looking for a secure and robust STS implementation創建使用WCF服務

由於要求,從商業方面的投入,和一些研究,已經使我相信,不是實現安全的令牌服務來包裝我的自定義身份提供者,而是可以將令牌的發放委託給身份提供者本身。

身份提供者是一個WCF服務時,它成功地認證用戶,基於所述用戶的一些識別數據返回的權利要求的集合。例如。

[ServiceContract(Namespace = "http://namespace")] 
public interface IIdService 
{ 
    [FaultContract(typeof(IdServiceFault))] 
    [OperationContract] 
    ICollection<Claim> Authenticate(string idDatum1, string idDatum2); 
} 

其中ClaimMicrosoft.IdentityModel.Claims.Claim。作爲一個網站項目,我目前堅持一個僅僅是質量STS實現的示例,但如果可能的話,我只想將簽發令牌的任務轉移到身份提供者身上,並最終將其限定爲WS-Federation身份提供商,我稍後可以將其包含在我的Azure訪問控制的提供商中。

如果這是可能的,我需要什麼樣的WCF服務呢?

回答

3

「一個不只是拼湊一個WS聯合身份提供商」 - 有很多必要的參與,主要是爲了確保被斷言權利要求的安全性,完整性和可證的複雜性。

你不想得到這個東西錯了 - 看看在Target,家得寶,索尼和其他的後期發生了什麼事!

我強烈建議您閱讀和重新閱讀米歇爾·勒魯布斯塔曼特的"Building A Custom Security Token Service" article,直到你完全理解了STS和參與這樣做各種複雜的角色。

注意的是,爲了建立一個安全的STS你需要支持SAML,WS-Security的,WS-信任,WS-聯邦和使用SSL令牌和數據的安全傳輸。您需要認真實施允許身份信息聯合所需的通信協議的各個階段。

深入瞭解主題後,您將更好地瞭解爲什麼將STS構建爲位於現有身份認證服務旁邊的幕牆服務可能是一個好主意 - 而不是「污染」你現有的服務,其中涉及構建STS所涉及的相當複雜的問題。

如果這一切看起來很多工作赫克,它是(它應該是 - 安全是真的,真的很難!)。

我會強烈建議您考慮使用Thinktecture的身份服務器,而不是建立自己的。該真棒Dominick Baier &團隊已經做了構建一個穩健,精心設計的,開放源碼的身份,支持WS-美聯儲以及OpenID的,OAUTH Server等

+0

「一個不只是拼湊的真棒工作一個WS聯盟身份提供者「 - 我不知道這個@Rich。我期待用一個看起來很狡猾的VS網站項目模板來替代那些已經「敲在一起」的問題,而這個問題是我第一個研究這個領域的途徑之一。謝謝(你的)信息。 – ProfK 2014-12-12 03:18:35

+0

「我不知道這一點」 - 很高興聽到您意識到這裏的一些問題;) – 2014-12-15 17:47:02