IDP 初始化 SSO,当没有 PrivateKey 的 pwd 时如何配置
Posted
技术标签:
【中文标题】IDP 初始化 SSO,当没有 PrivateKey 的 pwd 时如何配置【英文标题】:IDP Initialized SSO, how to configure when dont have the pwd for PrivateKey 【发布时间】:2015-10-07 16:59:13 【问题描述】:我正在使用 spring-security saml 扩展来为我的应用程序实现 IDP 发起的 SSO。我正在使用 https 协议并且签名/加密已打开。我不需要 SLO/SP 发起的 SSO。
关于传输层的加密/解密(因为使用 HTTPS 协议),我很好,因为我的 web 容器(SP 之一)将负责解密部分。而且这个证书可能和 SP 的证书不同。
在 SP 端,我需要 IDP 的公钥来验证 SAMLAuthResponse Msg 上的签名,我将其作为 IDP 元数据文件的一部分...所以这里没有问题。
几个qns:
-
对于 SAMLAuthResponse 消息的解密,我需要 SP 吗
证书的私钥?
如果我需要私钥,如何
当我有 jks 文件时,为 keyManager 创建 bean 定义,
jks-pwd,别名,但没有私钥密码?我可以在别名-密码值对的密码字段中传递空字符串(如“”)吗?
【问题讨论】:
【参考方案1】:在这种情况下,您可以跳过私钥的使用。您可以在manual chapter 8.1 中找到有关如何在没有密钥库的情况下使用 Spring SAML 的详细信息:
如果您的应用程序不需要创建数字签名 和/或解密传入的消息,可以使用空的 不需要任何 JKS 文件的密钥库的实现 - org.springframework.security.saml.key.EmptyKeyManager。这可以是 例如,仅使用 IDP 初始化的单点登录时。 请注意,在使用 EmptyKeyManager 时,一些 Spring SAML 功能将不可用。这至少包括 SP 初始化的 单点登录、单点注销、使用其他密钥 ExtendedMetadata 和元数据签名的验证。使用 以下 bean 以初始化 EmptyKeyManager:
<bean id="keyManager" class="org.springframework.security.saml.key.EmptyKeyManager"/>
【讨论】:
以上是关于IDP 初始化 SSO,当没有 PrivateKey 的 pwd 时如何配置的主要内容,如果未能解决你的问题,请参考以下文章