2015-09-19 91 views
2

經歷瞭如此多的谷歌網站之後,在stackoverflow中閱讀了如此多的QA,真的很困惑如何使用SAML 2與Java一起實現SP。使用SAML 2和Java實現服務提供商

我理解理論概念,但沒有弄清楚如何正確實施它。

目前,我的客戶端已經與我共享IDP元數據文件並要求提供SP元數據文件。這是我第一個掙扎點。

  1. 如何實際生成元數據文件?有沒有一種工具可以生成它?
  2. 如何使用Java庫實現SAMLRequest生成,SAMLResponse解析。
  3. 人們推薦這麼多公開可用的網站,它們支持IDP,SP功能,但無法選擇正確的繼續。我需要一些使用SAML 2在Java中實現服務提供者的具體示例。

真的很感謝在這種情況下有人幫助我。如果我的問題不清楚,請糾正我,以便我將嘗試對其進行編輯。

回答

4

如果您需要在Java中構建SP,我會推薦使用Spring SAML moduleOpenSAML library,但這些可能會爲您提供更多的工作。如果你最終使用OpenSAML,我有一本書,A Guide to OpenSAML,介紹了SAML和OpenSAML庫。我也有一個blogg with many examples

但是,我會建議您首先考慮使用SAML的現成產品,如Shibboleth這是SAML的免費和開放源代碼解決方案。這將使您無需學習SAML協議的細節,而且由於開發人員已經做出不同的安全考慮,所以它會更安全。

+0

謝謝你斯蒂芬......我也讀過你對其他問題的回覆。客戶端特別要求我使用OpenSAML(我不知道爲什麼......),所以我正在尋找一些示例實現...將按照您的建議工作。 – user4501968

+0

OpenSAML經過充分測試和可互操作的代碼。您可能會以與現有庫相互操作的方式完成簽名和加密,並且OpenSAML的使用相當廣泛。 Shibboleth是由開發OpenSAML的同一組開發的,你可以在https://wiki.shibboleth.net/confluence/display/DEV/Source+Code+Access – judielaine

+0

看到他們的代碼。好吧,祝你好運,我的書是基於一個例子我在github上實現了一個SAML sp –

0

@Stefan有一些很好的建議。

您需要的是SAML協議客戶端堆棧。請參閱:SAML : SAML connectivity/toolkit以及文章中的鏈接。

根據你的問題,不同的堆棧以不同的方式做到這一點。我使用的一些商業堆棧有很好的文檔和示例代碼來完成這一切。