Je souhaite signer des demandes de service Web à l'aide d'Apache CXF et de WSS4J. Pour autant que je sache, j'aurais besoin d'un magasin JKS contenant le certificat que je veux utiliser pour signer. Vous devez pouvoir utiliser un certificat X.509 du magasin de certificats Windows. Le certificat doit être lu dans le magasin au moment de la signature de la demande de service Web. Je sais comment accéder au magasin et obtenir le certificat. Mais comment puis-je l'utiliser pour signer à la place du certificat de mon propre magasin JKS?Webservice Security et certificats Windows
Répondre
Le KeyStore n'a pas besoin d'être un JKS. Vous pouvez écrire votre propre fournisseur JCA et implémenter KeyStoreSpi, et avoir accès au magasin de certificats Windows.
Avez-vous trouvé ma réponse utile? – adrianboimvaser
Examinez this pour savoir comment utiliser le fichier de clés Windows. Ensuite, vous devez configurer CXF pour utiliser ce fichier de clés.
Comment puis-je demander à CXF d'utiliser ce magasin? – tobiasbayer
Il ne semble pas y avoir de bon moyen de le faire. Il existe une suggestion pour utiliser un pont Java-COM ici: http://objectmix.com/java/76948-accessing-certificates-windows-system-stores-java.html. Cette réponse suggère que vous serez bloqué dans l'enfer JNI: https://lists.owasp.org/pipermail/owasp-webscarab/2010-October/001123.html – rtperson
Cependant, s'ils stockent les certs dans Active Directory, alors il sera accessible via LDAP et JNDI. C'est ce que je recommanderais. Faites-moi savoir si vous souhaitez un exemple de code, et je l'afficherai comme réponse. – rtperson
Je viens de trouver qu'il est possible d'atteindre en utilisant MerlinDevice
classe. Voilà comment son fait:
1) Configuration des propriétés pour 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) Le fichier client_sign.properties
ressemble à ceci:
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) Et StupidCallback
juste retourne constante chaîne comme mot de passe (sa valeur n'a pas vraiment d'importance):
public class StupidCallback implements CallbackHandler
{
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException
{
WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];
pc.setPassword("password");
}
}
C'est tout.
- 1. Webservice security
- 2. json webservice security
- 3. .NET WebService Security pouvant voir et utiliser
- 4. WCF WebService Security: Comment utiliser la sécurité sur un WebService?
- 5. Client webservice (soap) Java - utiliser des certificats
- 6. Magasin de certificats Windows
- 7. Importer des certificats CA StartCom sous Windows JRE
- 8. Navigateurs et magasin de certificats
- 9. CakePHP: using Security :: allowedControllers et Security :: allowedActions
- 10. Certificats SSO et SSL
- 11. SSL et certificats
- 12. Java: certificats ssl pour tester sur Windows?
- 13. Certificats SHA2 sous Windows 2003 CA
- 14. Spring-Security avec X509?
- 15. Ruby et WS-Security
- 16. Spring Security et AOP
- 17. spring-security et jsf
- 18. Certificats ssl Silverlight et wildcard
- 19. Mono, WebClient et certificats SSL invalides
- 20. NHIbernate et Security/Business Layer
- 21. Heure et date génération webservice
- 22. Donner un accès webservice au service Windows
- 23. OpenSSL SSL_CTX_use_PrivateKey_file avec le magasin de certificats Windows
- 24. Java: lecture de certificats à partir de Windows Store
- 25. Sn.exe peut-il utiliser le magasin de certificats Windows?
- 26. Certificats IIS7 et X.509: connexion d'asp.net à un service Web - où stocker les certificats?
- 27. Equivalent Linux pour le magasin de certificats Windows
- 28. Comment automatiser l'importation de certificats sur un périphérique Windows CE?
- 29. Web Service Security
- 30. PKCS12 Certificats
Les certificats ne sont pas utilisés pour la signature, les clés sont. Avez-vous accès à une clé privée? Dans ce cas, vous pouvez réellement signer quelque chose. –