cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [CONF] Apache CXF > Fediz
Date Fri, 11 May 2012 21:09:00 GMT
    <base href="">
            <link rel="stylesheet" href="/confluence/s/2042/9/15/_/styles/combined.css?spaceKey=CXF&amp;forWysiwyg=true"
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="">Fediz</a></h2>
    <h4>Page <b>edited</b> by             <a href="">Oliver
                         <h4>Changes (3)</h4>
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >h5. Set up the Relying Party Container
<br> <br></td></tr>
            <tr><td class="diff-changed-lines" >An individual plugin is deployed
in each container. But most of the configuration is container independent and described <span
<span class="diff-added-words"style="background-color: #dfd;">[Configuration]</span>
            <tr><td class="diff-unchanged" > <br>The following lists shows
the supported containers and the location of the installation and configuration page. <br></td></tr>
            <tr><td class="diff-changed-lines" >* [Tomcat 7 <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">|
]</span> <span class="diff-added-words"style="background-color: #dfd;">|Tomcat]</span>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">This
[blog post |]
describes how to set up the Relying Party Container as well as the *simpleWebapp* sample.
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-unchanged" >h2. Distribution <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="Fediz-ApacheCXFFediz%3AAnOpenSourceWebSecurityFramework"></a>Apache
CXF Fediz: An Open-Source Web Security Framework</h1>

<h2><a name="Fediz-Overview"></a>Overview</h2>

<p>Apache CXF Fediz is a subproject of CXF. Fediz helps you to secure your web applications
and delegates security enforcement to the underlying application server. Authentication is
externalized from your web application to an identity provider which is a dedicated server
component. The supported standard is WS-Federation 1.2 Passive Requestor Profile. Fediz supports
Claims based Access control beyond Role Based Access Control (RBAC).</p>

<h2><a name="Fediz-News"></a>News</h2>

<h2><a name="Fediz-Features"></a>Features</h2>

<p>The following features are supported by the Fediz plugin 1.0</p>
	<li>WS-Federation 1.1/1.2</li>
	<li>SAML 1.1/2.0 Tokens</li>
	<li>Custom token support</li>
	<li>Publish WS-Federation Metadata document</li>
	<li>Role information encoded as AttributeStatement in SAML 1.1/2.0 tokens</li>
	<li>Claims information provided by FederationPrincipal interface</li>

<p>The following features are planned for the next release:</p>
	<li>Support for Jetty and JBoss</li>
	<li>CXF plugin</li>
	<li>Support for encrypted SAML tokens</li>
	<li>Support for Holder-Of-Key SubjectConfirmationMethod</li>
	<li>"Resource IDP" support for Fediz IDP</li>
	<li>support for other protocols like SAML-P, OAuth</li>

<p>You can get the current status of the issues <a href=""
class="external-link" rel="nofollow">here </a>.</p>

<h2><a name="Fediz-Gettingstarted"></a>Getting started</h2>

<p>The WS-Federation specification defines the following parties involved during the
web login:</p>
	<li>Identity Provider (IDP)<br/>
The IDP is a centralized, application independent runtime component which implements the protocol
defined by WS-Federation. You can use any open source or commercial product as your IDP which
supports WS-Federation 1.1/1.2. It's recommended to use the Fediz IDP for testing as it allows
to test your web application in a sandbox without having all infrastructure components available.
The Fediz IDP consists of two WAR components. The Security Token Service (STS) is doing most
of the part like authenticating the user, retrieve claims/role data and create the SAML token.
The IDP WAR translates the response to a HTML response thus a browser can process it.</li>
	<li>Relying Party (RP)<br/>
The RP is the web application which should be protected. The RP must be able to implement
the protocol as defined by WS-Federation. This component is called "Fediz Plugin" in this
project which consists of container agnostic module/jar and a container specific jar. When
an authenticated request is detected by the plugin it redirects to the IDP or authentication.
The browser sends the response from IDP to the RP after successful authentication. The RP
validates the response and creates the container security context.</li>

<p>It's recommended to deploy the IDP and the web application (RP) into different container
instances as in a production deployment. The container with the IDP can be used during development
and testing for any web application.</p>

<h5><a name="Fediz-SettinguptheIDP"></a>Setting up the IDP</h5>

<p>The following blog entries describe how to set up the IDP:</p>

<p><a href=""
class="external-link" rel="nofollow">STS WAR</a><br/>
<a href=""
class="external-link" rel="nofollow">IDP WAR</a></p>

<h5><a name="Fediz-SetuptheRelyingPartyContainer"></a>Set up the Relying
Party Container</h5>

<p>An individual plugin is deployed in each container. But most of the configuration
is container independent and described <a href="/confluence/display/CXF/Configuration"

<p>The following lists shows the supported containers and the location of the installation
and configuration page.</p>
	<li><a href="/confluence/display/CXF/Tomcat" title="Tomcat">Tomcat 7 </a></li>

<h2><a name="Fediz-Distribution"></a>Distribution</h2>


<h2><a name="Fediz-Samples"></a>Samples</h2>

<p>The examples directory contains two sample projects:</p>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<th class='confluenceTh'> Sample </th>
<th class='confluenceTh'> Description </th>
<th class='confluenceTh'> Doc Page </th>
<td class='confluenceTd'> <b>simpleWebapp</b> </td>
<td class='confluenceTd'> a simple web application which is protected by the Fediz IDP.
The FederationServlet illustrates how to get security information using the standard APIs.
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow">Blog </a> </td>
<td class='confluenceTd'> <b>wsclientWebapp</b> </td>
<td class='confluenceTd'> a protected web application which calls a web service protected
by the Fediz STS. The FederationServlet illustrates how to securely call a web service. </td>
<td class='confluenceTd'> <a href=""
class="external-link" rel="nofollow">Blog </a> </td>

<h2><a name="Fediz-Building"></a>Building</h2>

<p>Check out the code from here:</p>
	<li>svn<br class="atl-forced-newline" />
<a href="" class="external-link" rel="nofollow"></a></li>

<h5><a name="Fediz-BuildingwithMaven"></a>Building with Maven</h5>

<p>You build the run the tests using the following command:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn clean install

<p>Note: you need to use Maven 2.0.9 or newer and have the following environment variable
set: <tt>MAVEN_OPTS=-Xmx512m</tt></p>

<h5><a name="Fediz-SettingupEclipse%3A"></a>Setting up Eclipse:</h5>

<p>See <a href="" class="external-link"
rel="nofollow">this page</a> for information on using the Eclipse IDE with the Fediz
source code. This page is created for CXF but the same commands are applicable for Fediz too.</p>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href=""
class="grey">Change Notification Preferences</a>
        <a href="">View Online</a>
        <a href="">View
        <a href=";showCommentArea=true#addcomment">Add

View raw message