Hi,

On Thu, Feb 9, 2012 at 5:22 AM, Amila Jayasekara <ami...@wso2.com> wrote:
> Hi Filippo,
>
> IMO not many people use this kind of a communication pattern to
> establish a security context. To my experience I haven't seen this is
> implemented in other popular frameworks also (I maybe wrong). I think
> for the same reason interoperability is also not clearly defined for
> this kind of communication. But its great to have a such
> implementation. I have some feedback on your suggestions when compared
> with current Rampart implementation. (Please see inline comments)
>
> On Wed, Feb 8, 2012 at 10:40 PM, FILIPPO AGAZZI
> <filippo.aga...@studenti.unipr.it> wrote:
>> Hi George and Prabath,
>> thank you very much for your answers. I've read about CXF STS and OpenSSO,
>> but until now i haven't found anything about supporting WS-Trust negotiation
>> and challenge framework, although i'm not absolutely sure about this.
>>
>> Prabath, thanks, now i try to explain what i'm trying to do. As I said, i
>> need a service that, when a client attempts to access, asks the client some
>> type of authorization, and this is released through a negotiation process
>> between client and service. This authorization can be obtained by the
>> client, with the presentation of some credentials (service has, for example,
>> a policy that requires the client possessing two credentials to have
>> access). Also the client has some policy protecting his credentials, and ask
>> the service to send it credentials in its turn, that the client asks in
>> order to disclose the credentials asked by the service. This is the
>> negotiation process i need, and i want to do this using WS-* standard: this
>> is the reason why i thought about WS-trust negotation extension, that
>> describe how client and service (probably the STS linked to the service) can
>> exchange multiple (how much are needed) RequestSecurityTokenReponse
>> messages,after the first RequestSecurityToken sent by the client.
>>
>> So i want to build a scenario where client and STS can exchange many
>> RequestSecurityTokenResponse messages, where an important thing is that
>> client and STS are completely unknown, and client hasn't got the STS policy.
>> And here, the first question: in my experiments i figure out that STS needs
>> some authentication and Cryptography in messages exchanged with the client
>> (i refer to sample05 in Rampart distribution), and sts need to have
>> client.jks: this doesn't match with my requirements, is it possible have an
>> STS without any security policy mandatory for the messages (such as crypto
>> or signature)?
>
> Practically we need some mechanism to authenticate users against the
> STS. Therefore we must have a security policy to authenticate users
> against the STS. I just test whether it is possible to invoke STS
> without a policy, but it seems it is not possible as per current
> implementation.
>
> I mean that STS release a security token to the client, that
>> it uses to call the service, but the STS-policy, protecting the realising of
>> the security token, is sent during the negotation.

Are you trying to obtain the STS policy + certificate information
using an RST/RSTR interaction with the STS?

Isn't the proper WS-* way of negotiating the access policy is using
WS-MetadataExchange?
I believe Axis2 has support for this and it interops with WCF.
Furthermore, I guess you should be able to add custom policy elements
to the WS-SecurityPolicy to include certification information.

>>
>> Then, now i add more details: the message exchange pattern i need is:
>> client send a RequestSecurityToken message to the STS (and he doesn't know
>> nothing about STS, so client doesn't add any security header in the
>> message). STS answers with a RequestSecurityTokenReponse: this message have,
>> as child of <wst:RequestSecurityTokenResponse>, xml custom elements,
>> definded by a schema. These xml elements are structures that can contain
>> some other custom xml child element (representing, for ex, negotation
>> information, as negotiation strategies supported etc..), and also
>> <wsp:policy> element (policy that STS asks for relasing security token for
>> the linked service). Client, in your turn, answers with another
>> RequestSecurityTokenResponse, containing its negotiation information and its
>> policy, within xml custom elements, contained by
>> <wst:RequestSecurityTokenResponse>.
>> After this 2 initials RequestSecurityTokenReponse messages, negotiation
>> starts with some exchange of other RequestSecurityTokenReponse, that contain
>> credentials both of the client and of the STS of the service the client
>> wants to access. In this way i can have a negotiation process within
>> WS-trust standard.
>>
>> I don't know if i could explain it in a good way, but summarizing i need
>> client and STS custome exchanges of RequestSecurityTokenResponse containing
>> arbitrary XML structures. I see in ws-trust 1.4, the <CustomExchange>
>> element, that i thought can be used to contain my custom element. I need
>> also that client and STS (or service) communicate each other with their own
>> trust negotiation framework, before answering to the other part.
>> As a solution, i thought to implemente a client-handler and a STS-handler,
>> in order to have as many messages as i want between client and STS, and in
>> the hanlders building my soap custom message..but i have no idea how to make
>> the handlers communicating each other, without let the messages hitting
>> client and STS..i mean that these handlers need to be the first who handle
>> the incominig messages, in order to have the scenario i described.Do u think
>> is it a possibile solution?
>
> Above could be a possible solution. But let me briefly describe how
> existing Rampart handles, this. In the current Rampart engine we have
> a specific client called “STSClient” [2]. STSClient is responsible for
> creating “RequestSecurityToken” with appropriate data. “STSClient”
> also sets an special action
> (http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT). If there is a
> security policy attached to STS client it will process approprate
> security and send. Once server side receives the message it will first
> process the security headers coming with “RequestSecurityToken”. (I
> guess in your case you have to modify this code to work without
> security headers for  “ RequestSecurityToken”). Once security headers
> are processed, message will be routed to “STSMessageReceiver” [1]
> (Rampart identifies that message should be routed to
> STSMessageReceiver by looking at the action). “STSMessageReceiver” is
> responsible for processing “ RequestSecurityToken” and creating
> “RequestSecurityTokenResponse”. As per now we have a single round. But
> in your case you need to have several rounds of message exchanges
> before you negotiate a secret (establing a context).
> In summary, within Rampart we are handling communication with STS
> using a client and a message receiver. As per my understanding you
> should also be able to extend the current “ STSMessageReceiver”
> implementation and implement your logic.
>
> [1]  
> http://svn.apache.org/repos/asf/axis/axis2/java/rampart/tags/v1.6.1/modules/rampart-trust/src/main/java/org/apache/rahas/STSMessageReceiver.java
> [2] 
> http://svn.apache.org/repos/asf/axis/axis2/java/rampart/tags/v1.6.1/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
>
> Hope this information is useful.
>
> Thanks
> AmilaJ
>
>>
>> Any idea, suggestions is very very appreciated! Sorry for the lenght of this
>> message!!!
>> Thank a lot in advance,
>>
>> Best regards
>>
>> Filippo Agazzi
>>
>>
>> 2012/2/8 Prabath Siriwardena <prab...@wso2.com>
>>>
>>> Hi George,
>>>
>>> Sure.. you are somewhat out dated :-)
>>>
>>> The rampart STS has support for WS-Trust 1.3 as well as some parts of the
>>> WS-Trust 1.4  and we ship this with WSO2 Identity Server product - and the
>>> STS been used in real production scenarios..
>>>
>>> Hi Flippo,
>>>
>>> Yes, as you mentioned your requirement is not supported yet.. But we can
>>> help you building it.. Please provide further insights in to the
>>> requirement...
>>>
>>> Thanks & regards,
>>> -Prabath
>>>
>>> On Wed, Feb 8, 2012 at 8:29 AM, George Stanchev <gstanc...@serena.com>
>>> wrote:
>>>>
>>>> Hi Filippo,
>>>>
>>>>
>>>>
>>>> I don’t believe the Axis2 STS is mature enough to support what you are
>>>> asking about. Neither rampart contains a general-purpose WS-Trust client.
>>>> AFAIK the main purpose of the Axis2 STS is to server SCTs for
>>>> WS-SecureConversation. Granted, I’ve stopped following its development for 
>>>> a
>>>> while so others might correct me if I am wrong.
>>>>
>>>>
>>>>
>>>> I am not sure anything you ask for is available as open source. You can
>>>> try checking out the Apache CFX STS implementation which was donated by
>>>> Talend which could be more mature. CXF also might have a more mature 
>>>> client.
>>>> Other than that, you can also check Sun’s OpenSSO or any other more
>>>> comprehensive SSO implementation. [1] contains some starting point links.
>>>>
>>>>
>>>>
>>>> George
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> [1] http://kantarainitiative.org/wordpress/programs/iop-saml/
>>>>
>>>>
>>>>
>>>> From: FILIPPO AGAZZI [mailto:filippo.aga...@studenti.unipr.it]
>>>> Sent: Tuesday, February 07, 2012 7:28 AM
>>>> To: java-user@axis.apache.org
>>>> Subject: [Axis2] [Rampart] ws-trust negotiation and challenge extension
>>>> support
>>>>
>>>>
>>>>
>>>> Hi all,
>>>> i'm Filippo Agazzi, an Informatic Engineer student at University of
>>>> Parma, Italy. i'm working on a thesis about "Automated trust negotiation
>>>> using ws-* standard", and i need, as a basis, to have a client and a 
>>>> service
>>>> (probably a STS), challenging each other and exchanging multiple
>>>> RequestSecurityTokenReponse message, before a final message is sent by the
>>>> service to the client. I see that ws-Trust includes a negotation and
>>>> challenge framework; so my question is: is there any support or
>>>> implementation in axis2 and rampart (rahas) for this ws-trust extension?
>>>> I've already studied and successfully run the samples in rampart
>>>> distribution, for example "sample05", where client asks for a saml token to
>>>> a STS; but that is a single round trip, instead i need more rounds and i
>>>> need to insert xml custom element (for example wsp:Policy element) in
>>>> RequestSecurityToken and RequestSecurityTokenReponse messages. Here the 
>>>> link
>>>> to the standard section i refer to :
>>>> http://docs.oasis-open.org/ws-sx/ws-trust/v1.4/os/ws-trust-1.4-spec-os.html#_Toc212615468.
>>>>
>>>> Eventhough there isn't any support/implementation in Axis2 for ws-trust
>>>> negotation and challeng extension, someone have any ideas on how this can 
>>>> be
>>>> done? Anyone, plese, can indicate me a way on how implement this? I've
>>>> searched a lot and widely on the web, but i can't find nothing really
>>>> useful, so i'm hard blocked on this point.
>>>>
>>>> Thank you very much in advance.
>>>>
>>>> Best regards.
>>>>
>>>> Filippo Agazzi
>>>>
>>>>
>>>
>>>
>>>
>>>
>>> --
>>> Thanks & Regards,
>>> Prabath
>>>
>>> Mobile : +94 71 809 6732
>>>
>>> http://blog.facilelogin.com
>>> http://RampartFAQ.com
>>>
>>
>
>
>
> --
> Mobile : +94773330538
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org
> For additional commands, e-mail: java-user-h...@axis.apache.org
>



-- 
http://ruchith.org

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org
For additional commands, e-mail: java-user-h...@axis.apache.org

Reply via email to