> We are currently securing our web services using WSE. The reason for
> this is interoperability. We want our customers to be able clients
[quoted text clipped - 31 lines]
> and the associated proxies seem to be recycled when the SCTs are
> renewed.
Hi,
> 1). I am not sure to understand this point, you don't want to use the
> ASP.NET session (Http), is that what you mean ?. Or do you want to carry
> some state information in every message ?.
We would like to stay transport agnostic. I guess we might end up using
the ASP.Net StateManager to manage the states but the problem is really
where the session identifier should go. I was hoping for someone to
point me to that hard to find WS-Session standard ;) My whole issue
boils down to that I can't find a standard that WSE implements for
this. Seems ebXML has a session implementation using what they call a
ConversationID which they place in the SOAP header, but WSE doesn't
seem to implement that.
> 4 & 5 ) You might consider SAML for this, it is a published standar. In
> addition, it can be easily extended through custom attributes. There is an
> SAML implementation for WSE here, http://practices.gotdotnet.com/saml
Yes, we did consider this as well but were hoping to avoid it.
Extending a published standard is something we're doing to often
anyway.
> The session state is only valid per proxy, and it has the problems that you
> mentioned. You could develop a custom session mechanism and use the SCT key
> or something like that as key to get the information from that session. Is
> that a valid approach for you ?.
Yes, this sounds great. But how should we handle the situation where
the SCTs TTL expire and is replaced by a new one? It seems we would
still need a session identifier that goes above the SCT scope. Or can
this be handled somehow?
Best regards,
JS
JS - 19 Oct 2006 16:40 GMT
> I was hoping for someone to
> point me to that hard to find WS-Session standard ;)
Well, I should have searched of course, ECMA publishes a WS-Session
standard which I'm gonna look into now, but it doesn't seem to be
implemented in WSE.
Brgds,
JS
Pablo Cibraro [MVP] - 19 Oct 2006 19:45 GMT
Hi
I understand your concern. You can use the identifier of the base token (The
original token used to create the SCT, for instance, a UsernameToken)
instead of using the SCT identifier. The base token will be the same whether
the SCT is renewed or not. Does it make sense ?.
Regards,
Pablo.
> Hi,
>
[quoted text clipped - 35 lines]
>
> JS
JS - 19 Oct 2006 20:31 GMT
Hi Pablo,
I think you could be on to something here! But how could a service (not
the STS) get the basetoken (such as the usernametoken or binarytoken in
our case) out of the SCT? We can't seem to find it available to us
there.
Best regards,
JS
> Hi
>
[quoted text clipped - 45 lines]
> >
> > JS
Pablo Cibraro [MVP] - 20 Oct 2006 15:07 GMT
Hi JS,
If you are using WSE, the STS and the Service are the same. Are you using
the SecureConversation feature provided by the WSE assertions ?
If the answer is yes, you can get the base token from the SCT using the
following code:
Microsoft.Web.Services3.Security.Tokens.SecurityContextToken sct =
(Microsoft.Web.Services3.Security.Tokens.SecurityContextToken)Microsoft.Web.Services3.RequestSoapContext.Current.IdentityToken;
Microsoft.Web.Services3.Security.Tokens.SecurityToken baseToken =
sct.BaseToken;
Regards,
Pablo.
> Hi Pablo,
>
[quoted text clipped - 64 lines]
>> >
>> > JS
JS - 20 Oct 2006 15:23 GMT
Hi,
> If you are using WSE, the STS and the Service are the same. Are you using
> the SecureConversation feature provided by the WSE assertions ?
> If the answer is yes, you can get the base token from the SCT using the
> following code:
WSE? Check
SecureConversation? Check
> Microsoft.Web.Services3.Security.Tokens.SecurityContextToken sct =
> (Microsoft.Web.Services3.Security.Tokens.SecurityContextToken)Microsoft.Web.Services3.RequestSoapContext.Current.IdentityToken;
>
> Microsoft.Web.Services3.Security.Tokens.SecurityToken baseToken =
> sct.BaseToken;
Thank you for this, will try this out on monday and let you know what
happens.
I guess to enable clients to connect without using SecureConversation
we would just fallback to use their Usernametoken directly.
Brgds and have a nice weekend,
JS