Single sign on Spring SAML-使用密钥库中的多个IDP证书而不是元数据XML 我能够将我的应用程序(SP)与Okta(IDP)集成。 我将只执行IDP发起的登录 但Okta将不是我唯一的IDP,我不想继续向我的应用程序添加新的IDP元数据XML(因为这意味着我需要编辑SpringXML文件,添加新的IDP并重新启动服务器)
所以我只想将IDP X509证书(公钥)导入我的密钥库,并使用它们来验证我的SAML响应。可能吗? 或者换句话说,我想在运行时注册一个IDP,而不需要对我的应用程序进行任何更改或重新启动它。 如果是,您能否提供有关如何做到这一点的资源 目前,我已经在我的应用程序的SpringXML文件中提供了Okta的元数据XML,如下所示Single sign on Spring SAML-使用密钥库中的多个IDP证书而不是元数据XML 我能够将我的应用程序(SP)与Okta(IDP)集成。 我将只执行IDP发起的登录 但Okta将不是我唯一的IDP,我不想继续向我的应用程序添加新的IDP元数据XML(因为这意味着我需要编辑SpringXML文件,添加新的IDP并重新启动服务器),single-sign-on,metadata,x509certificate,keystore,spring-saml,Single Sign On,Metadata,X509certificate,Keystore,Spring Saml,所以我只想将IDP X509证书(公钥)导入我的密钥库,并使用它们来验证我的SAML响应。可能吗? 或者换句话说,我想在运行时注册一个IDP,而不需要对我的应用程序进行任何更改或重新启动它。 如果是,您能否提供有关如何做到这一点的资源 目前,我已经在我的应用程序的SpringXML文件中提供了Okta的元数据XML,如下所示 <bean id="metadata" class="org.springframework.security.saml.metadata.MetadataManag
<bean id="metadata" class="org.springframework.security.saml.metadata.MetadataManager">
<constructor-arg>
<list>
<bean class="org.opensaml.saml2.metadata.provider.FilesystemMetadataProvider">
<constructor-arg>
<value type="java.io.File">C:\\DEV\\idp_metadata\\metadata.xml</value>
</constructor-arg>
<property name="parserPool" ref="parserPool" />
</bean>
</list>
</constructor-arg>
</bean>
C:\\DEV\\idp\u metadata\\metadata.xml
谢谢
Abhishek我完成了对我的应用程序的更改,使其依赖于密钥库中存在的IDP证书。 但需要注意的是,如果将来添加新的IDP证书,则需要重新启动服务器
securityProfile
更改为pkix
,而不是默认的metaIOP
keytool-importcert-file certificate.txt-keystore keystore.jks-alias“alias”
SAMLContextProviderLB
并注入了pkixresolver
SAMLProcessorImpl
和websoprofileconsumeripl
getPeerEntityID
/getPeerEntityMetadata.getEntityID()
的依赖关系,并将其替换为response.getIssuer().getValue()
,因为两者必须相同,SAML才能工作。
信任证书从密钥库中获取,密钥库在启动期间加载一次
在下一次更新中,我将尝试找出如何执行.jks文件的定时刷新以加载新证书。您能解释一下吗#4-实现了几个类来覆盖元数据XML的需要。SAMLProcessorImpl和WebsProfileConsumerImpl更详细一点?