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 :

WSDualHttpBinding et configuration Password Digest


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut WSDualHttpBinding et configuration Password Digest
    Bonjour,

    J'aimerai pouvoir configurer mon web service qui utilise la liaison WSDualHttpBinding avec la méthode d'authentification Username/password de sorte que le password passé dans les entêtes de message SOAP soit haché avec la méthode PasswordDigest décrite sur le jouranldunet.

    Voici ce l'exemple cité dans la page :
    <wsse:UsernameToken>
    <wsse:Username>scott</wsse:Username>
    <wsseassword Type="wsseasswordDigest">
    KE6QugOpkPyT3Eo0SEgT30W4Keg=</wsseassword>
    <wsse:Nonce>5uW4ABku/m6/S5rnE+L7vg==</wsse:Nonce>
    <wsu:Created xmlns:wsu=
    "http://schemas.xmlsoap.org/ws/2002/07/utility">
    2002-08-19T00:44:02Z
    </wsu:Created>
    </wsse:UsernameToken>
    Seulement mes entêtes sont générés automatiquement via le frameword .Net avec WCF et je ne trouve pas où est ce que je peux configurer ceci dans le fichier de configuration.

    Voici mon fichier de configuration actuel :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <system.serviceModel>
      <services>
        <service name="WS.ServiceProduits" behaviorConfiguration="behaviorConfig">
          <endpoint address="" binding="wsDualHttpBinding" bindingConfiguration="wsDualHttp" contract="WS.Interface.IProduits">
            <identity>
              <dns value="localhost"/>
            </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        </service>
      </services>
      <bindings>
        <wsDualHttpBinding>
          <binding name="wsDualHttp" maxReceivedMessageSize="10485760">
            <readerQuotas maxArrayLength="10485760"/>
            <security mode="Message">
              <message clientCredentialType="UserName"/>
            </security>
          </binding>
        </wsDualHttpBinding>
      </bindings>
      <behaviors>
        <serviceBehaviors>
          <behavior name="behaviorConfig">
            <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
            <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
            <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
            <serviceDebug includeExceptionDetailInFaults="true" />
            <serviceCredentials>
              <clientCertificate>
                <authentication certificateValidationMode="None" revocationMode="NoCheck" />
              </clientCertificate>
              <serviceCertificate storeName="My" storeLocation="LocalMachine" x509FindType="FindBySubjectName" findValue="localhost" />
              <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="WS.CustomUserNameValidator, WS" />
            </serviceCredentials>
            <serviceAuthorization principalPermissionMode="Custom">
              <authorizationPolicies>
                <add policyType="WS.CustomAuthorizationPolicy, WS" />
              </authorizationPolicies>
            </serviceAuthorization>
          </behavior>
        </serviceBehaviors>
      </behaviors>
      <protocolMapping>
        <add binding="wsDualHttpBinding" scheme="https" bindingConfiguration="wsDualHttp" />
        <add binding="wsDualHttpBinding" scheme="http" bindingConfiguration="wsDualHttp" />
      </protocolMapping>
      <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    </system.serviceModel>
    Si vous pouvez m'aider se serait vraiment top

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Apparemment ça n'est pas supporté nativement par WCF, et il faut mettre en place une extension pour gérer ça.

    Voici deux liens qui t'aideront :
    - PasswordDigest authentication in WCF
    - UsernameToken Profile vs. WCF
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Ah ! Et même coté client, il n'y a pas moyen d'ajouter une propriété dans le fichier de configuration ?

    Citation Envoyé par DotNetMatt Voir le message
    il faut mettre en place une extension pour gérer ça.
    Où trouver des exemples ?! J'ai pu constater que dans le logiciel SOAP UI, en modifiant une propriété, elle applique directement dans le header la methode PasswordDigest !

    Sinon, j'ai déjà vu ces liens mais vu qu'ils utilisent une classe coté web service, cela implique que le password doit dans un premier temps transiter en clair sur le réseau avant d'atteindre cette classe ! non ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    J'ai trouvé ceci sur la MSDN : http://msdn.microsoft.com/en-us/library/ms731172.aspx

    Ce lien indique que la méthode password digest n'est pas possible avec le mode "TransportWithMessageCredential" mais wsDualHttpBinding utilise uniquement le mode "message".
    Voici la citation trouvé dans la page web :
    UserName
    Allows the service to require that the client be authenticated using a user name credential. Note that when the security mode is set to TransportWithMessageCredential, WCF does not support sending a password digest or deriving keys using password and using such keys for Message mode security. As such, WCF enforces that the transport is secured when using user name credentials.

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Dans le premier lien tu as un exemple codé de A à Z.

    la méthode password digest n'est pas possible avec le mode "TransportWithMessageCredential" mais wsDualHttpBinding utilise uniquement le mode "message".
    Tu utilises le mode TransportWithMessageCredential ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Non justement, ce mode n'existe pas avec la configuration WSDualHttpBinding.
    J'ai trouver un autre article qui détail un peu plus le processus :
    http://blog.benpowell.co.uk/2010/11/...-password.html

    Néanmoins celui ci indique que WCF a volontaire choisi de ne pas implémenter l'option passwordDigest, alors qu'est ce qui est utilisé à la place ?
    Cela veut donc dire que l'on est obligé de laisser passer les mots de passes en clair sur le réseau si on n'utilise le framework WCF tel qu'il est ?!

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/01/2008, 15h47
  2. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 15h28
  3. [configuration] lancer plusieurs serveurs Tomcat
    Par polo54 dans le forum JBuilder
    Réponses: 4
    Dernier message: 13/06/2003, 15h52
  4. Configurer OpenGL/Glut avec C++Bluider
    Par MiGoN dans le forum OpenGL
    Réponses: 2
    Dernier message: 13/09/2002, 23h18
  5. BDE : Configurer automatiquement le NETDIR
    Par Harry dans le forum Paradox
    Réponses: 10
    Dernier message: 29/07/2002, 11h33

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