Spring 安全 SAML - 签名和解密
Spring Security SAML - Signature and Decryption
我正在尝试使用 Spring 安全 SAML 作为我的一个项目的 SP。 SAML2.0 断言来自第 3 方系统并已获得数字签名且断言已加密。
我试图用两个 certificates/keys(一个用于签名,一个用于加密)创建一个 Java 密钥库,但它不起作用。如果我只有一个 jks 用于签名或解密,其中一个就可以工作。在任何地方都找不到任何使用两个 certificates/keys 进行签名和解密的示例。下面是 JKSKeymanager 配置。任何帮助将不胜感激。
这行不通
<beans:bean id="keyManager" class="org.springframework.security.saml.key.JKSKeyManager">
<beans:constructor-arg value="file:${config.location}/defaultSAMLKeyStore.jks"/>
<beans:constructor-arg type="java.lang.String" value="Welcome1"/>
<beans:constructor-arg>
<beans:map>
<beans:entry key="samlAssertionEncryption" value="Welcome1"/>
<beans:entry key="samlSignature" value="Welcome1"/>
</beans:map>
</beans:constructor-arg>
<beans:constructor-arg type="java.lang.String" value="samlSignature"/>
</beans:bean>
当我们交换密钥时签名/(或)解密有效
<beans:bean id="keyManager" class="org.springframework.security.saml.key.JKSKeyManager">
<beans:constructor-arg value="file:${config.location}/defaultSAMLKeyStore.jks"/>
<beans:constructor-arg type="java.lang.String" value="Welcome1"/>
<beans:constructor-arg>
<beans:map>
<beans:entry key="samlSignature" value="Welcome1"/>
</beans:map>
</beans:constructor-arg>
<beans:constructor-arg type="java.lang.String" value="samlSignature"/>
</beans:bean>
经过一段时间后,我发现这不是问题。签名验证不需要 JKS 密钥库,因为它是使用 SAML Response/Metadata 中的 certificate-data/method 进行验证的。我们目前唯一需要的密钥库是用于断言的解密,它工作正常。
我正在尝试使用 Spring 安全 SAML 作为我的一个项目的 SP。 SAML2.0 断言来自第 3 方系统并已获得数字签名且断言已加密。
我试图用两个 certificates/keys(一个用于签名,一个用于加密)创建一个 Java 密钥库,但它不起作用。如果我只有一个 jks 用于签名或解密,其中一个就可以工作。在任何地方都找不到任何使用两个 certificates/keys 进行签名和解密的示例。下面是 JKSKeymanager 配置。任何帮助将不胜感激。
这行不通
<beans:bean id="keyManager" class="org.springframework.security.saml.key.JKSKeyManager">
<beans:constructor-arg value="file:${config.location}/defaultSAMLKeyStore.jks"/>
<beans:constructor-arg type="java.lang.String" value="Welcome1"/>
<beans:constructor-arg>
<beans:map>
<beans:entry key="samlAssertionEncryption" value="Welcome1"/>
<beans:entry key="samlSignature" value="Welcome1"/>
</beans:map>
</beans:constructor-arg>
<beans:constructor-arg type="java.lang.String" value="samlSignature"/>
</beans:bean>
当我们交换密钥时签名/(或)解密有效
<beans:bean id="keyManager" class="org.springframework.security.saml.key.JKSKeyManager">
<beans:constructor-arg value="file:${config.location}/defaultSAMLKeyStore.jks"/>
<beans:constructor-arg type="java.lang.String" value="Welcome1"/>
<beans:constructor-arg>
<beans:map>
<beans:entry key="samlSignature" value="Welcome1"/>
</beans:map>
</beans:constructor-arg>
<beans:constructor-arg type="java.lang.String" value="samlSignature"/>
</beans:bean>
经过一段时间后,我发现这不是问题。签名验证不需要 JKS 密钥库,因为它是使用 SAML Response/Metadata 中的 certificate-data/method 进行验证的。我们目前唯一需要的密钥库是用于断言的解密,它工作正常。