Votre navigateur ne prend pas en charge le javascript, dès lors, certaines fonctionnalités ne sont pas disponibles
Vers le contenu de cette page

Informations techniques

Sécurité - WS-Security X.509 Certificate Token Profile

Cette politique de sécurité décrit comment un message SOAP doit être signé avec un certificat X.509 lorsqu'une authentification directe est utilisée entre le service consumer et le service provider.

Ce scénario s'applique à l'invocation du SecurityTokenService (STS).

Le header wsse:Security contient les parties suivantes :

  1. wsse:BinarySecurityToken avec le certificat consumer X.509v3 en notation base64 ;
  2. wsu:Timestamp d'une validité maximale de 5 minutes ;
  3. ds:Signature avec signature numérique sur BST, TMS et soapenv:Body. Chaque bloc est canonisé (Exclusive) et hashé (SHA256). La signature même est du type RSA-SHA256.

Exemple avec PICT (simplifié)

La deuxième opération de PICT (checkAccessControl) nécessite un certificat X.509 et une signature. Ce test permet de tester la validité de votre certificat et signature.

                    <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="https://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
                                        <ds:Reference URI="#CertId">
                                            <ds:Transforms>
                                                <ds:Transform Algorithm="xml-exc-c14n#"/>
                                            </ds:Transforms>
                                            <ds:DigestMethod Algorithm="https://www.w3.org/2001/04/xmlenc#sha256"/>
                                            <ds:DigestValue>l0k0hbnk8578dYAc2POMcBLbTkY=</ds:DigestValue>
                                        </ds:Reference>
                                        <ds:Reference URI="#Timestamp">
                                            <ds:Transforms>
                                                <ds:Transform Algorithm="xml-exc-c14n#"/>
                                            </ds:Transforms>
                                            <ds:DigestMethod Algorithm="https://www.w3.org/2001/04/xmlenc#sha256"/>
                                            <ds:DigestValue>cUI6sRLLErYal1w1wLFxSCwjoCI=</ds:DigestValue>
                                        </ds:Reference>
                                        <ds:Reference URI="#id">
                                            <ds:Transforms>
                                                <ds:Transform Algorithm="xml-exc-c14n#"/>
                                            </ds:Transforms>
                                            <ds:DigestMethod Algorithm="https://www.w3.org/2001/04/xmlenc#sha256"/>
                                            <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>