Hi Harshit,
If you have a user-name token and a key, you can the two parameters
user, userCertAlias [1] to provide both of them to Rampart Engine.
Best Regards,
Nandana
[1] - http://ws.apache.org/rampart/rampartconfig-guide.html
On Thu, Sep 16, 2010 at 12:27 PM, Harshit Bapna <[email protected]> wrote:
> Thanks Amila for the elaborate response.
> I have taken sample 04 (SecureConversation) shipped with rampart 1.5
> release
> as a base.
> I have added another supporting token UserName token to the policy. (see
> the
> bold data in the xml below.)
> *Note: I plan to use rampart for endpoint authentication as well as
> user(actor) authentication.*
>
> But I think I can configure only one rampart user i.e *
> <ramp:user>clientKeyName</ramp:user>*.
> Since I need to pass the userName token i.e userName as well I have
> configured rampart config in supportingTokens (username) tag I am observing
> that only global rampart config is honored.
> i.e. PWCBHandler1 is not getting invoked and only PWCBHandler is invoked.*
> *i.e. UserName tokens username value is not passes in the callback.
> Callback
> is invoked 2 times with the identifier "client" *
>
> Questions:*
> 1. How can I set userName value & keyAliasName both in the rampart. is
> there
> any workaround ?
> 2. Can there be only one rampart config & not supporting token specific
> config ?
>
>
>
> <wsp:Policy wsu:Id="SecConvPolicy2" xmlns:wsu="
>
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> "
> xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
> <wsp:ExactlyOne>
> <wsp:All>
> <sp:SymmetricBinding xmlns:sp="
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
> <wsp:Policy>
> <sp:ProtectionToken>
> <wsp:Policy>
> <sp:SecureConversationToken sp:IncludeToken="
>
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient
> ">
> <wsp:Policy>
> <sp:RequireDerivedKeys/>
> <sp:BootstrapPolicy>
> <wsp:Policy>
> <sp:EncryptedParts>
> <sp:Body/>
> </sp:EncryptedParts>
> <sp:SymmetricBinding>
> <wsp:Policy>
> <sp:ProtectionToken>
> <wsp:Policy>
> <sp:X509Token
> sp:IncludeToken="
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
> <wsp:Policy>
>
> <sp:RequireDerivedKeys/>
>
> <sp:RequireThumbprintReference/>
>
> <sp:WssX509V3Token10/>
>
> </wsp:Policy>
> </sp:X509Token>
> </wsp:Policy>
> </sp:ProtectionToken>
> <sp:AlgorithmSuite>
> <wsp:Policy>
>
> <sp:Basic128Rsa15/>
> </wsp:Policy>
> </sp:AlgorithmSuite>
> <sp:Layout>
> <wsp:Policy>
> <sp:Strict/>
> </wsp:Policy>
> </sp:Layout>
> <sp:IncludeTimestamp/>
> <sp:EncryptSignature/>
>
> <sp:OnlySignEntireHeadersAndBody/>
> </wsp:Policy>
> </sp:SymmetricBinding>
> <sp:EndorsingSupportingTokens>
> <wsp:Policy>
> <sp:X509Token
> sp:IncludeToken="
>
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient
> ">
> <wsp:Policy>
>
> <sp:RequireThumbprintReference/>
>
> <sp:WssX509V3Token10/>
> </wsp:Policy>
> </sp:X509Token>
> </wsp:Policy>
> </sp:EndorsingSupportingTokens>
> * <sp:SupportingTokens>
> <wsp:Policy>
> <sp:UsernameToken
> sp:IncludeToken="
>
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient
> "
> />
> <ramp:RampartConfig
> xmlns:ramp="http://ws.apache.org/rampart/policy">
>
> <ramp:user>token2</ramp:user>
>
>
> <ramp:passwordCallbackClass>org.apache.rampart.samples.policy.sample04ex.PWCBHandler1</ramp:passwordCallbackClass>
> </ramp:RampartConfig>
> </wsp:Policy>
> </sp:SupportingTokens>*
> <sp:Wss11>
> <wsp:Policy>
>
> <sp:MustSupportRefKeyIdentifier/>
>
> <sp:MustSupportRefIssuerSerial/>
>
> <sp:MustSupportRefThumbprint/>
>
> <sp:MustSupportRefEncryptedKey/>
>
> <sp:RequireSignatureConfirmation/>
> </wsp:Policy>
> </sp:Wss11>
> <sp:Trust10>
> <wsp:Policy>
>
> <sp:MustSupportIssuedTokens/>
>
> <sp:RequireClientEntropy/>
>
> <sp:RequireServerEntropy/>
> </wsp:Policy>
> </sp:Trust10>
> </wsp:Policy>
> </sp:BootstrapPolicy>
> </wsp:Policy>
> </sp:SecureConversationToken>
> </wsp:Policy>
> </sp:ProtectionToken>
> <sp:AlgorithmSuite>
> <wsp:Policy>
> <sp:Basic128Rsa15/>
> </wsp:Policy>
> </sp:AlgorithmSuite>
> <sp:Layout>
> <wsp:Policy>
> <sp:Strict/>
> </wsp:Policy>
> </sp:Layout>
> <sp:IncludeTimestamp/>
> <sp:EncryptSignature/>
> <sp:OnlySignEntireHeadersAndBody/>
> </wsp:Policy>
> </sp:SymmetricBinding>
> <sp:Wss11 xmlns:sp="
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
> <wsp:Policy>
> <sp:MustSupportRefKeyIdentifier/>
> <sp:MustSupportRefIssuerSerial/>
> <sp:MustSupportRefThumbprint/>
> <sp:MustSupportRefEncryptedKey/>
> </wsp:Policy>
> </sp:Wss11>
> <sp:Trust10 xmlns:sp="
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
> <wsp:Policy>
> <sp:MustSupportIssuedTokens/>
> <sp:RequireClientEntropy/>
> <sp:RequireServerEntropy/>
> </wsp:Policy>
> </sp:Trust10>
> <sp:EncryptedParts xmlns:sp="
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
> <sp:Body/>
> </sp:EncryptedParts>
> <ramp:RampartConfig xmlns:ramp="
> http://ws.apache.org/rampart/policy">
> <ramp:user>client</ramp:user>
> <ramp:encryptionUser>service</ramp:encryptionUser>
>
>
> <ramp:passwordCallbackClass>org.apache.rampart.samples.policy.sample04ex.PWCBHandler</ramp:passwordCallbackClass>
>
> <ramp:signatureCrypto>
> <ramp:crypto
> provider="org.apache.ws.security.components.crypto.Merlin">
> <ramp:property
>
> name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
> <ramp:property
> name="org.apache.ws.security.crypto.merlin.file">client.jks</ramp:property>
> <ramp:property
>
> name="org.apache.ws.security.crypto.merlin.keystore.password">apache</ramp:property>
> </ramp:crypto>
> </ramp:signatureCrypto>
> <ramp:encryptionCypto>
> <ramp:crypto
> provider="org.apache.ws.security.components.crypto.Merlin">
> <ramp:property
>
> name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
> <ramp:property
> name="org.apache.ws.security.crypto.merlin.file">client.jks</ramp:property>
> <ramp:property
>
> name="org.apache.ws.security.crypto.merlin.keystore.password">apache</ramp:property>
> </ramp:crypto>
> </ramp:encryptionCypto>
>
> </ramp:RampartConfig>
> </wsp:All>
> </wsp:ExactlyOne>
> </wsp:Policy>
>
> On Thu, Sep 16, 2010 at 10:30 AM, Amila Jayasekara <[email protected]>
> wrote:
>
> > Hi Harshit,
> > Some answers are inline.
> > Thanks
> > AmilaJ
> >
> > Harshit Bapna wrote:
> >
> >> Hi All,
> >>
> >> I am thinking of using RAMPART module for ws security.
> >>
> >> Requirement:
> >> To perform endpoint authentication as well as user authentication.
> >>
> >> Client endpoint authentication :- To allow only a configured client to
> >> invoke the web service.
> >> User authentication :- To allow only a specific user/actor to invoke the
> >> service. The reason for this requirement is that the same endpoint can
> be
> >> used by different type of users(Admin, CSR, normal user)
> >>
> >> I have gone through various sample 1-8 supplied wih rampart 1.5 install.
> >>
> >> Question:
> >> 1. Can I combine userName & WssX509V3Token10 token for user and endpoint
> >> auth ?
> >> UserName token - for user authentication)
> >> WssX509V3Token10 - for endpoint PKI credential authentication
> >>
> >>
> > Yes, you can. Inorder to get WssX509V3Token10 support you can either
> > use SymmetricBinding or AsymmetricBinding mechanisms. With one of above
> > bindings you can use UserName token as a supporting token.
> >
> >> 2. Also can secure conversation benefits be available when the above two
> >> type of tokens are used.
> >>
> >>
> > As far as i know you should be able to use secure conversation with
> above
> > mentioned tokens. Again you can use symmetric binding or asymmetric
> binding
> > and you should use SecureConversationToken. Thus the user name token
> should
> > be added as a supporting token.
> >
> >
> >> If you have any better suggestion to handle this requirement please let
> me
> >> know.
> >>
> >>
> > I guess the way you are heading is ok. In-case if you need more security
> > you should use SymmetricBinding or AsymmetricBinding. When you use
> > SymmetricBinding or AsymmetricBinding, keys used to encrypt/sign each
> > message differ from another. But if you are more concern about
> performance
> > you can use Secure conversation. In secure conversation Rampart uses the
> > same key to encrypt/sign messages for a given period of time.
> >
> >> Harshit Bapna
> >> Team Lead
> >> Arcot Systems
> >>
> >>
> >>
> >
> >
>
>
> --
> -- Harshit Bapna
>