我正在嘗試使用SAML2實現SSO,並且我的應用程序是多租戶的,並充當SP。我目前正致力於生成SP元數據,但我有點卡在加密方面,似乎找不到任何例子,除了斯特凡Rasmusson已經在那裏(我甚至買了他的書),但沒有它似乎涵蓋了元數據的生成。我的問題是,對於包含在元數據中的公鑰,什麼是生成這些公鑰的最佳方式。我是否應該使用現有的用於簽署其餘消息的jks,即:authnrequests等,或者這些密鑰是否應該是單獨的,並且密鑰對於驗證簽名與加密數據是否應該是唯一的?我有點迷路了,一直沒能找到很多文件,所以任何幫助,將不勝感激。我曾看過這篇文章:http://blog.samlsecurity.com/2012/02/generating-metadata-with-opensaml.html,但似乎他正在動態生成密鑰,這在生產中並不真正起作用。先謝謝您的幫助!生成SP的OpenSaml元數據
0
A
回答
1
在製作中,你當然不會在飛行中生成密鑰。您必須向IDP註冊您的SP元數據,這樣纔不會輕鬆工作(除非IDP由您掌控)。
允許使用SP to have two private keys,一個用於簽名,另一個用於加密/解密,但這不是強制性的。我遇到的大多數生產案例都使用相同的密鑰。我希望這有幫助。
看起來好像你有Shibboleth SP設置已經解決了,所以這個答案的其餘部分可能看起來沒有必要。但爲了完整性,以下是獲得Shibboleth SP的步驟。
- 獲取或構建私鑰存儲和證書。這可以是自簽名的,也可以是自簽名的。爲SP創建元數據文件並將其註冊到聯合身份驗證。 「簽名」和「加密」部分的條目將包含上一步中獲取的證書。
- 指定SP將接受的各種SAML綁定的AssertionConsumerService URL。該IDP將響應發送回這些網址中的一個
樣品SP元數據的XML文檔想下面:
<md:EntityDescriptor entityID="https://mysp.example.com/shibboleth-sp" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata">
<md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata">
<md:KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyName>mysp.example.com</ds:KeyName>
<ds:X509Data>
<ds:X509Certificate xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
REPLACE_ENTITY_ID_AND_ACS_URL_AND_PUT_YOUR_CERTIFICATE_HERE
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:KeyDescriptor use="encryption">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyName>mysp.example.com</ds:KeyName>
<ds:X509Data>
<ds:X509Certificate xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
REPLACE_ENTITY_ID_AND_ACS_URL_AND_PUT_YOUR_CERTIFICATE_HERE
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://mysp.example.com/shibboleth/Shibboleth.sso/SAML2/POST" index="1"/>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="http://mysp.example.com/shibboleth/Shibboleth.sso/SAML2/Artifact" index="2"/>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01" Location="http://mysp.example.com/shibboleth/Shibboleth.sso/SAML/Artifact" index="3"/>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post" Location="http://mysp.example.com/shibboleth/Shibboleth.sso/SAML/POST" index="4"/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
相關問題
- 1. 生成Shibboleth SP元數據
- 2. 使用OpenSaml生成SAML IDP元數據
- 3. 使用Spring Security生成兩個不同的SP元數據SAML'
- 4. 生成SQL SP校驗和
- 5. 使用Spring SAML -SP元數據與IDP元數據進行ADFS集成?
- 6. 服務提供商的元數據。使用OpenSAML
- 7. 從shibboleth sp和idp交換元數據
- 8. 使用OpenSAML v3從IDP元數據創建憑證對象
- 9. SP從剪貼板生成SQL表格
- 10. SP數據字典
- 11. 基於表元數據生成代碼
- 12. 離線生成Liquibase元數據
- 13. 使用XSLT元數據驅動生成
- 14. Android根據數組生成xml元素
- 15. 生成數據
- 16. 生成可與ASP.NET身份2.0聯合身份驗證一起使用的SAML SP元數據文件
- 17. 生成複雜數據庫(EAV)的單元測試數據
- 18. 如何在Spring Security SAML示例中配置IDP元數據和SP元數據?
- 19. 簽名加密驗證不成功opensaml
- 20. SAML 2.0 SP元數據:目的和證書的使用
- 21. 生成數據庫
- 22. 生成數據包
- 23. 生成數據庫
- 24. 數據幀生成
- 25. 生成數據幀
- 26. 無法查找SP連接的元數據
- 27. XSLT生成元素基數
- 28. Axis2和OpenSAML
- 29. GAE + SAML + JAVA + OpenSAML
- 30. OpenSAML HTTP Post Binding