Deseo firmar solicitudes de servicios web utilizando Apache CXF y WSS4J. Por lo que sé, necesitaría una tienda JKS que contenga el certificado que quiero usar para firmar. Existe el requisito de poder usar un certificado X.509 del almacén de certificados de Windows. El certificado debe leerse en la tienda al momento de firmar la solicitud del servicio web. Sé cómo acceder a la tienda y obtener el certificado. ¿Pero cómo puedo usarlo para firmar en lugar del certificado de mi propia tienda JKS?Seguridad de servicios web y certificados de Windows
Respuesta
KeyStore no necesita ser un JKS. Puede escribir su propio proveedor JCA e implementar KeyStoreSpi, y hacer que acceda al almacén de certificados de Windows.
¿Encuentras mi respuesta útil? – adrianboimvaser
Mire this que explica cómo usar el almacén de claves de Windows. Luego debe configurar CXF para usar ese almacén de claves.
¿Cómo puedo decirle a CXF que use esa tienda? – tobiasbayer
No parece haber una buena manera de hacerlo. Se sugiere utilizar un puente Java-COM aquí: http://objectmix.com/java/76948-accessing-certificates-windows-system-stores-java.html. Esta respuesta sugiere que estarás atrapado en JNI hell: https://lists.owasp.org/pipermail/owasp-webscarab/2010-October/001123.html – rtperson
Sin embargo, si almacenan los certificados en Active Directory, entonces Se podrá acceder a través de LDAP y JNDI. Eso es lo que recomendaría. Avíseme si desea algún código de muestra y lo publicaré como respuesta. – rtperson
Acabo de encontrar que es posible lograr usando la clase MerlinDevice
. Eso es como se hace:
1) Configuración de las propiedades de WSS4JOutInterceptor
:
Map<String,Object> outProps = new HashMap<String,Object>();
outProps.put(WSHandlerConstants.ACTION, "Signature");
outProps.put(WSHandlerConstants.USER, "Friendly_name_of_your_certificate");
outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, StupidCallback.class.getName());
outProps.put(WSHandlerConstants.SIG_PROP_FILE, "client_sign.properties");
WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
2) El archivo client_sign.properties
se parece a esto:
org.apache.ws.security.crypto.provider=org.apache.wss4j.common.crypto.MerlinDevice
keystore.provider=SunMSCAPI
cert.provider=SunMSCAPI
keystore.type=Windows-MY
truststore.type=Windows-ROOT
3) Y StupidCallback
sólo devuelve constante de cadena como una contraseña (su valor en realidad no importa):
public class StupidCallback implements CallbackHandler
{
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException
{
WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];
pc.setPassword("password");
}
}
Eso es todo.
- 1. WCF, Seguridad y Certificados
- 2. Seguridad y autenticación en servicios web
- 3. Instalación de certificados Advertencia de seguridad ¿Alternativa?
- 4. programático WCF mensaje de seguridad con certificados
- 5. Mercurial 1.7.3 error de certificados de Windows
- 6. Servicios de informes 2008 R2 servicios web api: ¿cómo administro los permisos de seguridad?
- 7. Autenticación mutua con servicios web
- 8. Tienda de certificados de Windows
- 9. ¿Qué es una buena lectura de seguridad de servicios web/WCF?
- 10. ASP.NET MVC y servicios web
- 11. Asp.Net MVC y servicios web
- 12. Mongodb, sharding y múltiples servicios de Windows
- 13. sueño rosca y servicios de Windows
- 14. Servicios web y retrotracción de transacciones
- 15. Powershell, servicios web y tipos de objeto
- 16. Variables de sesión y servicios web
- 17. Protección de servicios web
- 18. servicios web, aplicación web
- 19. Servicio WCF: certificados y seguridad de mensajes con autenticación de nombre de usuario
- 20. RabbitMQ + Web Stomp y seguridad
- 21. Evite errores de certificados SSL no válidos al llamar a servicios web en .Net
- 22. Marco de servicios de Windows?
- 23. Método de sobrecarga en los servicios web
- 24. es tranquilo solo para servicios web O para servicios web Y páginas web?
- 25. Manual para certificados X.509 en Windows
- 26. Instalar certificados en el almacén de certificados de usuario local de Windows en C#
- 27. Servicios de Windows en EC2?
- 28. C# Servicios de Windows Alternativa
- 29. ¿Es posible tener un rol web con múltiples dominios y certificados SSL en Windows Azure?
- 30. WCF, servicios web RESTful y autenticación personalizada
Los certificados no se utilizan para firmar, las claves sí lo están. ¿Tiene acceso a una clave privada? En ese caso, puedes firmar algo. –