Cómo utilizar el almacén de claves JKS en el contexto de Spring Security SAML2.
Estoy en medio de transferir una antigua implementación de SAML que fue escrita utilizando la Extensión de Seguridad de SAML de Spring a la Seguridad de SAML2 de Spring. Tengo dificultades con el siguiente bean:
<!-- Almacenamiento centralizado de claves criptográficas -->
<bean id="keyManager" class="org.springframework.security.saml.key.JKSKeyManager">
<constructor-arg value="classpath:security/ssoKeystore_test.jks"></constructor-arg>
<constructor-arg type="java.lang.String" value="client123"></constructor-arg>
<constructor-arg>
<map>
<entry key="ssokey" value="client123"></entry>
</map>
</constructor-arg>
<constructor-arg type="java.lang.String" value="ssokey"></constructor-arg>
</bean>
¿Existe alguna forma equivalente en el contexto de Seguridad de Spring para configurar el administrador de claves?
Quiero trabajar exclusivamente con la configuración de Java.
davy.ai
Sí, hay una forma equivalente en el contexto de Spring Security para configurar el administrador de claves utilizando la configuración de Java. Puede crear una clase que implemente la interfaz
org.springframework.security.saml.key.KeyManager
y utilizar la claseorg.springframework.security.saml.util.SAMLUtil
para cargar el archivo de almacén de claves. Aquí tienes un ejemplo de configuración de Java para el administrador de claves:En este ejemplo, utilizamos el método
SAMLUtil.getKeyStore
para cargar el archivo de almacén de claves desde el classpath, y luego obtenemos el certificado y la clave privada paraKEY_ALIAS
. Creamos un objetoSimpleKey
y establecemos las claves pública y privada, y luego creamos un objetoBasicCredential
con las mismas claves. Finalmente, creamos un objetoKeyManagerImpl
con una lista de objetosSimpleKey
(en este caso solo uno) y un mapa de alias de claves a credenciales (en este caso solo una entrada conKEY_ALIAS
ycredential
).