cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Wulff (Confluence)" <conflue...@apache.org>
Subject [CONF] Apache CXF > Fediz
Date Fri, 06 Sep 2013 11:29:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/en/2176/1/15/_/styles/combined.css?spaceKey=CXF&amp;forWysiwyg=true"
type="text/css">
    </head>
<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="https://cwiki.apache.org/confluence/display/CXF/Fediz">Fediz</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~owulff@apache.org">Oliver
Wulff</a>
    </h4>
        <br/>
                         <h4>Changes (1)</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" >| *wsclientWebapp* | a protected web
application that calls a web service that uses the Fediz STS to validate credentials. Here,
the same STS is used for token issuance (indirectly, by the web application through use of
the Fediz IDP) and validation.  The FederationServlet illustrates how to securely call a web
service. | <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">[#building]
<br></td></tr>
            <tr><td class="diff-unchanged" >h2. Building <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </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. With Fediz, authentication
is externalized from your web application to an identity provider installed as a dedicated
server component. The supported standard is <a href="http://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html#_Toc223175002"
class="external-link" rel="nofollow">WS-Federation Passive Requestor Profile</a>.
Fediz supports <a href="http://en.wikipedia.org/wiki/Claims-based_identity" class="external-link"
rel="nofollow">Claims Based Access Control</a> beyond Role Based Access Control (RBAC).</p>


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

<p>Apache CXF Fediz 1.0.3 has been released. For more information, please go <a href="/confluence/display/CXF/Fediz+Downloads"
title="Fediz Downloads">here</a>.</p>

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

<p>The following features are supported by the Fediz plugin 1.0</p>
<ul>
	<li>WS-Federation 1.0/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>
</ul>


<p>The following features are planned for the next release:</p>
<ul>
	<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>
</ul>


<p>You can get the current status of the enhancements <a href="https://issues.apache.org/jira/browse/FEDIZ"
class="external-link" rel="nofollow">here </a>.</p>

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

<p>The Fediz architecture is described in more detail <a href="/confluence/display/CXF/Fediz+Architecture"
title="Fediz Architecture">here</a>.</p>

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

<p>See <a href="/confluence/display/CXF/Fediz+Downloads" title="Fediz Downloads">here</a>.</p>


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

<p>The WS-Federation specification defines the following parties involved during a web
login:</p>
<ul>
	<li>Browser</li>
	<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 that supports
WS-Federation 1.1/1.2 as your IDP. It's recommended to use the Fediz IDP for testing as it
allows for testing 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)
does most of the work including user authentication, claims/role data retrieval and creating
the SAML token. The IDP WAR translates the response to an HTML response allowing a browser
to process it.</li>
	<li>Relying Party (RP)<br/>
The RP is a web application that needs to 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 for authentication. The browser
sends the response from the IDP to the RP after successful authentication. The RP validates
the response and creates the container security context.</li>
</ul>


<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 multiple web applications needing security.</p>

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

<p>The installation and configuration of the IDP is documented <a href="/confluence/display/CXF/Fediz+IDP"
title="Fediz IDP">here</a></p>

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

<p>The Fediz plugin needs to be deployed into the Relying Party (RP) container. The
security mechanism is not specified by JEE. Even though it is very similar in each servlet
container there are some differences which require a dedicated Fediz plugin for each servlet
container implementation. Most of the configuration goes into a Servlet container independent
configuration file which is described <a href="/confluence/display/CXF/Fediz+Configuration"
title="Fediz Configuration">here</a></p>

<p>The following lists shows the supported containers and the location of the installation
and configuration page.</p>
<ul>
	<li><a href="/confluence/display/CXF/Fediz+Tomcat" title="Fediz Tomcat">Tomcat
7 </a></li>
	<li><a href="/confluence/display/CXF/Fediz+Jetty" title="Fediz Jetty">Jetty 7/8
(1.1 SNAPSHOT)</a></li>
	<li><a href="/confluence/display/CXF/Fediz+Spring" title="Fediz Spring">Spring
Security 3.1 (1.1 SNAPSHOT)</a></li>
	<li><a href="/confluence/display/CXF/Fediz+CXF" title="Fediz CXF">CXF (1.1 SNAPSHOT)
</a></li>
</ul>



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

<p>The examples directory contains two sample relying party applications.  They are
independent of each other, so it is not necessary to deploy both at once.</p>

<p>Each sample is described in a <tt>README.txt</tt> file located in the
base directory of each sample.</p>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Sample </th>
<th class='confluenceTh'> Description </th>
</tr>
<tr>
<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>
</tr>
<tr>
<td class='confluenceTd'> <b>wsclientWebapp</b> </td>
<td class='confluenceTd'> a protected web application that calls a web service that
uses the Fediz STS to validate credentials. Here, the same STS is used for token issuance
(indirectly, by the web application through use of the Fediz IDP) and validation.  The FederationServlet
illustrates how to securely call a web service. </td>
</tr>
</tbody></table>
</div>


<p><a href="#Fediz-building">building</a></p>
<h2><a name="Fediz-Building"></a>Building</h2>

<p>Check out the code from here:</p>
<ul>
	<li>svn<br class="atl-forced-newline" />
svn co <a href="https://svn.apache.org/repos/asf/cxf/fediz/trunk" class="external-link"
rel="nofollow">https://svn.apache.org/repos/asf/cxf/fediz/trunk</a></li>
	<li>git<br/>
git clone -v git://git.apache.org/cxf-fediz.git</li>
</ul>


<p>Then follow the <a href="http://svn.apache.org/viewvc/cxf/fediz/trunk/BUILDING.txt?view=markup"
class="external-link" rel="nofollow">BUILDING.txt</a> file in the Fediz download
for full build instructions.</p>

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

<p>See <a href="http://cxf.apache.org/setting-up-eclipse.html" 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>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;" class="grey">
                        <a href="https://cwiki.apache.org/confluence/users/removespacenotification.action?spaceKey=CXF">Stop
watching space</a>
            <span style="padding: 0px 5px;">|</span>
                <a href="https://cwiki.apache.org/confluence/users/editmyemailsettings.action">Change
email notification preferences</a>
</div>
        <a href="https://cwiki.apache.org/confluence/display/CXF/Fediz">View Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=27845832&revisedVersion=35&originalVersion=34">View
Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/CXF/Fediz?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message