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

WebDev Discussion :

Webservice : accès concurrentiel, persistance de contexte et authentification


Sujet :

WebDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Par défaut Webservice : accès concurrentiel, persistance de contexte et authentification
    Bonjour,

    j'ai créé un Webservice avec WB17 0.78n, les fonctions renvoient du flux XML en fonctions de paramètres. La consommation se passe bien, je récupère bien mon flux.

    J'ai cependant plusieurs questions :

    1) Accès concurrentiel
    a) Si plusieurs applications consomment le webservice en même temps avec des paramètres différents, comment le webservice gère l'accès concurrentiel à ses fonctions ?
    b) Ne risque-t-on pas de télescoper le flux XML entre les 2 appelants ?

    2) Persistance de contexte
    a) J'utilise la persistance de contexte avec DéclareContexteWebservice cependant, jusqu'à quand le contexte d'une variable persiste si l'application consommatrice tourne en permanence et appel le webservice via un timer ? (TimeOut de libération du contexte)

    b) Est-ce que l'accès à une variable de contexte est bien spécifique à une "session webservice" ? Par exemple si ma variable de contexte vaut 10 après consommation du webservice par un poste client A, est-ce que je suis certain qu'elle sera remise à 0 si je lis son contenu depuis un poste client B ?
    (En effet si je consomme mon webservice j'accède à ma variable de contexte et son contenu, tant que je ne ferme pas mon application qui consomme le webservice la variable est accessible. Si je la ferme, la variable est remise à 0)

    3) Authentification
    a) Est-il possible de s'authentifier lorsqu'on utilise un Webservice (dans le cas où il accède à des données sensibles ?) Si oui comment le faire ?
    b) Lors de la création du Webservice, comment peut-on spécifier un login+mot de passe nécessaires lors de l'importation du webservice dans une application ?

    Merci !

  2. #2
    Membre expérimenté

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2010
    Messages : 125
    Par défaut mise en forme
    Citation Envoyé par cladoo Voir le message
    Bonjour,

    j'ai créé un Webservice avec WB17 0.78n, les fonctions renvoient du flux XML en fonctions de paramètres. La consommation se passe bien, je récupère bien mon flux.

    J'ai cependant plusieurs questions :

    1) Accès concurrentiel
    a) Si plusieurs applications consomment le webservice en même temps avec des paramètres différents, comment le webservice gère l'accès concurrentiel à ses fonctions ?
    - Le web service fonctionne de la même manière qu'un site web, le moteur CGI générant un "environnement de travail" propre à l'appel : a priori pas de risque de téléscopage...
    b) Ne risque-t-on pas de télescoper le flux XML entre les 2 appelants ?
    - A priori non (plusieurs de nos applications exploitent un WS avec des accès simultanés : applis (jusqu'a un cinquantaine de users en TSE en simultané, sites web (difficile a déterminer mais quelques dizaines simultanés potentiels)
    2) Persistance de contexte
    a) J'utilise la persistance de contexte avec DéclareContexteWebservice cependant, jusqu'à quand le contexte d'une variable persiste si l'application consommatrice tourne en permanence et appel le webservice via un timer ? (TimeOut de libération du contexte)
    - A priori, tant que l'application consommatrice revient appeler régulièrement le WS, la session est maintenue, donc le contaxte également. Attention au Time Out du serveur webdev par defaut 16 mn je crois...
    b) Est-ce que l'accès à une variable de contexte est bien spécifique à une "session webservice" ? Par exemple si ma variable de contexte vaut 10 après consommation du webservice par un poste client A, est-ce que je suis certain qu'elle sera remise à 0 si je lis son contenu depuis un poste client B ?

    (En effet si je consomme mon webservice j'accède à ma variable de contexte et son contenu, tant que je ne ferme pas mon application qui consomme le webservice la variable est accessible. Si je la ferme, la variable est remise à 0)
    - oui... le moteur génère une 'session' qui crée un pseudo environnement pour son contexte WebService... si vous laissé le stockage du contexte stocké sur disque (sur le serveur), mode par défaut, le fichier généré du contexte est identifié par son id de session.
    3) Authentification
    a) Est-il possible de s'authentifier lorsqu'on utilise un Webservice (dans le cas où il accède à des données sensibles ?) Si oui comment le faire ?
    - J'utilise une méthode d'authentification basé sur un GUID (windows) qui est renvoyé en réponse au consommateur. ce "jeton" doit être passé à toutes les autres méthodes du WS pour authentifier le contexte (cité précé demment)
    - Autre possibilité : a tester avec la nouvelle MAJ, l'utilisatiion du WS-ADRESSING a priori dispo dans la nouvelle maj...
    b) Lors de la création du Webservice, comment peut-on spécifier un login+mot de passe nécessaires lors de l'importation du webservice dans une application ?
    Ce login+ mot de passe à l'install est lié au paramétrage de l'accès au WSDL de puis le serveur HTTP. si vous n'avez pas autorisé les accès anonymes à ce répertoire, le login + mot de passe est nécessaire pour accéder au WSDL du WS.



    Cordialement,

    Laurent.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Par défaut
    Merci beaucoup pour ces réponses très claires, ça fait plaisir!

    Citation Envoyé par lolob84 Voir le message
    - J'utilise une méthode d'authentification basé sur un GUID (windows) qui est renvoyé en réponse au consommateur. ce "jeton" doit être passé à toutes les autres méthodes du WS pour authentifier le contexte (cité précé demment)
    - Autre possibilité : a tester avec la nouvelle MAJ, l'utilisatiion du WS-ADRESSING a priori dispo dans la nouvelle maj...
    Pouvez-vous m'en dire plus sur votre méthode d'authentification ?
    Le GUID est celui de l'appli cliente appelante ?
    En quoi celle-ci permet-elle d'éviter l'utilisation du webservice par un client "non désirable" ?

    Merci d'avance

  4. #4
    Membre expérimenté

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2010
    Messages : 125
    Par défaut
    Citation Envoyé par cladoo Voir le message
    Merci beaucoup pour ces réponses très claires, ça fait plaisir!



    Pouvez-vous m'en dire plus sur votre méthode d'authentification ?
    Le GUID est celui de l'appli cliente appelante ?
    En quoi celle-ci permet-elle d'éviter l'utilisation du webservice par un client "non désirable" ?

    Merci d'avance
    Bonjour,

    Et désolé pour le délai j'ai été Over-OVER-booké!!! lol!

    Quand on peut aider, autant le faire...
    Ma méthode (qui ne m'appartient pas, cela dit!!!) est très simple :
    Un procédure appelée authentifie de mon WS, qui attend en parametres les infos utiles (User, Password, environnement BDD, User BDD, Password BDD, etc...)
    Cette procédure verifie les droits du User, verifie la validite des environnement BDD demandés (pour moi, car je travaille en environnement multiple : le meme WS peut attaquer différentes BDD...).
    Si tout est Ok, le WS utilise la fonction DonneGUID() qui renvoie un guid unique sur la machine. C'est donc le serveur WS qui genere le GUID.
    En meme temps, cette procedure aliment mon contexte globale WS, avec les valeurs passées (citées plus haut) et renvoie le GUID au client ou une chaine d'erreur...

    Quand l'appli cliente appelle une autre methode du WS, elle doit passé mon 'jeton de sécurité' comme paramètre, puis tout ceux propres à la méthode.

    Toutes les autres méthodes du WS appellent une méthode en entrée qui vérifie la validité du jeton, à savoir si le jeton passé correspond bien au contexte WS en cours... c'est un peu redondant car en théorie, le contexte est bien maintenu, mais je voulais une validation que je puisse contrôler moi même (je me méfie toujours des automatismes, à savoir, oui le contexte Ws est bien le bon)
    A l'exploitation, cela semble bien être le cas, depuis la mise en exploitation de ce Ws, plus de 100000 appels ont été effectués et je n'ai à priori pas de soucis de sécurité ou de perte de contexte.

    Cordialement,

    Laurent

Discussions similaires

  1. [Thread]Accès concurrentiel -> Synchronized
    Par m@t dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 12/12/2005, 12h21
  2. MyISAM & les accès concurrentiels: le "miracle"
    Par twkjp dans le forum Outils
    Réponses: 3
    Dernier message: 09/09/2005, 17h02
  3. [VB.NET] Accès concurrentiel
    Par lecitoyen dans le forum ASP.NET
    Réponses: 5
    Dernier message: 03/03/2005, 20h23
  4. [VB.NET] Accès concurrentiel aux fichiers
    Par david71 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 13/12/2004, 11h19
  5. [Access] Accès concurrentiels
    Par Benjamin GAGNEUX dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/07/2004, 17h56

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