2014-04-30 35 views
0

我們有一個自定義的單一登錄要求,一旦用戶登錄到門戶網站,他們就可以轉到另一個客戶端應用程序並自動登錄而不發送任何消息。這是簡單的單點登錄肥皂令牌建議安全嗎?

我已經看過dotnetopenauth開放式id提供程序,但我不認爲它非常正確,因爲這看起來過於複雜。有一個來自客戶端的建議解決方案,但我想知道它是否安全,少或多以至於說開放標識等。如果開放標識聽起來更適合這一點,請解釋爲什麼以及如何正確實施(在那裏不是很多很好的例子是的,我已經搜索看到一前一後,我有https://stackoverflow.com/questions/23311063/how-to-implement-a-soap-webservice-for-api-to-api-open-auth-2-provider沒有幫助)

提出的解決方案是:

關鍵

  • Domain_Master(這是美國)
  • Domain_Client(客戶端應用程序,第三方,他們需要我們將登錄用戶傳遞給他們,以便他們可以將他們登錄到他們的末端)

通過HTTPS的SOAP消息。

一旦用戶登錄到Domain_Master,他們將點擊一個鏈接到Domain_Client並將一個安全令牌添加到URL中。 {令牌被加密並且將包含最小值:時間戳,ClientID,可能還有一個隨機數}。

Domain_Client將在接收到安全令牌後使用SOAP使用Domain_Master Web服務對其進行驗證。 SOAP響應將告訴Domain_Client用戶是誰,並相應地將他們登錄到Domain_Client應用程序。所以基本上它就像打開門的鑰匙一樣。

令牌的有效性(例如它未過期或已被使用等)將由SOAP API中的Domain_Master完成 - Domain_Client將簡單地收集在URL中傳遞的令牌並直接查詢它Domain_Master SOAP API。

感謝

回答

1

我不能肯定,如果這個方法是多還是少的安全,但我上面的方法最初關注的是,沒有通過domain_client令牌的驗證。如果沒有驗證這個令牌,任何事情都可以傳遞給domain_client,它會直接將它傳遞給你在domain_master的web服務 - 這可能會導致問題,因爲它可能會提供一個攻擊媒介。

您可以實現HMAC的令牌的確認 - http://www.piotrwalat.net/hmac-authentication-in-asp-net-web-api/

希望這有助於!

+0

感謝您的幫助。 令牌由domain_master生成並由域主服務器驗證,如果令牌的格式不正確,並且在時間戳內將被忽略。我不知道如何矢量攻擊與hmac更不可能。我可能是錯的。任何進一步的幫助,非常感謝。 – Jonnymaboy

+0

HMAC身份驗證可防止通過直接調用domain_client將特製惡意代碼傳遞給domain_master Web服務。 – Andy

+0

謝謝。我會更多地閱讀hmac和向量令牌。至於其餘部分,這聽起來是相當可行和合理的構建或像dotnetopenauthid更好的選擇像開放標識。再次感謝 – Jonnymaboy