Hi Leo,I quickly checked the RSTR from STS and it has Created/Expires timestamp which is essentially same as the NotBefore/NotOnOrAfter in token. So all your client might need is to call IRequestSecurityTokenResponse.getLifetime() to get the Created/Expires timestamp and compare it with current time before sending token to RP.
RSTR:<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap- envelope"> <soapenv:Header xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope "> <ns1:Action xmlns:ns1="http://www.w3.org/2005/08/addressing" soapenv:mustUnderstand="true">
http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issue
</ns1:Action>
<ns2:RelatesTo xmlns:ns2="http://www.w3.org/2005/08/addressing"
soapenv:mustUnderstand="false">
urn:uuid:9cf6f929-5c0e-4c34-bca6-67eaacbb9343
</ns2:RelatesTo>
<ns3:MessageID xmlns:ns3="http://www.w3.org/2005/08/addressing"
soapenv:mustUnderstand="false">
urn:uuid:B3E055DE138DDA703E12448210430123823
</ns3:MessageID>
<ns4:To xmlns:ns4="http://www.w3.org/2005/08/addressing"
soapenv:mustUnderstand="true">
http://www.w3.org/2005/08/addressing/anonymous
</ns4:To>
<ns5:Security xmlns:ns5="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
" soapenv:mustUnderstand="true">
<ns6:Timestamp xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
">
<ns6:Created>
2009-06-12T15:37:23.838Z
</ns6:Created>
<ns6:Expires>
2009-06-19T15:37:23.838Z
</ns6:Expires>
</ns6:Timestamp>
</ns5:Security>
</soapenv:Header>
.....
<wst:RequestedSecurityToken xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust
">
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion
" AssertionID="urn:uuid:B3E055DE138DDA703E12448210437713824"
IssueInstant="2009-06-12T15:37:23.771Z" Issuer="https://cards.bandit-project.org/BanditIdP/services/Trust
" MajorVersion="1" MinorVersion="1">
<saml:Conditions NotBefore="2009-06-12T15:37:23.771Z"
NotOnOrAfter="2009-06-19T15:37:23.771Z"/>
..... </soapenv:Envelope> On Jun 12, 2009, at 11:12 AM, Leonardo Straniero wrote:
Hi,thanks for the prompt reply. For sure CardSpace is checking the timestampswhile performing the transaction with the STS.We were expecting a similar behavior in the Higgins library that performs the transaction with the STS, so well before the token arrives to the RP.Instead we not only get the token from the STS, but, when our client forwards the token to the RP, it is accepted without any warning.On the client side we are in the situation that the released token has been issued before the client request (even if this was due to are wrong settingof the client machine clock!). Are we missing something or is there a bug in the Higgins code? We have this behavior both when using Higgins 1.1M4 and 1.1M6. TIA. Regards. Leo. -----Original Message----- From: Jeesmon Jacob [mailto:[email protected]] Sent: venerdì 12 giugno 2009 16.42 To: [email protected]; Higgins (Trust Framework) Project developer discussionsSubject: Re: [higgins-dev] Mismatch between the issue and receive token timedue to wrong time zone setting Looks like cardspace is checking IssueInstant/NotBefore/NotOnAfter in SAML Token against the current time and not doing something in the SOAP interaction with STS. <saml:Assertion AssertionID="urn:uuid: 3F7D3436A5A6CBF4121242660513281963" IssueInstant="2009-05-18T15:28:33.281Z" Issuer="https://ip-bancaire.atosworldline.bancaire.test.fc2consortium.org/Ba nditIdP/services/Trust " MajorVersion="1" MinorVersion="1" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion "> <saml:Conditions NotBefore="2009-05-18T15:28:33.281Z" NotOnOrAfter="2009-05-25T15:28:33.281Z" /> ...... </Saml:Assertion> I know most of the RP libs check for validity of the token by comparing current time with NotBefore and NotOnOrAfter -Jeesmon On Jun 12, 2009, at 9:29 AM, Leonardo Straniero wrote:Hi All, During a travel that led to the change of time zone, I accidentally forgot to change the time zone settings of my computer. I have two application (which use Higgins 1.1M6 code): · The JCUAL: this application send a request to the Higgins Selector Switch and use Microsoft CardSpace; there is an end user that select an I-Card to interact with my Bandit IdP. When I perform a token request, MS Cardspace doesn’t conclude the operation and exits with the following fatal error (I read this error in the Windows’ EventViewer): The security timestamp is stale because its creation time ('12/06/2009 8.14.39') is too far back in the past. Current time is '12/06/2009 9.14.39', maximum timestamp lifetime is '00:05:00' and allowed clock skew is '00:05:00' This means that the MS Cardspace provide a check between the Issue and receive token time with a tolerance of five minutes. · The JCAL: in particular to make possible the use of Higgins between a Java/C++ server application (acting as RP) and non- interactive Java/C++ clients (i.e. applications that do not interact with end users to select cards, etc.). For us an application that needs to authenticate to an RP providing an authentication token obtained from an STS is a "client application". In this application, If I voluntarily replicate the time zone mismatch scenario, the Higgins 1.1M6 code doesn’t intercept this bad situation. Is in the Higgins Framework provided a similar check in the SOAP interaction with the STS? Any feedbacks will be appreciated. TIA. Best regards. ============================ Dr. Leonardo Straniero CRS - Corporate Research <image001.gif> c/o Tecnopolis N.O. Strada Prov. per Casamassima Km 3 70010 Valenzano (BA) - Italy <ATT00001.c>
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ higgins-dev mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/higgins-dev
