Hi

I guess what I'm trying to achieve with the token is to have a light weight
SAML token. so just wanted to know if it was correct to have the
ds:SignedInfo inside the element itself and signed by the private key of the
sts.  Another try on the XML ;)

     <RequestSecurityTokenResponseCollection xmlns="
http://docs.oasis-open.org/ws-sx/ws-trust/200512";>
            <RequestSecurityTokenResponse>
                  <ns:RequestedSecurityToken xmlns:ns="">
                  <com:EsysbioToken xmlns:com="" xmlns:oas=""
oas:Id="_0de82a70b0ad68d7b29387828b2ba3ec">
                     <com:Username>test</com:Username>
                     <com:RoleInProject>
                        <com:Role>ADMIN</com:Role>
                        <com:Project>project</com:Project>
                     </com:RoleInProject>
                  </com:EsysbioToken>
               </ns:RequestedSecurityToken>
                  <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#
">
                     <ds:SignedInfo>
                        <ds:CanonicalizationMethod Algorithm="
http://www.w3.org/2001/10/xml-exc-c14n#"; />
                        <ds:SignatureMethod Algorithm="
http://www.w3.org/2000/09/xmldsig#rsa-sha1"; />
                        <ds:Reference
URI="#_0de82a70b0ad68d7b29387828b2ba3ec">
                           <ds:Transforms>
                              <ds:Transform Algorithm="
http://www.w3.org/2000/09/xmldsig#enveloped-signature"; />
                              <ds:Transform Algorithm="
http://www.w3.org/2001/10/xml-exc-c14n#";>
                                 <ec:InclusiveNamespaces xmlns:ec="
http://www.w3.org/2001/10/xml-exc-c14n#"/>
                              </ds:Transform>
                           </ds:Transforms>
                           <ds:DigestMethod Algorithm="
http://www.w3.org/2000/09/xmldsig#sha1"; />

<ds:DigestValue>EFf0+eeFzPPm3eG+MJkfYbTsrrY=</ds:DigestValue>
                        </ds:Reference>
                     </ds:SignedInfo>

<ds:SignatureValue>CULorNPLYbHJ04f4qdQQsN63HPzmlY=</ds:SignatureValue>
                     <ds:KeyInfo>
                        <ds:X509Data>

<ds:X509Certificate>EHKFtFaX4iF1tWbGxa4+vIbbV4CaUG5s5x</ds:X509Certificate>
                        </ds:X509Data>
                     </ds:KeyInfo>
                  </ds:Signature>
               <ns:RequestedSecurityToken xmlns:ns="">
           </RequestSecurityTokenResponse>
       </RequestSecurityTokenResponseCollection>

namespaces in removed more readability.
2009/3/20 Massimiliano Masi <[email protected]>

> Hakon,
>
> Yes, it's only xml, but is important! (The RSTRC). :-)
>
> I don't understand your security token, I don't know
> if you expressed it correctly:
>
> You have a
>
> <RequestSecurityTokenResponse>
>   < -- missing RequestedSecurityToken >
>     <com:Token that's ok
>       but you are signing something that I cannot see
>       and try to use a more powerful id, instead of id_145663
>
>
> Try to paste another XML. ;-)
>
>
>
> Quoting Håkon Sagehaug <[email protected]>:
>
>  Hi
>>
>> Thanks for the replay
>>
>> see inline
>>
>> 2009/3/20 Massimiliano Masi <[email protected]>
>>
>>  Hi,
>>>
>>> In general you should encrypt a message using the
>>> public key of the recipient and sign with the private
>>> key of the sender. This enforces integrity (the signature),
>>> authentication
>>> (the signature) and confidentiality (the encryption).
>>>
>>> As I told you, the RSTR is not correct. You really should
>>> use the RSTRC instead, since it is only request/response.
>>>
>>
>> I forgot to have this element, but it's only  sudo xml
>>
>>
>>>
>>> The service ``trust'' the token, since it is signed
>>> by the STS, and we suppose that the STS that owns the
>>> private key.
>>>
>>> Pay attention for the STS to not be an oracle.
>>>
>>
>>
>> We're implementing a sts of our own, and trying to get it all together.
>> The
>> reason why I'm asking all these questions, for getting the hole picture.
>>
>> Also, is the way I described the security token correct? This token is of
>> course not how it looks in the real world but have the important elements.
>>
>> cheers, håkon
>>
>>
>>
>>  Please, look at the
>>> 11 suggestions on how to write security protocols, written
>>> in 80's by Martin Abadi.
>>>
>>>
>>>
>>>
>>> Quoting Håkon Sagehaug <[email protected]>:
>>>
>>>  Hi all,
>>>
>>>>
>>>> I've been trying to really to understand ws-trust from the more general
>>>> perspective, so maybe not the question should go out here, but since
>>>> rampart
>>>> is ws-trust implementation I hope it's okay.
>>>>
>>>> My setup is the classical ws-trust setup
>>>> 1.Client
>>>> 2.Sts
>>>> 3.Target service
>>>>
>>>> The target service does not know about user, but trust the token issued
>>>> by
>>>> the sts, tokens is a set of roles.
>>>>
>>>> Flow
>>>> 1. The client ask for a the tokens belonging to him, is this context a
>>>> list
>>>> of roles, based on the username and password of the user. Signed and
>>>> encrypted by the uses private key
>>>>
>>>> 2. Sts service then validates the signature and decrypts it.
>>>> 3.Creates a token with the roles for the user and signs/encrypts this
>>>> with
>>>> the private key of the sts service. And wrapping it inside a
>>>> RequestSecuritTokenResponse lookking something like this
>>>>
>>>> <RequestSecuritTokenResponse>
>>>> <com:Token xmlns:com="http://common"; xmlns:oas="
>>>>
>>>>
>>>> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
>>>> "
>>>> oas:Id="id_145663">
>>>>                    <com:Username>testu</com:Username>
>>>>                    <com:RoleInProject>
>>>>                       <com:Role>ADMIN</com:Role>
>>>>                       <com:Project>testu_project</com:Project>
>>>>                    </com:RoleInProject>
>>>>                 </com:Token>
>>>>              </ns:RequestedSecurityToken>
>>>>              <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#
>>>> ">
>>>>                    <ds:SignedInfo>
>>>>                       <ds:CanonicalizationMethod Algorithm="
>>>> http://www.w3.org/2001/10/xml-exc-c14n#"; />
>>>>                       <ds:SignatureMethod Algorithm="
>>>> http://www.w3.org/2000/09/xmldsig#rsa-sha1"; />
>>>>                       <ds:Reference
>>>> URI="#_0de82a70b0ad68d7b29387828b2ba3ec">
>>>>                          <ds:Transforms>
>>>>                             <ds:Transform Algorithm="
>>>> http://www.w3.org/2000/09/xmldsig#enveloped-signature"; />
>>>>                             <ds:Transform Algorithm="
>>>> http://www.w3.org/2001/10/xml-exc-c14n#";>
>>>>                                <ec:InclusiveNamespaces xmlns:ec="
>>>> http://www.w3.org/2001/10/xml-exc-c14n#"; PrefixList="code ds kind rw
>>>> saml
>>>> samlp typens #default xsd xsi" />
>>>>                             </ds:Transform>
>>>>                          </ds:Transforms>
>>>>                          <ds:DigestMethod Algorithm="
>>>> http://www.w3.org/2000/09/xmldsig#sha1"; />
>>>>
>>>> <ds:DigestValue>EFf0+eeFzPPm3eG+MJkfYbTsrrY=</ds:DigestValue>
>>>>                       </ds:Reference>
>>>>                    </ds:SignedInfo>
>>>>                    <ds:SignatureValue>GQt+8+NOn=</ds:SignatureValue>
>>>>                    <ds:KeyInfo>
>>>>
>>>> <ds:X509Data>dnfjngjknfjkgnjkfngjknfjgnjf</ds:X509Certificate>
>>>>                       </ds:X509Data>
>>>>                    </ds:KeyInfo>
>>>>                 </ds:Signature>
>>>> <RequestSecuritTokenResponse>
>>>>
>>>> This of course is much similar to a saml assertion.
>>>>
>>>> then this is encrypted and signed using the sts private key.
>>>>
>>>> 4 The client verifies that the message comes form the sts and extracts
>>>> the
>>>> token from the message,  finally places it in the header for the request
>>>> to
>>>> the target service. signs and encrypts it with the client's private key.
>>>>
>>>> 5. Now the target service decrypt the message, extract the token form
>>>> the
>>>> header , looks to see if this was signed with the private key of the
>>>> sts.
>>>> If
>>>> so the perform the authorization based on the attributes in the token.
>>>>
>>>> Is this the correct way of accomplishing trust, and how the target
>>>> service
>>>> knows that these tokens is issued by the sts service?
>>>>
>>>> Really appreciate replays on this topic
>>>>
>>>> cheers, Håkon
>>>>
>>>> --
>>>> Håkon Sagehaug, Scientific Programmer
>>>> Parallab, Bergen Center for Computational Science (BCCS)
>>>> UNIFOB AS (University of Bergen Research Company)
>>>>
>>>>
>>>>
>>>
>>> ----------------------------------------------------------------
>>> This message was sent using IMP, the Internet Messaging Program.
>>>
>>>
>>>
>>>
>>
>> --
>> Håkon Sagehaug, Scientific Programmer
>> Parallab, Bergen Center for Computational Science (BCCS)
>> UNIFOB AS (University of Bergen Research Company)
>>
>>
>
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
>
>
>


-- 
Håkon Sagehaug, Scientific Programmer
Parallab, Bergen Center for Computational Science (BCCS)
UNIFOB AS (University of Bergen Research Company)

Reply via email to