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

C# Discussion :

Appel sécurisé Web Service : besoin d'un peu d'aide


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Appel sécurisé Web Service : besoin d'un peu d'aide
    Bonjour,

    Un organisme demande à ce que notre société communique avec un web service de manière sécurisée et met à notre disposition une plateforme de test ( https://www.socialsecurity.be/site_f...soa/access.htm )

    Nous avons donc reçu plusieurs fichiers dont un WSDL, une fois importé, ce dernier permet bien de faire la première partie du test ("checkConnection" sans sécurité sur le message).

    Cependant lorsque nous essayons de faire l'étape "checkAccessControl", nous rencontrons des problèmes pour sécuriser le message (nous recevons l'erreur SOA-01001 Service call not authenticated).

    Ma principale question est : Comment puis-je signer le message comme demandé ? J'avoue être perdu avec la documentation qui nous a été fournie.

    Merci pour votre aide.

    _MaD_

  2. #2
    Membre averti Avatar de pascalCH
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Juillet 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 187
    Points : 369
    Points
    369
    Par défaut
    Hello,

    Le premier test passe, le plus dur est fait ... si si ...
    Le plus long reste à faire, obtenir un certificat pour signer la connexion ...
    La procédure est décrite sur le site de la sécu belge à la page
    https://www.socialsecurity.be/site_f...ertificate.htm
    prévoir de 8 à 10 jours pour l'obtention du certificat et quelques tâtonnements pour son exploitation.

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour pascalCH,

    Tout d'abord merci pour votre réponse :-).
    Nous possédons déjà un certificat. Le véritable problème se trouve au moment où il faut sécuriser l'appel en passant par du c#, je ne vois vraiment pas comment ni où ajouter ce fameux certificat.

    Merci.

    _MaD_

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bon, on avance (un peu)

    Le problème vient du fait que le header de la requête SOAP n'est pas complète, elle ressemble à ça (https://www.socialsecurity.be/site_f...cate_token.htm) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    	<s:Header>
    		<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">
    		</Action>
    	</s:Header>
    	<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    		<CheckAccessControlRequest xmlns="http://socialsecurity.be/platformintegrationconsumertest/v1">
    			<Message xmlns="http://socialsecurity.be/platformintegrationconsumertest/types/v1">Hello world</Message>
    			<Timestamp xmlns="http://socialsecurity.be/platformintegrationconsumertest/types/v1">2014-03-18T11:43:25.735229+01:00</Timestamp>
    		</CheckAccessControlRequest>
    	</s:Body>
    </s:Envelope>
    et devrait ressembler à ça :
    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
    51
    52
    53
     
    <soapenv:Envelope> 
      <soapenv:Header> 
        <wsse:Security> 
          <wsse:BinarySecurityToken                                                  
               EncodingType="#Base64Binary" 
               ValueType="#X509v3"   
               wsu:Id="CertId">MIIMZjCCA4...==</wsse:BinarySecurityToken>   
          <wsu:Timestamp wsu:Id="Timestamp">                                  
            <wsu:Created>2011-07-06T14:55:06Z</wsu:Created> 
            <wsu:Expires>2011-07-06T14:56:06Z</wsu:Expires> 
          </wsu:Timestamp> 
          <ds:Signature>                                                      
            <ds:SignedInfo>                                                                                                                   
              <ds:CanonicalizationMethod Algorithm="xml-exc-c14n#"/>           
              <ds:SignatureMethod Algorithm="#rsa-sha1"/> 
              <ds:Reference URI="#CertId"> 
                <ds:Transforms> 
                  <ds:Transform Algorithm="xml-exc-c14n#"/> 
                </ds:Transforms> 
                <ds:DigestMethod Algorithm="xmldsig#sha1"/> 
                <ds:DigestValue>l0k0hbnk8578dYAc2POMcBLbTkY=</ds:DigestValue> 
              </ds:Reference> 
              <ds:Reference URI="#Timestamp">                            
                <ds:Transforms> 
                  <ds:Transform Algorithm="xml-exc-c14n#"/> 
                </ds:Transforms> 
                <ds:DigestMethod Algorithm="xmldsig#sha1"/> 
                <ds:DigestValue>cUI6sRLLErYal1w1wLFxSCwjoCI=</ds:DigestValue> 
              </ds:Reference> 
              <ds:Reference URI="#id"> 
                <ds:Transforms> 
                  <ds:Transform Algorithm="xml-exc-c14n#"/> 
                </ds:Transforms> 
                <ds:DigestMethod Algorithm="xmldsig#sha1"/> 
                <ds:DigestValue>bY22PjS0HPcmEHrslVdx3uDnnpU=</ds:DigestValue> 
              </ds:Reference> 
            </ds:SignedInfo> 
            <ds:SignatureValue>uYUcEhYJ8y...==</ds:SignatureValue> 
            <ds:KeyInfo Id="KeyId-5F1BFEB349E14F0ADF130996410619213">          
              <wsse:SecurityTokenReference> 
                <wsse:Reference URI="#CertId" ValueType="#X509v3"/> 
              </wsse:SecurityTokenReference> 
            </ds:KeyInfo> 
          </ds:Signature> 
        </wsse:Security> 
      </soapenv:Header> 
      <soapenv:Body wsu:Id="id">                                                      
        <pict:CheckAccessControlRequest> 
          <type:Message>Hello World</type:Message> 
          <type:Timestamp>2010-02-24T05:32:13</type:Timestamp> 
        </pict:CheckAccessControlRequest> 
      </soapenv:Body> </soapenv:Envelope>
    Je dirais que le problème vient du fichier app.config, mais je n'arrive pas à localiser l'erreur et/ou ce qu'il manque, quelqu'un saurait-il m'aiguiller ?

    Merci !

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Nous avons la même problème avec le service PlatformIntegrationConsumerTest et le methode checkAccessControl.

    Nous obtenons toujours l'erreur: SOA-01001: Service call not authenticated. Nous avons le certificat "GlobalSign PersonalSign 3 CA - SHA256 - G2"

    Avez-vous déjà trouver la solution?

    Merci d'avance de votre réponse,
    Kevin

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par KevinLo Voir le message
    Bonjour,

    Nous avons la même problème avec le service PlatformIntegrationConsumerTest et le methode checkAccessControl.

    Nous obtenons toujours l'erreur: SOA-01001: Service call not authenticated. Nous avons le certificat "GlobalSign PersonalSign 3 CA - SHA256 - G2"

    Avez-vous déjà trouver la solution?

    Merci d'avance de votre réponse,
    Kevin
    Nous n'avons toujours pas de solution pour le moment, nous pouvons peut-être échanger des informations afin de résoudre ce problème ?

    Merci,

    _MaD_

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par _MaD_ Voir le message
    Nous n'avons toujours pas de solution pour le moment, nous pouvons peut-être échanger des informations afin de résoudre ce problème ?

    Merci,

    _MaD_
    Oui bien sûr, mon adresse e-mail est kevin.lommens@hotmail.com. Pour le moment j'attends à une réponse de Eranova, parce que l'exemple avec le SecurityTokenService et le SoapUi ne marche pas aussi. Avez-vous aussi un nouveau certificat de GlobalSign? J'ai eu une problème pour télécharger la clé publique.

    Bien à vous,
    Kevin

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par _MaD_ Voir le message
    Nous n'avons toujours pas de solution pour le moment, nous pouvons peut-être échanger des informations afin de résoudre ce problème ?

    Merci,

    _MaD_

    Bonjour,

    Avez-vous trouvez une solution depuis ?
    J'aimerais faire des requêtes sur ce webservice mais je ne trouve pas comment la réaliser malgré l'ajout de la web reference sur base du wsdl

    Ce serait top de pouvoir un projet exemple.

    Merci.

Discussions similaires

  1. Appeler un web service avec pl/sql
    Par squalito dans le forum PL/SQL
    Réponses: 5
    Dernier message: 17/09/2012, 15h21
  2. Appels de Web services (SOAP) ?
    Par ovdbc dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 17/10/2007, 11h28
  3. [Web Services] Appel de Web Service (pb avec authentification)
    Par cicolas dans le forum Spring
    Réponses: 4
    Dernier message: 04/07/2006, 10h20
  4. [Débutant] Appeler un Web Service
    Par slyer dans le forum Services Web
    Réponses: 2
    Dernier message: 17/02/2006, 18h15

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