IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

[Axis] Securisation de l'appel client au WebService


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut [Axis] Securisation de l'appel client au WebService
    Bonjour tout le monde!

    J'espère poster dans la bonne section... Bref, j'ai un WebService qui tourne sous Axis/Tomcat et j'ai un client qui fait des appels sur mon WebService. Jusque là, rien de bien particulier!
    Mais je voudrais sécuriser l'appel, en effet, certaines données qui sont transmises lors de l'appel du client au WS peuvent être "secrètes", et donc je voudrais sécuriser l'appel, mais je ne sais pas du tout comment m'y prendre...

    Queslqu'un peut m'aider?

    Merci d'avance!!

    Wakaboo

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut
    Bonjour

    Tout dépend à quel niveau tu veux protéger les données:
    - Au niveau protocole: http -> https
    - Au niveau du message: ws-security (encryptage des données?, signature du message?)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut
    Merci pour la réponse rapide!

    En fait je sais pas trop ce qui est le mieux, mais j'aime toujours apprendre, donc si je pouvais avoir un petit topo, des liens vers des tutos ou autre, je suis preneur!
    Mais par rapport à ce que tu dis, si je passe en HTTPS, je crypte toute la trame, mais si je passe en ws-security, la trame passe en clair mais les données de la méthode sont cryptées, c'est ça?

    Je te remercie par avance!

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut
    c'est ça.

    Je sais que ws-security existe, mais je ne lai jammais mis en oeuvre.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut
    D'accord, je ferai quelques recherches là dessus!
    Et pour HTTPS, c'est déjà implémenté dans le JDK il me semble?

  6. #6
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Citation Envoyé par Wakaboo
    D'accord, je ferai quelques recherches là dessus!
    Et pour HTTPS, c'est déjà implémenté dans le JDK il me semble?
    Pour https il faut soit activer le connecteur https de tomcat (en commantaire dans le server.xml dans le rep conf) soit mettre un front-end apache.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut
    Et au niveau du Java, tu sais ce qu'il faut faire?

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    au niveau applicatif y'a rien à faire, juste la configuration de ton serveur tomcat ou/et apache ..

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut
    Donc je ne change pas mon code client, je configure Tomcat pou rqu'il passe en mode SSL, et tous les appels au WebService de mon client seront sécurisés??? Trop top! 8)

  10. #10
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Ouaip c'est ca. Si c'est résolu, ben met un tag résolu

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut
    Juste avant je me pose encore quelques questions!!! Après je cloture, promis!!
    * Vous parliez de "front-end apache", kézako?
    * J'ai également un site web en JSP qui va se connecter au WS, là aussi y'a rien à faire?
    * Celle là est plus sur le fond : comment ça se passe derrière? Schématiquement : Il y a un premier paquet qui est envoyé vers le WS qui identifie Tomcat, voit que c'est en SSL, revient côté programme et prévient que c'est en SSL, donc avant d'envoyer toute donnée, il crypte le tout?
    * Si Tomcat se charge de tout, pourquoi existe-t-il des implémentations de sécurisation?

    Merci beaucoup d'avance pour toutes ces questions!

  12. #12
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Citation Envoyé par Wakaboo
    Juste avant je me pose encore quelques questions!!! Après je cloture, promis!!
    * Vous parliez de "front-end apache", kézako?
    * J'ai également un site web en JSP qui va se connecter au WS, là aussi y'a rien à faire?
    * Celle là est plus sur le fond : comment ça se passe derrière? Schématiquement : Il y a un premier paquet qui est envoyé vers le WS qui identifie Tomcat, voit que c'est en SSL, revient côté programme et prévient que c'est en SSL, donc avant d'envoyer toute donnée, il crypte le tout?
    * Si Tomcat se charge de tout, pourquoi existe-t-il des implémentations de sécurisation?

    Merci beaucoup d'avance pour toutes ces questions!
    1) Apache HTTP Server est un serveur web classique (pas un servlet engine), il permet de crypter les echanges entre le client et lui-même, le serveur tomcat se trouvant derriere l'apache ou sur la même machine.
    L'avantage c'est la vitesse et la possibilité de faire d'autres choses comme du load balancing par exemple. Pour plus d'infos j'ai ecris un petit tutorial mais qui n'est pas encore finalisé. http://zekey.developpez.com/articles/ApacheTomcat/

    2)Il faudra veillez à ce que toutes les connections se fassent sur https au lieu de http.

    3) rien compris

    4) Pour la vitesse et les différents niveaux de sécurité

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut
    Merci pour ces réponses!! Je jette un oeil tout à l'heure à ton tuto!
    Je reprends la 3, moins crispé!
    Je ne comprends pas comment le client sait que le canal est sécurisé. Je suppose qu'avant tout envoi de donnée au WS, il y a une phase de dialogue entre le client et el WS pour qu'ils se mettent d'accord sur le fait que c'est du SSL. C'est bien ça?

  14. #14
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Non selon que tu utilises http://localhost ou https://localhost c'est sécurisé ou pas

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut
    D'accord, donc je spécifie mon endpoint en https et tomcat fait le reste!
    Et bien dans ce cas, ça mérite un tag résolu!

    Merci beaucoup à tous!!

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut
    Aïe aïe aïe!!!!
    Désolé de vous redéranger mais j'ai un petit soucis!!
    J'ai modifié le fichier de config server.xml
    J'ai créé un .keystore avec keytool
    j'ai rajouté les libs JSSE dans le axis/WEB-INF/lib
    Tomcat démarre sans problème, je peux m'y connecter en HTTPS
    Je déploie mon service
    Il est accessible en HTTPS
    Donc jusque là tout va bien!!

    Mais lorsque mon client fait un appel au WS, ça plante!
    J'ai une exception du type :
    [java] AxisFault
    [java] faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    [java] faultSubcode:
    [java] faultString: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
    [java] faultActor:
    [java] faultNode:
    [java] faultDetail:
    [java] {http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found

    J'en déduis qu'il trouve pas le certificat côté client, mais comment on fait pour le lui spécifier??

    Merci et désolé de vous re déranger encore!!!

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut
    Ca y est, j'ai trouvé!!!!
    Pfiou!!!

    Alors, il faut en fait rajouter deux lignes dans le code client :
    System.setProperty("javax.net.ssl.trustStore", "chemin au clientTruststore");
    System.setProperty("javax.net.ssl.trustStorePassword", "mot de passe du clientTruststore");
    Et après ça marche!

    Mais pour que ça marche, il fait donc générer des keystore côté client et serveur avec keytool, exporter un certificat du keystore serveur et l'importer dans le keystore client!

    Voilà, je re-tag résolu!

  18. #18
    raj
    raj est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 112
    Par défaut
    Je suppose qu'avant tout envoi de donnée au WS, il y a une phase de dialogue entre le client et el WS pour qu'ils se mettent d'accord sur le fait que c'est du SSL. C'est bien ça?
    Réponse :
    Non selon que tu utilises http://localhost ou https://localhost c'est sécurisé ou pas
    Passer par http ou https (pour le client) revient uniquement à choisir le port par défault ( 80 ou 443 ) . Pour l'envoi et le décryptage des données il y a bien entendu une négociation de clés au départ , HTTPS = HTTP + SSL .
    C'est le protocole SSL qui démarre après la connection TCP . Après négociation on repasse en mode HTTP .

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 20
    Par défaut
    Merciu pour cette précision!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Axis] Appel client ws avec authentification name/mdp
    Par kij dans le forum Services Web
    Réponses: 3
    Dernier message: 06/03/2009, 14h02
  2. Appel d'un webservice par un client
    Par ilhamita dans le forum Services Web
    Réponses: 0
    Dernier message: 20/11/2007, 11h53
  3. Réponses: 2
    Dernier message: 24/03/2007, 12h11
  4. Conception d'un systeme de gestion d'appel client
    Par Andry dans le forum Schéma
    Réponses: 24
    Dernier message: 01/09/2006, 18h31
  5. Compo HTTP et client SOAP webservice ?
    Par Bruno13 dans le forum Web & réseau
    Réponses: 34
    Dernier message: 03/04/2006, 18h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo