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 :

[WCF] Problème avec client certificate et binding security mode="Transport"


Sujet :

Services Web

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Par défaut [WCF] Problème avec client certificate et binding security mode="Transport"
    Bonjour !

    J'essaye depuis quelques jours de configurer un service pour avoir une authentification mutuelle du client et du serveur par des certifs X509.

    Je suis arrivé à configurer le certificat pour l'authentification du serveur et l'encryption du message sans trop de difficultés.

    Pour l'autentification du client ça semble un poil plus compliqué.
    Pas de soucis si je peux me contenter d'une authentification par le message lui-même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <security mode="TransportWithMessageCredential">
      <message clientCredentialType="Certificate" />
    </security>
    Mais comme je suis exigeant, je veux une authentification du client au niveau du transport :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <security mode="Transport">
      <transport clientCredentialType="Certificate" />
    </security>
    Le service est hosté par mon serveur local IIS7.5.
    J'ai déjà résolu les problème 'usuels' en activant le system.webServer/security/authentication/clientCertificateMappingAuthentication, le mapping entre le certificat et un utilisateur, le flag SslReqCert.

    Malheureusement, le serveur web semble ne pas recevoir le certificat du client (réponse 403.7).



    Quelqu'un pourrait-il m'aider à tracer ce problème ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Kenpanda,

    Bon j'avais aussi eu ce genre de problème il y a longtemps déjà, alors ci-dessous ce je te transmets quelques lignes de code qui pourront peut être t'aidre. A signaler que dans mon cas, j'avais auparant créé une classe Interface pour atteindre le service Web Client:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
    ServiceClient.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certFile));
    ...
     
    credentials.UserName = username;
    credentials.Password = password;
    ServiceClient.PreAuthenticate = true;
    cache.Add(new Uri(url), authType, credentials);
    ServiceClient.Credentials = cache;
    ServiceClient.EnableDecompression = true;
    ....
    Dans mon cas, si je ne mettais "ServiceClient.EnableDecompression = true", j'avais une erreur, mais je ne me souviens plus si c'est du même type que la tienne.

    Bon développement!

    Cédric

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Par défaut
    Un grand merci pour cette réponse, mais actuellement, je penche plus pour un problème de config d'IIS 7 , et ce pour 2 raisons principales :
    - quand je tente d'accéder à une page dummy via un browser (chrome, ff, ie), il ne demande pas de sélectionner le certif. (et pourtant il y en a plusieurs possibles)

    - une web request est refusée avec la même erreur 4.7:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    X509Certificate cert = X509Certificate.CreateFromCertFile("C:\\TEMP\\WCFUser.cer");
     
    HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://xxxx-yyyy.zzz.dd/GatewaySvc/index.htm");
    Request.ClientCertificates.Add(cert);
     
    Request.UserAgent = "Client Cert Sample";
    Request.Method = "GET";
    HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
     
    Console.WriteLine("{0}", Response.Headers);

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Kanpenda,

    au niveau de IIS, je connais moins et de ce fait je peux moins t'aider! Mais si tu peux essayer sur un autre serveur avec une version d'IIS différent, cela pourra peut être t'aider aussi!

    Bon développement

    Cédric

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Par défaut
    Thx,

    C'est la prochaine étape que j'avais envisagée dès que mon TL aura remis ce projet dans la liste des priorités (quelle magnifique époque ...)

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Par défaut
    Donne un meuble ikea à un homme, il s'amusera une journée.
    Donne un meuble ikea à un homme sans le plan, il s'amusera toute la semaine.

    En fait j'avais créé un self-signed certificate pour le serveur, et réutilisé ce certif pour générer le client certificate, plutôt que de créer un certif pour une Trusted Authority commune.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/02/2012, 10h31
  2. Problème avec Client-Server DataSnap
    Par Pangues2 dans le forum Outils
    Réponses: 0
    Dernier message: 28/01/2011, 18h57
  3. WCF probléme avec la serialisation de ObservableCollection
    Par amandinerenard dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 13/03/2008, 00h45
  4. WCF - Problème avec les DataContract
    Par ophalia dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 07/10/2007, 20h03
  5. [3.0] [Service Wcf] problème avec le fichier .svc
    Par marc_dd dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 14/08/2007, 17h21

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