Hi Oliver,

>You're right - this is confusing. The STS signs the SAML token with the
private which correlates to >the STS certificate. The RP requires the CA
certificates and the STS certificate (if self-signed as in >this demo case)
to validate the SAML token.

Thanks for response. I looked request and response message between RP and
STS. It looks like that you don't encrypt RST and RSTR, but you said that
both RST and RSTR are signed. I need to import signing cert from ADFS to
stsstore.jks keystore. Which one is key alias for RP? You have clientkey,
myservicekey and mystskey. Vise versa, I need to export signing cert from
RP to import it to ADFS. Do you have signing cert somewhere or I have to
export it myself?

Thanks.

Gina


On Mon, May 14, 2012 at 2:19 PM, Oliver Wulff <owu...@talend.com> wrote:

> Hi Gina
>
> >>>
> But I still don't understand why I have to copy stsstore.jks file into RP.
> stsstore.jks is the keystore file of STS and it should be sitting on
> somewhere on tomcat-idp not tomcat-rp. And ttomcat-rp should have it's own
> keystore file, for example clientstore.jks.
> When client issue AuthnRequest to STS, it will sign AuthnRequest with STS
> signing certificate. Vise versa, when STS issue Assertion token, it will be
> signed by client signing certificate.
> In fediz project senario, RP will be the client and it will never have
> keystore file of STS.
> I just looked at content of stsstore.jks and it looks like that you
> combined sts, client and service keystore file into one - stsstore.jks. In
> other words, stsstore.jks is being used as a keystore file for all three -
> client, service and sts. Is that correct? I think that they should be
> separated. Kind of confusing until list content of stsstore.jks.
> >>>
> You're right - this is confusing. The STS signs the SAML token with the
> private which correlates to the STS certificate. The RP requires the CA
> certificates and the STS certificate (if self-signed as in this demo case)
> to validate the SAML token.
>
> I was too lazy in creating two keystores (I just copied the keystore used
> by the CXF STS distribution). In a production environment, one keystore
> contains the private key and the certificate for the STS and the other
> contains the certificate only for the RP.
>
> I've started documentating fediz here:
> http://cxf.apache.org/fediz.html
>
> It would make sense to add a section what to consider for production
> implementation. I'll add that.
>
> Thanks
>
> ------
>
> Oliver Wulff
>
> Blog: http://owulff.blogspot.com
> Solution Architect
> http://coders.talend.com
>
> Talend Application Integration Division http://www.talend.com
>
> ________________________________________
> From: Gina Choi [ginacho...@gmail.com]
> Sent: 14 May 2012 18:00
> To: Oliver Wulff
> Cc: users@cxf.apache.org
> Subject: Re: CXF supporting scope
>
> Hi Oliver,
>
> Thanks for your response. I copied over stsstore.jks into tomcat rp and I
> am seeing saml token now.
>
> >The SAML token issued by the IDP/STS is signed and the used certificate
> must be referenced to >validate the signature:
>
>  ><trustedIssuerItem provider=".*CN=www.sts.com.*">
> >< keyStore file="/projects/fediz/tomcat-rp2/conf/stsstore.jks"
> password="stsspass" type="file" />
> >< /trustedIssuerItem>
>
> >In this example, I used a self-signed certificate and I was too lazy in
> separating the keystore into >one with the private key and into one
> without.
>
> >You find the stsstore.jks in fedizidpsts.war. Just copy it to the RP.
>
> But I still don't understand why I have to copy stsstore.jks file into RP.
> stsstore.jks is the keystore file of STS and it should be sitting on
> somewhere on tomcat-idp not tomcat-rp. And ttomcat-rp should have it's own
> keystore file, for example clientstore.jks.
>
> When client issue AuthnRequest to STS, it will sign AuthnRequest with STS
> signing certificate. Vise versa, when STS issue Assertion token, it will be
> signed by client signing certificate.
>
> In fediz project senario, RP will be the client and it will never have
> keystore file of STS.
>
> I just looked at content of stsstore.jks and it looks like that you
> combined sts, client and service keystore file into one - stsstore.jks. In
> other words, stsstore.jks is being used as a keystore file for all three -
> client, service and sts. Is that correct? I think that they should be
> separated. Kind of confusing until list content of stsstore.jks.
>
> Thanks.
>
> Gina
>
>
> On Fri, May 11, 2012 at 2:55 AM, Oliver Wulff <owu...@talend.com> wrote:
>
> >  Hi Gina
> >
> >
> >
> > The SAML token issued by the IDP/STS is signed and the used certificate
> > must be referenced to validate the signature:
> >
> >
> >
> >  <trustedIssuerItem provider=".*CN=www.sts.com.*">
> > <keyStore file="/projects/fediz/tomcat-rp2/conf/stsstore.jks"
> > password="stsspass" type="file" />
> > </trustedIssuerItem>
> >
> > In this example, I used a self-signed certificate and I was too lazy in
> > separating the keystore into one with the private key and into one
> without.
> >
> >
> >
> > You find the stsstore.jks in fedizidpsts.war. Just copy it to the RP.
> >
> >
> >
> > In your scenario with ADFS. You must import the CA certs which signed the
> > ADFS cert into a keystore and configure the CN name as a regular
> expression
> > in the attribute "provider". (The name provider is misleaing, will fix
> that)
> >
> >
> >
> > Thanks
> >
> >
> >
> >
> >
> > ------
> >
> > Oliver Wulff
> >
> > Blog: http://owulff.blogspot.com
> > Solution Architect
> > http://coders.talend.com
> >
> > <http://coders.talend.com>Talend Application Integration Division
> > http://www.talend.com
> >   ------------------------------
> > *From:* Gina Choi [ginacho...@gmail.com]
> > *Sent:* 11 May 2012 00:44
> >
> > *To:* Oliver Wulff
> > *Cc:* users@cxf.apache.org
> > *Subject:* Re: CXF supporting scope
> >
> >   Hi Oliver,
> >
> > Until this afternoon, I didn't have time to work with Fediz. Finally I
> > have successfully deployed idp, sts and simpleWebapp on Tomcat7.0.27.
> > Everything went well. I guess that on the other day, I thought doing some
> > thing, but I probably did something else. :)
> > After type https://localhost:8443/fedizhelloworld/secureservlet/fed on
> > the browser, I inputed test user name and password, but it failed.
> >
> >
> > org.apache.ws.security.components.crypto.CredentialException: Proxy file
> (/projects/fediz/tomcat-rp2/conf/stsstore.jks) not found.
> >
> >
> > In your fediz_config.xml, you have following lines. Why do we put sts key
> > store file on RP server? Does web application need to know where is sts
> > keystore file?
> >
> >   <trustedIssuers>
> >    <trustedIssuerItem provider=".*CN=www.sts.com.*">
> >     <keyStore file="/projects/fediz/tomcat-rp2/conf/stsstore.jks"
> > password="stsspass" type="file" />
> >    </trustedIssuerItem>
> >   </trustedIssuers>
> >
> >
> > Thanks.
> >
> > Gina
> >
> >  On Wed, May 9, 2012 at 1:45 AM, Oliver Wulff <owu...@talend.com> wrote:
> >
> >>  Hi Gina
> >>
> >> The steps are absolutely correct. Not sure about the failing deployment
> >> step for the application. Have you also updated tomcat-users.xml of the
> >> second tomcat instance? Or was the application already deployed once and
> >> you must run "mvn clean install tomcat:redeploy"? Is anything logged on
> >> catalina.out?
> >> Otherwise, just copy the war manually from target/fedizhelloworld.war to
> >> <tomcat-dir>/webapps.
> >>
> >> I've checked in fediz_config.xml in
> examples/simpleWebapp/src/main/config
> >> (sorry for that). Please manually copy it to the location you've
> configured
> >> in the context.xml. Ensure that the IDP url (later ADFS):
> >> <issuer>https://localhost:9443/fedizidp/</issuer>
> >> and the location of the trusted keystore is updated:
> >> <keyStore file="/projects/fediz/tomcat-rp2/conf/stsstore.jks"
> >> password="stsspass" type="file" />
> >>
> >> It will be supported in the next days to also configure a relative
> >> location to catalina.home.
> >>
> >>
> >> Thanks
> >> Oli
> >>
> >>
> >>
> >> ------
> >>
> >> Oliver Wulff
> >>
> >> Blog: http://owulff.blogspot.com
> >> Solution Architect
> >> http://coders.talend.com
> >>
> >> <http://coders.talend.com>Talend Application Integration Division
> >> http://www.talend.com
> >>   ------------------------------
> >> *From:* Gina Choi [ginacho...@gmail.com]
> >> *Sent:* 09 May 2012 00:55
> >>
> >> *To:* Oliver Wulff
> >> *Cc:* users@cxf.apache.org
> >> *Subject:* Re: CXF supporting scope
> >>
> >>   By the way I checked out head version fediz project from SVN.
> >>
> >> On Tue, May 8, 2012 at 6:36 PM, Gina Choi <ginacho...@gmail.com> wrote:
> >>
> >>> Hi Oliver,
> >>>
> >>> I am using seperate Tomcat instance for IDP and application and I set
> up
> >>> https. Following is what I did.
> >>>
> >>> I checked out Fediz project into my local machine. As you explained on
> >>> your post
> >>>
> http://owulff.blogspot.com/2011/11/configure-tomcat-for-federation-part.html
> ,
> >>> I run mvn clean install in plugins/core, pligins/tomcat and
> >>> examples/simpleWebapp/. I configued maven's settings.xml and updated
> >>> tomca-users.xml. I ran mvn tomcat:deploy under fediz\trunk\plugins,
> and I
> >>> am seeing both IDP and STS are deployed.
> >>>
> >>> I am just having problem with deloying sample application in another
> >>> Tomcat instance.
> >>>
> >>> 1. I created  sub-directory fediz in ${catalina.home}/lib of the
> >>> tomcat-rp.
> >>> 2. I have following line in the  calatina.properties in
> >>> ${catalina.home}/conf.
> >>>
> >>>
> common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/lib/fediz/*.jar
> >>> 3. I deployed the built libraries and dependencies to the directory
> >>> created in (1)
> >>> I got the built libraries from
> fediz-tomcat/target/fediz-tomcat-0.6-SNAPSHOT-zip-with-dependencies.zip.
> >>> After this, I am getting error messages when start Tomcat. This
> preventing
> >>> me step5 for deploying applicaitons properly.
> >>>  If I replace generated lib/fediz jar files with old jar files that I
> >>> downloaded from your post, I am able to start tomcat without error and
> able
> >>> to deploy application, but couldn't run properly.
> >>> 4. since I can't find fediz_config.xml, so I configured
> *META-INF/context.xml
> >>> as follow.
> >>>
> >>> *  <Context>
> >>> <Valve className="org.apache<
> http://owulff.blogspot.com/2011/11/configure-tomcat-for-federation-part.html#
> >
> >>> .cxf.fediz.tomcat.FederationAuthenticator"
> >>>  issuerURL="https://localhost:9443/fedizidp/";
> >>> truststoreFile="conf/stsstore.jks"
> >>> truststorePassword="stsspass"
> >>> trustedIssuer=".*CN=www.sts.com.*" />
> >>>  </Context>
> >>> 5. If I run mvn tomcat:deploy under fediz\trunk\examples\simpleWebapp,
> I
> >>> am getting following error message.
> >>>
> >>> Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy
> >>> (default-cli) on project simpleWebapp: Cannot invoke Tomcat manager:
> FAIL -
> >>> Failed to deploy application at context path /fedizhelloworld -> [Help
> 1]
> >>>
> >>> So, I couldn't get your application run. I hope that all these problem
> >>> caused because of missing fediz_config.xml.
> >>>
> >>> Thanks.
> >>>
> >>> Gina
> >>>   On Tue, May 8, 2012 at 2:46 PM, Oliver Wulff <owu...@talend.com
> >wrote:
> >>>
> >>>>  Hi Gina
> >>>>
> >>>>
> >>>>
> >>>> I'll send you and checkin the fediz_config.xml as soon as I can - I'm
> >>>> on the way right now.
> >>>>
> >>>>
> >>>>
> >>>> This STS URL is fine, the Mock IDP uses the CXF STS. When the
> >>>> application works you will change in your application
> (fediz_config.xml)
> >>>> the issuerUrl of ADFS.
> >>>>
> >>>>
> >>>>
> >>>> Have you configured HTTPS for the IDP Tomcat instance and your
> >>>> application Tomcat instance?
> >>>>
> >>>> I recommend to use a separate instance of the IDP and your
> application.
> >>>>
> >>>> Do you use the port 9443?
> >>>>
> >>>>
> >>>>
> >>>> Thanks
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> ------
> >>>>
> >>>> Oliver Wulff
> >>>>
> >>>> Blog: http://owulff.blogspot.com
> >>>> Solution Architect
> >>>> http://coders.talend.com
> >>>>
> >>>> <http://coders.talend.com>Talend Application Integration Division
> >>>> http://www.talend.com
> >>>>   ------------------------------
> >>>> *From:* Gina Choi [ginacho...@gmail.com]
> >>>> *Sent:* 08 May 2012 20:20
> >>>>
> >>>> *To:* Oliver Wulff
> >>>> *Cc:* users@cxf.apache.org
> >>>> *Subject:* Re: CXF supporting scope
> >>>>
> >>>>    Hi Oliver
> >>>>
> >>>> >I'd recommend to successfully deploy the wsclientWebapp sample and
> the
> >>>> IDP. When this works, rip&replace >one piece after the other. I'd
> recommend
> >>>> to choose the following approach.
> >>>>
> >>>> >1) Replace the Fediz IDP by ADFS
> >>>> >      + configure the ADFS issuerUrl (context.xml)
> >>>> >      + ensure that ADFS supports WS-Federation Passive Requestor
> >>>> Profile
> >>>> >      + configure the certificate used by ADFS to sign the SAML token
> >>>> >
> >>>> >(the most recent version of fediz uses a separate xml file for the
> >>>> configuration)
> >>>>
> >>>> Somehow I couldn't deploy both fediz\trunk\services and
> >>>> fediz\trunk\examples\wsclientWebapp on Tomcat7.0.27, so I deployed
> them on
> >>>> Tomcat 7.0.21. I checked tomcat user name and Maven's settings file
> all,
> >>>> but couldn't find reason. It just said that can't involke Tomcat
> Manager.
> >>>> But since I was able to deploy it on tomcat 7.0.21, I decided to
> figure it
> >>>> out later.
> >>>>
> >>>> In the context.xml, I have following content. So, It lookis like that
> >>>> issuerURL defined inside fediz_config.xml, but I searched all
> directories,
> >>>> but couldn't find a file called fediz_config.xml.
> >>>>
> >>>> <Context>
> >>>>         <Valve
> >>>> className="org.apache.cxf.fediz.tomcat.FederationAuthenticator"
> >>>> configFile="conf/fediz_config.xml" />
> >>>>         <!--<Valve
> >>>> className="org.apache.cxf.fediz.tomcat.FederationAuthenticator"
> issuerURL="
> >>>> https://localhost:9443/fedizidp/"; truststoreFile="conf/stsstore.jks"
> >>>> truststorePassword="stsspass" trustedIssuer=".*CN=www.sts.com.*" />-->
> >>>>         <!--Valve
> >>>> className="org.apache.cxf.fediz.tomcat.FederationAuthenticator"
> >>>>
> issuerCallbackHandler="org.apache.cxf.fediz.tomcat.DummyIDPCallbackHandler"
> >>>> truststoreFile="conf/stsstore.jks" truststorePassword="stsspass"
> >>>> />-->
> >>>> </Context>
> >>>>
> >>>> In the web.xml file of the idp, you have following content. ADFS has
> >>>> mex address. so, I assume that I need to replace value of
> sts.wsdl.url with
> >>>> ADFS mex address.
> >>>>
> >>>>
> >>>>  <servlet>
> >>>>   <servlet-name>FederationServlet</servlet-name>
> >>>>
> >>>>
> <servlet-class>org.apache.cxf.fediz.service.idp.IdpServlet</servlet-class>
> >>>>   <init-param>
> >>>>    <param-name>sts.wsdl.url</param-name>
> >>>>    <param-value>https://localhost:9443/fedizidpsts/STSService?wsdl
> >>>> </param-value>
> >>>>   </init-param>
> >>>>   <init-param>
> >>>>    <param-name>sts.wsdl.service</param-name>
> >>>>    <param-value>SecurityTokenService</param-value>
> >>>>   </init-param>
> >>>>
> >>>> Thanks.
> >>>>
> >>>> Gina
> >>>>  On Tue, May 8, 2012 at 2:26 AM, Oliver Wulff <owu...@talend.com
> >wrote:
> >>>>
> >>>>>  Hi Gina
> >>>>>
> >>>>>
> >>>>>
> >>>>> >>>
> >>>>>
> >>>>> I don't mind giving up existing implementation as long as I find
> >>>>> better solution. I was hoping that Fediz project
> >>>>>
> >>>>> uses only Apache CXF instead of introducing another FrameWork -
> >>>>> OpenSAML.
> >>>>>
> >>>>> >>>
> >>>>>
> >>>>> Apache CXF uses OpenSAML too for all SAML processing for SOAP and
> REST
> >>>>> based service communication. OpenSAML is widely used and bundled
> into other
> >>>>> frameworks like CXF and Fediz.
> >>>>>
> >>>>>
> >>>>>
> >>>>> >>>
> >>>>>
> >>>>> If I only consider passive profile at this moment, what changes are
> >>>>> need to Fediz project to point to ADFS(STS) intead of Apach CXF STS?
> Where
> >>>>> did you define your stsActionURL? I like to start with passive
> profile
> >>>>> since it is easier to start with. I can use your sample application.
> It
> >>>>> doesn't matter if I use Airline or not since it is a just prototype
> >>>>>
> >>>>> >>>
> >>>>>
> >>>>> I'd recommend to successfully deploy the wsclientWebapp sample and
> the
> >>>>> IDP. When this works, rip&replace one piece after the other. I'd
> recommend
> >>>>> to choose the following approach.
> >>>>>
> >>>>>
> >>>>>
> >>>>> 1) Replace the Fediz IDP by ADFS
> >>>>>
> >>>>>       + configure the ADFS issuerUrl (context.xml)
> >>>>>
> >>>>>       + ensure that ADFS supports WS-Federation Passive Requestor
> >>>>> Profile
> >>>>>
> >>>>>       + configure the certificate used by ADFS to sign the SAML token
> >>>>>
> >>>>>
> >>>>>
> >>>>> (the most recent version of fediz uses a separate xml file for the
> >>>>> configuration)
> >>>>>
> >>>>>
> >>>>>
> >>>>> 2) Update the webapp to generate and use the stubs of the
> >>>>> BookingService in the FederationServlet (just a test - call the
> simplest
> >>>>> method). Configure the ASP.NET wsdl location (usually url?wsdl).
> >>>>> Configure the ADFS STS url in the STSClient bean in the beans.xml
> >>>>> configuration. Change the property onbehalfof to actas.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> HTH
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> ------
> >>>>>
> >>>>> Oliver Wulff
> >>>>>
> >>>>> Blog: http://owulff.blogspot.com
> >>>>> Solution Architect
> >>>>> http://coders.talend.com
> >>>>>
> >>>>> <http://coders.talend.com>Talend Application Integration Division
> >>>>> http://www.talend.com
> >>>>>   ------------------------------
> >>>>> *From:* Gina Choi [ginacho...@gmail.com]
> >>>>> *Sent:* 08 May 2012 01:05
> >>>>> *To:* Oliver Wulff
> >>>>> *Cc:* users@cxf.apache.org
> >>>>>
> >>>>> *Subject:* Re: CXF supporting scope
> >>>>>
> >>>>>    Hi Oliver,
> >>>>>
> >>>>> I am not responsible for BookingService(.NET). The other guys who
> >>>>> implemented it using WIF. You know that Microsoft created WIF and
> tested
> >>>>> with ADFS, so it it doesn't work, I would be surprised.
> >>>>>  >Which Servlet container do you use?
> >>>>> I am using Tomcat7.
> >>>>>
> >>>>>
> >>>>> >In your current setup, how does the samlp:Response look like?
> >>>>> I sent you decoded SAML response token in seperate email. I am
> >>>>> sretrieving based64 encoded saml response token using following code.
> >>>>>
> >>>>>
> >>>>> String encodedSamlResponseTokenStr =
> >>>>> request.getParameter("SAMLResponse");
> >>>>>
> >>>>> I don't mind giving up existing implementation as long as I find
> >>>>> better solution. I was hoping that Fediz project uses only Apache CXF
> >>>>> instead of introducing another FrameWork - OpenSAML.
> >>>>>
> >>>>> I loaded
> >>>>>
> http://svn.apache.org/viewvc/cxf/fediz/trunk/examples/wsclientWebapp/webapp/to
> >>>>> the Eclipse today.
> >>>>>
> >>>>>
> >>>>>
> >>>>> Basically I need following three URL for ADFS(STS). First two is for
> >>>>> active profile and third one is for passive profile(SP initiated
> Redirect
> >>>>> POST bindings). If I only consider passive profile at this moment,
> what
> >>>>> changes are need to Fediz project to point to ADFS(STS) intead of
> Apach CXF
> >>>>> STS? Where did you define your stsActionURL? I like to start with
> passive
> >>>>> profile since it is easier to start with. I can use your sample
> >>>>> application. It doesn't matter if I use Airline or not since it is a
> just
> >>>>> prototype.
> >>>>>
> >>>>> *private* *static* *final* String *stsEndpoint* = "
> >>>>> https://strts01.ams.dev/adfs/services/trust/13/usernamemixed";;
> >>>>>
> >>>>> *private* *static* *final* String *stsMEXAddress* =
> >>>>> https://strts01.ams.dev/adfs/services/trust/mex;
> >>>>>
> >>>>> private static final String stsActionURL =
> >>>>> https://strts01.ams.dev/adfs/ls/;
> >>>>>
> >>>>>
> >>>>>  Thanks again for your guidance.
> >>>>>
> >>>>> Gina
> >>>>>
> >>>>> On Mon, May 7, 2012 at 3:36 PM, Oliver Wulff <owu...@talend.com
> >wrote:
> >>>>>
> >>>>>>  Hi Gina
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> The fediz project is used to protect your web application where the
> >>>>>> client is a browser. Right now, Fediz supports WS-Federation Passive
> >>>>>> Requestor Profile which is supported by ADFS and usually used in
> the .NET
> >>>>>> world as a the default mechanism. You don't have to implement that
> in
> >>>>>> your application - that's done by the Fediz plugin. Fediz uses
> opensaml for
> >>>>>> SAML processing.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> The original URL is stored in the wreply parameter. .NET uses a
> >>>>>> combination of the wtrealm and wctx parameter.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> Your Airline application can use CXF for the web services
> >>>>>> communication (for the REST communication also, if you like). The
> built-in
> >>>>>> support in CXF for the IssuedToken assertion (WS-SecurityPolicy)
> supports
> >>>>>> to get a token from ADFS using actas. In my example, just use actas
> instead
> >>>>>> of onbehalfof property.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> >>>
> >>>>>>
> >>>>>>  ADFS generate SAMLtoken and this SAML token is sent back to
> >>>>>> Airline(Airline does all validation work) and cached in the
> session. - This
> >>>>>> part is implemented.
> >>>>>>
> >>>>>> >>>
> >>>>>>
> >>>>>> The validation work is already done by Fediz. Session management is
> >>>>>> then done by the JEE container. Your application is called after
> the SAML
> >>>>>> token issued by ADFS is successfully validated. The container will
> create
> >>>>>> the session and check every incoming request whether the used token
> is
> >>>>>> still valid - otherwise, the browser is redirected again to ADFS.
> You could
> >>>>>> also configure some roles in ADFS to protect your web application
> as the
> >>>>>> fediz plugin tells the container the userid as well as its roles.
> You could
> >>>>>> even use claims if you like.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> Which Servlet container do you use?
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> In your current setup, how does the samlp:Response look like?
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> Thanks
> >>>>>>
> >>>>>> Oli
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> ------
> >>>>>>
> >>>>>> Oliver Wulff
> >>>>>>
> >>>>>> Blog: http://owulff.blogspot.com
> >>>>>> Solution Architect
> >>>>>> http://coders.talend.com
> >>>>>>
> >>>>>> <http://coders.talend.com>Talend Application Integration Division
> >>>>>> http://www.talend.com
> >>>>>>   ------------------------------
> >>>>>> *From:* Gina Choi [ginacho...@gmail.com]
> >>>>>> *Sent:* 07 May 2012 20:24
> >>>>>> *To:* users@cxf.apache.org
> >>>>>> *Cc:* Oliver Wulff
> >>>>>> *Subject:* Re: CXF supporting scope
> >>>>>>
> >>>>>>    Hi Oliver,
> >>>>>>
> >>>>>> I did notice that your sample application used both opensaml and
> >>>>>> openws libraries. Are they used by Apache CXF or just by Frediz
> project?
> >>>>>>
> >>>>>> I need to clarify my environment further to give you better picture.
> >>>>>>
> >>>>>> 1. All web services in my application are REST. The only reason that
> >>>>>> I use SOAP is to create a soap client to call .NET SOAP web service
> which
> >>>>>> resides on another application. I am working with a .NET guy to
> prove some
> >>>>>> prototypes. His sample application is BookingService which I
> provided you
> >>>>>> wsdl. I am working on Airline.
> >>>>>>
> >>>>>> BookingService: .NET4.0 SOAP
> >>>>>> Airline: Java with REST
> >>>>>>
> >>>>>> 2. Both BookingService and Airline use same ADFS as STS. We have set
> >>>>>> up relying parties for BookingService and Airline in ADFS.
> >>>>>>
> >>>>>> 3. SSO:  A user will be using both Airline and BookingService. So,
> >>>>>> she/he should be able to log on once for both applications. In
> Airline(my
> >>>>>> application), I used SP initialed POST redirect bindings. So, when
> a user
> >>>>>> make a request to Airline at first time, the user will be
> redirected to
> >>>>>> ADFS and asked credentials. After user provide username/password,
> ADFS
> >>>>>> generate SAMLtoken and this SAML token is sent back to
> Airline(Airline does
> >>>>>> all validation work) and cached in the session. - This part is
> implemented.
> >>>>>>
> >>>>>> 4. Now a user call BookingService which is claim aware. So, I need
> to
> >>>>>> inject Assertion token get from previous step inside actas element
> to call
> >>>>>> STS(ADFS2.0) to get a new token. With that new token, I will be
> calling
> >>>>>> Booking service.
> >>>>>>
> >>>>>> So, I don't think that I am able to use Apach CXF STS part since my
> >>>>>> STS will be ADFS. So, I am hoping that Apache CXF can work with
> ADFS(STS)
> >>>>>> to support my prototypes.
> >>>>>>
> >>>>>>
> >>>>>> Thanks.
> >>>>>>
> >>>>>> Gina
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Sat, May 5, 2012 at 6:22 AM, Oliver Wulff <owu...@talend.com
> >wrote:
> >>>>>>
> >>>>>>> Hi Gina
> >>>>>>>
> >>>>>>> >>>
> >>>>>>> So, what I need is after user log on using Web SSO, the SAML token
> >>>>>>> should be cached in web context and being used as actas token when
> making a
> >>>>>>> call to .NET web service.
> >>>>>>> >>>
> >>>>>>>  This is supported by CXF without writing any single line of code.
> I
> >>>>>>> do have a sample web application here:
> >>>>>>>
> >>>>>>>
> http://svn.apache.org/viewvc/cxf/fediz/trunk/examples/wsclientWebapp/webapp/
> >>>>>>>
> >>>>>>> This example illustrates:
> >>>>>>> - fediz is configured for web sso
> >>>>>>> - SAML token is cached in the session and used to request a new
> >>>>>>> token from the STS
> >>>>>>>
> >>>>>>> The code to call the web service is in FederationServlet.doPost():
> >>>>>>> ...
> >>>>>>> Greeter service =
> >>>>>>>
> (Greeter)ApplicationContextProvider.getContext().getBean("HelloServiceClient");
> >>>>>>> String reply = service.greetMe();
> >>>>>>> ...
> >>>>>>>
> >>>>>>> The magic is in the configuration I used here:
> >>>>>>>
> >>>>>>>
> http://svn.apache.org/viewvc/cxf/fediz/trunk/examples/wsclientWebapp/webapp/src/main/webapp/WEB-INF/beans.xml?view=markup
> >>>>>>>
> >>>>>>> The following property registers a callback handler to provide the
> >>>>>>> STSClient the token of the Web Login:
> >>>>>>> <property name="onBehalfOf" ref="delegationCallbackHandler" />
> >>>>>>>
> >>>>>>> (There is also a property for actAs)
> >>>>>>>
> >>>>>>> The above example should exactly do what you need. You just have to
> >>>>>>> change the above property to use ActAs instead of OnBehalfOf. The
> details
> >>>>>>> for this example are described here:
> >>>>>>>
> >>>>>>>
> http://owulff.blogspot.com/2012/04/sso-across-web-applications-and-web_16.html
> >>>>>>>
> >>>>>>>
> >>>>>>> To test this easily, you can use the Mock IDP as part of Fediz for
> >>>>>>> the authentication. You could also attach Active Directory in the
> Mock if
> >>>>>>> you like. See here:
> >>>>>>>
> >>>>>>>
> http://owulff.blogspot.com/2011/10/configure-ldap-directory-for-cxf-sts.html
> >>>>>>>
> >>>>>>> I use that within a customer set up to connect the CXF STS to
> Active
> >>>>>>> Directory.
> >>>>>>>
> >>>>>>> >>>
> >>>>>>> What is Spring role in CXF?
> >>>>>>> >>>
> >>>>>>>  You can use Spring to configure your services. The above example
> is
> >>>>>>> based on spring. As you see, all security related stuff is enabled
> by
> >>>>>>> configuration (Convention of Configuration). You can also write an
> >>>>>>> application without spring but I wouldn't write an application
> without
> >>>>>>> spring nowadays but this is up to you.
> >>>>>>>
> >>>>>>> >>>
> >>>>>>> I don't know much LDAP, but it should be used as an attribute
> store.
> >>>>>>> I consider it as an alternative of Active Directory. Please
> correct me if I
> >>>>>>> am wrong.
> >>>>>>> >>>
> >>>>>>>  Active Directory provides different interfaces. One of them is
> >>>>>>> LDAP. You can use the LDAPLoginModule of the JDK for
> authentication. But
> >>>>>>> you don't have to care that much as ADFS (and maybe the Fediz Mock
> for
> >>>>>>> testing) will access ActiveDirectory to read the claims to add
> them to the
> >>>>>>> SAML token.
> >>>>>>>
> >>>>>>> Could you zip the wsdl before attaching?
> >>>>>>>
> >>>>>>> Thanks
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> ------
> >>>>>>>
> >>>>>>> Oliver Wulff
> >>>>>>>
> >>>>>>> Blog: http://owulff.blogspot.com<http://owulff.blogspot.com/>
> >>>>>>> Solution Architect
> >>>>>>> http://coders.talend.com
> >>>>>>>
> >>>>>>> <http://coders.talend.com>Talend Application Integration Division
> >>>>>>> http://www.talend.com
> >>>>>>>
> >>>>>>> ________________________________
> >>>>>>>  Von: Gina Choi [ginacho...@gmail.com]
> >>>>>>> Gesendet: Freitag, 4. Mai 2012 20:54
> >>>>>>> Bis: users@cxf.apache.org
> >>>>>>> Betreff: Re: CXF supporting scope
> >>>>>>>
> >>>>>>> Hi Oliver,
> >>>>>>>
> >>>>>>> Thanks for your response.
> >>>>>>>
> >>>>>>>  >You mean that WIF is deployed in the ASP.NET<http://asp.net/>
> web
> >>>>>>> service using the Active Requestor Profile?
> >>>>>>> >The SAML token should contain the claims as an AttributeStatement?
> >>>>>>> >Can you share with us the WS-SecurityPolicy of this Web Service?
> >>>>>>> I have attached two wsdl file. BookingService.wsdl and
> >>>>>>> BookingService_imported.wsdl. BookingService.wsdl  is importing
> >>>>>>> BookingService_imported.wsdl and if you open BookingService.wsdl,
> in line
> >>>>>>> 10 there is a importing statement like bellow. This .NET4.0
> service is not
> >>>>>>> owned by me and I don't know if separating wsdl file is common
> practice. Is
> >>>>>>> there anyway to combin them into one when generate artifact using
> wsimport?
> >>>>>>> I will be calling CheckIn operation.
> >>>>>>>
> >>>>>>> <wsdl:import location="
> >>>>>>>
> http://mecdevapp02.global.sdl.corp/BookingService/BookingService.svc?wsdl=wsdl0
> "
> >>>>>>> namespace="http://tempuri.org/"/>
> >>>>>>>
> >>>>>>> >I haven't used ADFS using WS-Trust so far. Usually, it uses a
> >>>>>>> Symmetric and Asymmetric binding.
> >>>>>>> >What roles does ADFS 2.0 play?
> >>>>>>> >Once as the IDP for the Web application SSO and once to let issue
> a
> >>>>>>> token onbehalfof/actas the original token >from the Web SSO? (this
> is
> >>>>>>> supported by CXF-Fediz)
> >>>>>>> >
> >>>>>>>
> http://owulff.blogspot.com/2012/04/sso-across-web-applications-and-web_16.html
> >>>>>>> I am using Active Directory as an attribute store. So, I could say
> >>>>>>> ADFS role should be IDP. So, what I need is after user log on
> using Web
> >>>>>>> SSO, the SAML token should be cached in web context and being used
> as actas
> >>>>>>> token when making a call to .NET web service.
> >>>>>>>
> >>>>>>> > Yes, the passive profile is supported by Fediz. Is ADFS the IDP?
> >>>>>>> In which application server is your web >application deployed?
> >>>>>>> ADFS is IDP and my Java web application is Service Provider.
> >>>>>>>
> >>>>>>> >What do you mean exactly? Is LDAP used for authentication by the
> >>>>>>> STS? Or should the service provider retrieve >the claims/roles
> from LDAP?
> >>>>>>> I don't know much LDAP, but it should be used as an attribute
> store.
> >>>>>>> I consider it as an alternative of Active Directory. Please
> correct me if I
> >>>>>>> am wrong. I have been reading many specifications, but I am still
> having
> >>>>>>> hard time to straiten up correct terms.
> >>>>>>>
> >>>>>>> >No, Spring is not a requirement.
> >>>>>>> What is Spring role in CXF?
> >>>>>>>
> >>>>>>> Thanks.
> >>>>>>>
> >>>>>>> Gina
> >>>>>>>  On Thu, May 3, 2012 at 2:24 PM, Oliver Wulff <owu...@talend.com
> >>>>>>> <mailto:owu...@talend.com>> wrote:
> >>>>>>> >>>
> >>>>>>> 1. I have to create a client for .NET4.0 web service which claim
> >>>>>>> aware. So,
> >>>>>>> how is CXF interoperability with .NET?
> >>>>>>> >>>
> >>>>>>>  You mean that WIF is deployed in the ASP.NET<http://ASP.NET> web
> >>>>>>> service using the Active Requestor Profile?
> >>>>>>> The SAML token should contain the claims as an AttributeStatement?
> >>>>>>> Can you share with us the WS-SecurityPolicy of this Web Service?
> >>>>>>>
> >>>>>>> >>>
> >>>>>>> 2. If CXF support ADFS2.0 as STS.
> >>>>>>> >>>
> >>>>>>> I haven't used ADFS using WS-Trust so far. Usually, it uses a
> >>>>>>> Symmetric and Asymmetric binding.
> >>>>>>> What roles does ADFS 2.0 play?
> >>>>>>> Once as the IDP for the Web application SSO and once to let issue a
> >>>>>>> token onbehalfof/actas the original token from the Web SSO? (this
> is
> >>>>>>> supported by CXF-Fediz)
> >>>>>>>
> >>>>>>>
> http://owulff.blogspot.com/2012/04/sso-across-web-applications-and-web_16.html
> >>>>>>>
> >>>>>>> >>>
> >>>>>>> 3. If CXF support passive profile. Especially SP initiated Redirect
> >>>>>>> ->  POST
> >>>>>>> binding.
> >>>>>>> >>>
> >>>>>>> Yes, the passive profile is supported by Fediz. Is ADFS the IDP? In
> >>>>>>> which application server is your web application deployed?
> >>>>>>>
> >>>>>>> >>>
> >>>>>>> 4. If CXF can work with LDAP.
> >>>>>>> >>>
> >>>>>>> What do you mean exactly? Is LDAP used for authentication by the
> >>>>>>> STS? Or should the service provider retrieve the claims/roles from
> LDAP?
> >>>>>>>
> >>>>>>> >>>>
> >>>>>>> 5. My application doesn't use Spring frame work. Do I have to use
> >>>>>>> Spring
> >>>>>>> Frame work to use CXF.
> >>>>>>> >>>
> >>>>>>> No, Spring is not a requirement.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> ------
> >>>>>>>
> >>>>>>> Oliver Wulff
> >>>>>>>
> >>>>>>> Blog: http://owulff.blogspot.com
> >>>>>>> Solution Architect
> >>>>>>> http://coders.talend.com
> >>>>>>>
> >>>>>>> Talend Application Integration Division http://www.talend.com
> >>>>>>>
> >>>>>>> ________________________________________
> >>>>>>>  Von: gchoi [gc...@sdl.com<mailto:gc...@sdl.com>]
> >>>>>>> Gesendet: Mittwoch, 2. Mai 2012 17:29
> >>>>>>>  Bis: users@cxf.apache.org<mailto:users@cxf.apache.org>
> >>>>>>>  Betreff: CXF supporting scope
> >>>>>>>
> >>>>>>> Hi All,
> >>>>>>>
> >>>>>>> So far, I evaluated several frame works, but they seem don't do
> what
> >>>>>>> I
> >>>>>>> expect. Several people suggested me that I should consider CXF.
> >>>>>>> Before I dig
> >>>>>>> into CXF, I would like know if CXF support following things. By the
> >>>>>>> way, I
> >>>>>>> just joined this user group.
> >>>>>>>
> >>>>>>>
> >>>>>>> 1. I have to create a client for .NET4.0 web service which claim
> >>>>>>> aware. So,
> >>>>>>> how is CXF interoperability with .NET?
> >>>>>>>
> >>>>>>> 2. If CXF support ADFS2.0 as STS.
> >>>>>>>
> >>>>>>> 3. If CXF support passive profile. Especially SP initiated Redirect
> >>>>>>> ->  POST
> >>>>>>> binding.
> >>>>>>>
> >>>>>>> 4. If CXF can work with LDAP.
> >>>>>>>
> >>>>>>> 5. My application doesn't use Spring frame work. Do I have to use
> >>>>>>> Spring
> >>>>>>> Frame work to use CXF.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> Thank in advance.
> >>>>>>>
> >>>>>>> --
> >>>>>>> View this message in context:
> >>>>>>>
> http://cxf.547215.n5.nabble.com/CXF-supporting-scope-tp5680855.html
> >>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
>

Reply via email to