2013-12-11 58 views
5

我有一個非常簡單的java web應用程序,我可以管理用戶註冊和身份驗證。我想作爲SAML身份提供者來執行此應用程序。然後,我將創建另一個簡單的Web應用程序,這需要用戶在使用之前進行身份驗證。所以基本上我想我的第一個應用程序是IdP,我的第二個應用程序是服務提供商。工作流應該是這樣的:用戶轉到app2。 App2將用戶重定向到用戶獲得身份驗證的app1。如果認證成功,app1會將用戶重定向到具有完全訪問權限的app2。我對SAML比較陌生。有沒有任何教程可以幫助我輕鬆做到這一點?如何配置java應用程序充當身份提供者

回答

4

看看Shibboleth,這是一個可以隨時使用的SAML身份提供程序實現。事實上,你已經有一個應用程序,它要充當身份提供商爲您提供了兩種選擇:

  1. 配置Shibboleth的使用您的用戶數據模型作爲身份驗證源(不知道這是可能的)
  2. 使用用於實現Shibboleth的Java庫OpenSAML-Java。這僅提供SAML 2.0的Web SSO配置文件的SAML斷言的處理(創建,驗證,交換)。您必須在App2和App1中自行創建Web請求重定向過程。

SAML不是很無痛,而且它的一個綜合標準可以作爲OpenID或OAuth等其他更簡單標準的例子(它們有一些共同的原則,但確實更簡單)。它幾乎相同的故事比它與CORBA與Java RMI的

這裏是一個很好的起點,以獲得一些基本的瞭解什麼是使用SAML Web Browser SSO Profile時做到:

1

有兩個部分給你的問題。

你想:

  • 的Java服務器SAML(STS)
  • 的Java客戶端SAML

寫STS是一個不平凡的問題。使用現有的實現可能會更好。另一種可能性是OpenAM。它支持許多身份儲存庫的選項。

就客戶而言,請參考SAML : SAML connectivity/toolkit

相關問題