我们的身份提供者使用BCFKS
格式的密钥和证书。要在密钥工具中使用该格式,我们指定CryptoComply算法(而不是服务)提供者,如下所示:
keytool.exe -list -keystore key.store -storepass some.password ^
-storetype BCFKS ^
-providername CCJ ^
-providerClass com.safelogic.cryptocomply.jcajce.provider.CryptoComplyFipsProvider ^
-providerpath ccj-3.0.1.jar
我们如何在新的SpringSAML2
配置中做同样的事情?是否可以设置一些属性来实现这一点?
下面是一个示例"application.yml
":
spring:
security:
saml2:
relyingparty:
registration:
idprovider:
signing:
credentials: &rp-metadata
- private-key-location: classpath:credentials/rp-private.key
certificate-location: classpath:credentials/rp-certificate.crt
identityprovider:
metadata-uri: file:///drive$metadata_foldersaml2-metadata.xml
回答我自己的问题,服务提供者不需要为其密钥存储使用与身份提供者相同的文件格式。IDP可以使用BCFKS密钥存储,SP可以使用JKS密钥存储,它们仍然可以通信。密钥存储库的格式不会影响通过网络发送的证书本身。在我们的示例中,SP没有必要使用BCFKS密钥存储。在Spring中指定键存储类型。application.properties
";例如,可以使用以下命令:
server.ssl.key-store-type=JKS
saml.keystore.type=${server.ssl.key-store-type}