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

 .NET Discussion :

Créer des webservices sécurisés


Sujet :

.NET

  1. #1
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut Créer des webservices sécurisés
    Bonjour,

    Dans le cadre de ma prochaine application j'aimerais utiliser l'approche Webservices proposée par microsoft. j'ai déjà travaillé avec les webservices et java (sous netbeans) mais je souhaite aujourd'hui concevoir une solution (il s'agit d'un projet personnel mais j'ai souhaité me mettre des contraintes réelles afin de progresser)

    1) Le client doit se connecter avec un login+mot de passe qui est stocké dans ma base de données (gérée par le serveur), donc si j'ai bien compris on utilise IIS là ?

    J'ai trouvé ce tuto : http://defaut.developpez.com/tutorie...ices/https/cs/

    2) Cependant il est très ancien, est-il toujours d'actualité ? Je me dois de réaliser une application très sécurisée (aucun accès externe à la base de données). Si oui autant le prendre il est vraiment bien expliqué.

    3) D'ailleurs si le serveur dédié qui héberge mon serveur est dans les locaux de l'entreprise et n'est pas connecté à internet, je viens de lire qu'il fallait que les webservices soient connectés à internet (ça faisait parti des inconvénients) je suppose qu’être sur le même réseau que le serveur et y accéder via son IP suffit.

    4) Enfin dernière question à laquelle je n'ai pas su trouver de réponse : Pour que mon client ait accès aux services, on fait ajouter une référence de service dans VS. Mais j'aimerais donc que l'adresse du serveur sur lequel sont les services ne soit pas fixe et qu'il faille la rentrer lors du lancement de l'application, est-ce possible ? Comment faire ? Parce que si j'ajoute pas de référence de services dans VS je n'aurais pas accès aux fonctions ni la possibilité de compiler.

    Merci d'avance,

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    1) Le client doit se connecter avec un login+mot de passe qui est stocké dans ma base de données (gérée par le serveur), donc si j'ai bien compris on utilise IIS là ?
    IIS permet d'héberger tes sites/services web.

    2) Cependant il est très ancien, est-il toujours d'actualité ? Je me dois de réaliser une application très sécurisée (aucun accès externe à la base de données). Si oui autant le prendre il est vraiment bien expliqué.
    Pour les webservices tu peux utiliser WCF qui est plus d'actualité.

    3) D'ailleurs si le serveur dédié qui héberge mon serveur est dans les locaux de l'entreprise et n'est pas connecté à internet, je viens de lire qu'il fallait que les webservices soient connectés à internet (ça faisait parti des inconvénients) je suppose qu’être sur le même réseau que le serveur et y accéder via son IP suffit.
    Tu suppose bien .

    4) Enfin dernière question à laquelle je n'ai pas su trouver de réponse : Pour que mon client ait accès aux services, on fait ajouter une référence de service dans VS. Mais j'aimerais donc que l'adresse du serveur sur lequel sont les services ne soit pas fixe et qu'il faille la rentrer lors du lancement de l'application, est-ce possible ? Comment faire ? Parce que si j'ajoute pas de référence de services dans VS je n'aurais pas accès aux fonctions ni la possibilité de compiler.
    Si tu utilises WCF c'est possible de modifier l'adresse des services dans le code du client au moment de l'exécution ce qui permet d'avoir une adresse dynamique.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut
    D'accord merci beaucoup, WCF gère la partie connexion sécurisée en HTTPS ?

  4. #4
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    C'est tout à fait possible d'utiliser HTTPS avec WCF

  5. #5
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut
    Merci pour vos réponses.

    1) Cependant j'ai du mal à saisir les différences entre les projet "librairies Services WCF" et "application de services WCF", dans mon cas lesquelles utiliser ?

    J'ai regardé ici : http://msdn.microsoft.com/fr-fr/library/bb552362.aspx
    Sans vraiment saisir laquelle serait mieux pour moi.


    Je pense simuler mon serveur (windows server) avec virtualbox, en espérant que ça fonctionne.

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2013
    Messages : 76
    Points : 143
    Points
    143
    Par défaut
    Vu que tu compte héberger ton service sur un windows server, je pense que le template "application de services WCF" correspond à tes besoins.

    (Les bibliothèques de service sont destiné à être intégrer à d'autre applications).

    Ensuite pour le HTTPS, ça change rien au niveau du code, ça sera surtout de la configuration pour l'utiliser (avantage de WCF).

    Après, si tu as pas de domaine sur le réseau local, tu peux simuler ton domaine en modifiant le fichier hosts de windows. (ex: serveur.loc)

    Après pour HTTPS, il faudra aussi jouer avec des certificats bidons (donc faire des exceptions de sécurité)

  7. #7
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut
    J'ai du mal à comprendre la configuration des services WCF, il faut les configurer avec des adresses ("endpoint") ?

    Alors que mon serveur devrait pouvoir etre déployer sur plusieurs poste indépendamment.

    Faut-il faire cette "configuration WCF" pour que ça fonctionne ?

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2013
    Messages : 76
    Points : 143
    Points
    143
    Par défaut
    C'est le serveur ou le client qui devra être déployer sur plusieurs postes?

    Il va falloir créer des 'endpoint' pour que ton service soit accessible.

    Le endpoint aura 3 éléments obligatoire, l' "address",le "binding" et le "contrat"

    l'adresse : où le service se trouve
    le binding : méthode de communication (http, https, tcp ...)
    le contrat : définit les types de données disponible et les opérations possibles.

    Sans endpoint, ton service ne sera pas utilisable. Après les endpoint peuvent être créer par le fichier de configuration ou par code.

  9. #9
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut
    Dans l'absolu les deux:

    - Le serveur pourra etre déployé sur plusieurs serveurs.
    - Le client sur plusieurs postes, et à chaque client on devra associer l'IP et le port du serveur choisi.

    C'est pour ça que pour le moment je suis un peu confus, j'ai du mal à concevoir le principe de end point dans le cadre d'une application à déployer et une application qui se devra facile à installer. Et pas seulement faire un "F5" pour lancer le debug.

    Certains exemples sur internet parlent de créer un projet "Console" pour le serveur et non pas un truc WCF, et seulement ensuite d'y ajouter les bonnes références.

    A première vue j'ai l'impression que pour un débutant c'est beaucoup plus simple de passer par là plutot que par le super projet configuré de VS.

    J'ai décidé de partir sur cet exemple ( http://www.programminghelp.com/progr...-service-in-c/ ) qui me semble abordable au niveau configuration pour le serveur. Il gérera ainsi facilement le déploiement.

    Cependant ils font un truc étrange avec le Shell de Windows SDK, il faudrait donc en théorie que le mec qui installe mon appli fasse:
    1) Déployer le serveur
    2) Générer fichier pour le client à l'aide du SDK
    3) Lancer le client et mettre le fichier de config

    N'est-il pas possible pour le client de ne pas passer par ce fichier de config mais seulement se connecter via l'ip et le port ? L'exemple proposé permet d'ajouter le app.config et le generatedProxy.cs qui sont donc nécessaires à la compilation ce n'est donc pas possible de les mettre une fois déployé alors que c'est mon but. Comment faire ?

    Il semblerait qu'il faille regarder du coté des dynamic proxy non ?

    Merci

  10. #10
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Il est possible de ne pas utiliser de fichier de configuration au niveau du client. Tu peux spécifier le endpoint au moment de l'instanciation du client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var client = new Service1Client(new BasicHttpBinding(), new EndpointAddress("address"));

Discussions similaires

  1. [Web Service] Peut-on créer des dossiers et y uploader des images avec un webservice ?
    Par andrianiaina dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 11/08/2011, 15h01
  2. Réponses: 1
    Dernier message: 24/04/2009, 21h46
  3. DirectDraw: Créer des surfaces 256 couleurs
    Par Magus (Dave) dans le forum DirectX
    Réponses: 5
    Dernier message: 14/10/2002, 22h28
  4. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22

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