2010-11-27 83 views
2

SAML,SSO是我項目中的一項新功能。我沒有足夠的時間去嘗試找到正確的工具/ API。請求你幫忙。SAML SSO客戶端,測試模擬器SAML提供者/服務器

我需要實現必須能夠發送SAML斷言並從SAML提供者/服務器接收SAML響應的SAML客戶端(在Java上)。 我應該使用哪種Java API來編寫Java中的SAML客戶端?

而且我們的客戶已經有SAML響應者/服務器,它接收SAML請求併發送帶有用戶配置文件和其他信息的SAML響應。但是我們需要編寫測試模擬器SAML應答器/服務器。我已經使用Apache & Tomcat服務器。 我應該使用哪個服務器/ API來實現此測試模擬器SAML響應器/服務器?

回答

1

我在客戶端使用Open SAML,在服務器端使用簡單的HTTP請求/響應,因爲我沒有太多的SAML請求類型。所以最好不要在服務器端使用如此複雜的Web服務和SAML API。

7

我們使用OpenSAML,它非常靈活,並不難學習/使用。我用它來編寫服務提供者(包括一些客戶定製的版本),處理請求和未經請求的SAMLResponse XML,發送AuthnRequests到身份提供者,調用IdP AttributeQuery服務,以及模擬身份提供者SAMLResponse XML(用於測試)。

我從你的描述中想到你會寫身份提供者部分?如果您只是在簡單地進行非請求的SAMLResponse XML,OpenSAML對您來說可能是矯枉過正的。如果您的XML消息大部分是相同的,只需要幾個內容元素從請求變爲請求,那麼您可以使用簡單的字符串模板並填寫少量變化的元素,而不需要特殊的SAML庫。你說

一件事確實讓我困惑:

我們的客戶已經有了SAML響應/服務器接收SAML請求和發送與用戶的SAML響應譜

如果它們是服務提供商,這是SAML SSO,然後他們通過瀏覽器請求接收SAMLResponse XML,並通過在用戶瀏覽器中顯示內容進行響應。他們不會通過用戶配置文件向您發送回覆。您可能沒有足夠的時間進行實驗,但我會鼓勵您花一點時間閱讀SAML文檔 - 即使只是閱讀SAMLOverview也應該給您更多的理解。

+0

Tnx很多最後我得到了一些線索。是!我們有幾套SAML請求和響應。現在,我使用OpenSAML運行JAVA客戶端並通過HTTPS發送SOAP(使用Apache + Tomcat)。你正確的,我需要寫一個身份提供者;客戶已經擁有它;現在我需要處理SAML請求並從身份提供者發送SAML響應。如果我可以將MIME類型設置爲xml,並使用SOAP信封(可能爲String模板)在SAML中發回HTTPS響應,我相信我的模擬器身份服務器足夠好。任何進一步的建議。 – 2010-12-02 07:11:39

0

OpenSAML是一組開源的C++ & Java庫,旨在支持使用安全聲明標記語言(SAML)的開發人員。 請參閱openSAML API