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 Discussion :

Authentification webservice en https


Sujet :

Services Web

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Points : 91
    Points
    91
    Par défaut Authentification webservice en https
    Bonjour,

    Je dois m’authentifier sur le webservice de mon client en SOAP SSL. J’ai donc récupéré le WSDL et j’ai créé un proxy.
    L’exemple de connexion qui m’est fourni dans la doc du ws est en php. Le username et le password sont passés en clair dans le header.
    J’ai ajouté cette méthode dans le proxy. Via fiddler, je parviens à récupérer les crédentials si je bascule les appels en http.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
      protected override System.Net.WebRequest GetWebRequest(Uri uri)
        {
     
            System.Net.HttpWebRequest request;
            request = (System.Net.HttpWebRequest)base.GetWebRequest(uri);
     
            if (PreAuthenticate)
            {
                System.Net.NetworkCredential networkCredentials =this.Credentials.GetCredential(uri, "Basic");
                if (networkCredentials != null)
                {
                    byte[] credentialBuffer = new System.Text.UTF8Encoding().GetBytes(networkCredentials.UserName + ":" + networkCredentials.Password);
                    request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(credentialBuffer);
                }
                else
                {
                    throw new ApplicationException("No network credentials");
                }
            }
            return request;
        }
    D’après mes recherches, le process n’est pas le même en https. Il faudrait passer par WSE en ajoutant la référence Microsoft.Web.Services2.dll.

    J’ai une ébauche des modifications mais avant d’aller plus loin, quelqu’un a-t-il déjà été confronté à l’authentification webservice en https avec les paramètres dans le header ?

    Merci d’avance pour vos conseils.

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 76
    Points : 81
    Points
    81
    Par défaut
    Oui oui une grosse prise de tete, l'authentification du web service.
    1. tu dois installer le WSE en mode developpeur
    2. pour l'authentification:
    il faudra utiliser la class qui te permet d’accéder au méthode qui a été généré
    refaire toi a cet exemple
    N'oubli pas le fait d'installer le WSE modifie le nom de ta class en y ajoutant "Wse"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    NameProjet.NameWebservice.ClasseGenererWse mx_service = new NameProjet.NameWebservice.ClasseGenererWse();
    mx_service.RequestSoapContext.Security.Tokens.Add(new UsernameToken("user", "password", PasswordOption.SendNone));

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Points : 91
    Points
    91
    Par défaut
    Ouf, je suis peut être sur le bon chemin alors...

    Question : le webservice sur lequel je dois me connecter n'est pas un .net, est ce que cela remet en cause wse ?

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 76
    Points : 81
    Points
    81
    Par défaut
    Normalement non, il est fait avec du quoi

  5. #5
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Points : 91
    Points
    91
    Par défaut
    du php. j'ai un exemple en php et ca semble bien plus facile qu'en net.
    une simple chaîne qui déclare la structure du header avec le user et pwd puis un appel vers la méthode.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 76
    Points : 81
    Points
    81
    Par défaut
    Le web service PHP, je lai jamais utiliser, mais tu as réussi à envoyer quelque chose a ton web service?

  7. #7
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Points : 91
    Points
    91
    Par défaut
    Mon proxy hérite actuellement de SoapHttpClientProtocol mais il y a certaines méthodes ne figurant pas comme AuthenticateToken(UsernameToken token).

    Je viens de voir qu'il fallait utiliser wsewsdl3.exe pour regénérer un proxy typé wse

  8. #8
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 283
    Points : 91
    Points
    91
    Par défaut
    Je n'ai pas beaucoup avancé dans mon problème.

    Si j'utilise wsewsdl3, j'ai une erreur de binding. Des méthodes avec plusieurs paramètres ne seraient pas supportées...

    J'ai modifié un fichier config de visual studio pour qu'il intégre wse. Je parviens à générer un proxy via VS mais il ne dispose pas des propriétés comme URL

Discussions similaires

  1. Erreur sur authentification du protocole HTTP
    Par nO_life dans le forum Langage
    Réponses: 5
    Dernier message: 09/01/2009, 00h22
  2. Acces à un webservice en HTTPS
    Par Gatsu35 dans le forum Flex
    Réponses: 0
    Dernier message: 15/11/2008, 14h36
  3. [Delphi7] Exemple webservices vers HTTPS
    Par serge0934 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 02/03/2008, 20h18
  4. [Tomcat] Webservice over HTTPS
    Par encom79 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 24/01/2007, 09h56
  5. [Tomcat] Webservice over HTTPS
    Par encom79 dans le forum Services Web
    Réponses: 0
    Dernier message: 22/01/2007, 17h11

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