This is the fifth in a series of posts on the new features available in Apache CXF Fediz 1.2.0. The
previous article described a new container-independent Relying Party (RP) plugin available in Fediz 1.2.0 based on Apache CXF. In this post we will take a look at two new features, support for Single Sign Out and the ability to publish metadata for both RP plugins and the IdP.
1) Single Sign Out support in Fediz
An important new
feature in Fediz 1.2.0 is the ability to perform Single Sign Out both at the RP and IdP. The user can log out at either the RP or IdP by adding "?wa=wsignout1.0" to the relevant URL. Alternatively, two new configuration options are added for the RP:
- logoutURL - The logout URL to trigger federated logout
- logoutRedirectTo - URL landing-page after successful logout.
To see how this works in practice, follow the first
tutorial to set up the hello world demo in Tomcat, and log on via:
- https://localhost:8443/fedizhelloworld/secure/fedservlet
After successful authentication, you will see a basic webpage detailing the User principal, roles, and the underlying SAML Assertion. Now what if you want to log out from the application? From Fediz 1.2.0 it's simple. Navigate to the following URL:
- https://localhost:8443/fedizhelloworld/secure/fedservlet?wa=wsignout1.0
The browser will be redirected to the logout page for the IdP:
Click "Logout" and you see a page confirming that Logout was successful (in both the RP + IdP). To confirm this, navigate again to the application URL, and you will see that you are redirected back to the IdP for authentication. The user can also logout directly at the IdP by navigating to:
- https://localhost:8443/fediz-idp/federation?wa=wsignout1.0
2) Metadata Support in Fediz
It has been
possible since Fediz 1.0.0 to publish the Metadata document associated with a Relying Party using the Tomcat plugin. This Metadata document is built dynamically using the Fediz
configuration values and is published at the standard URL. Here is a screenshot of a request using the "fedizhelloworld" demo:
This document describes the endpoint address of the service, the realm of the service, and the claims (both required and optional). The metadata document can also be signed by specifying a "signingKey" in the Fediz configuration.
So what's new in Fediz 1.2.0? The first thing is that it was only possible previously to publish the metadata document when using the Tomcat plugin. In Fediz 1.2.0, this has been
extended to cover the other plugins, i.e. Jetty, Spring, etc. In addition, the forthcoming Fediz 1.2.1 release adds
support for Metadata to the IdP. The Metadata is available at the same standard URL as for the RP, e.g.:
This signed document describes the URL of the STS, as well as that of the IdP itself, and the claims that are offered by the IdP.