This documentation explains how configure SAML service in LL::NG, in particular:
SAML2 implementation is based on Lasso. You will need a very recent version of Lasso (>= 2.3.0).
There are packages available here: http://deb.entrouvert.org/.
You will only need to install liblasso3-perl package:
sudo apt-get install liblasso3-perl
RPMs are available at http://repo.cyrus-project.org/centos$releasever-$basearch/RPMS.cyrus-extras/
Then install lasso and lasso-perl packages.
Download the Lasso tarball and compile it on your system.
Be sure that mod_rewrite is installed and that SAML2 rewrite rules are activated in Apache portal configuration:
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^/saml/metadata /metadata.pl RewriteRule ^/saml/.* /index.pl </IfModule>
Go in Manager and click on SAML 2 Service
node.
Your EntityID, often use as metadata URL, by default #PORTAL#/saml/metadata.
<EntityDescriptor entityID="http://auth.example.com/saml/metadata"> ... </EntityDescriptor>
/saml/metadata
suffix you have to change corresponding Apache rewrite rule.
You can define keys for SAML message signature and encryption. If no encryption keys are defined, signature keys are used for signature and encryption.
To define keys, you can:
Load from a file
input)Generate
button)
Private key password
.
SAML can use different NameID formats. The NameID is the main user identifier, carried in SAML messages. You can configure here which field of LL::NG session will be associated to a NameID format.
Customizable NameID formats are:
Other NameID formats are automatically managed:
Each LL::NG authentication module has an authentication level, which can be associated to an SAML authentication context.
Customizable NameID formats are:
<Organization> <OrganizationName xml:lang="en">Example</OrganizationName> <OrganizationDisplayName xml:lang="en">Example</OrganizationDisplayName> <OrganizationURL xml:lang="en">http://www.example.com</OrganizationURL> </Organization>
<SPSSODescriptor> ... </SPSSODescriptor>
For each binding you can set:
Available bindings are:
For each binding you can set:
Available bindings are:
The only authorized binding is SOAP. This should be set as Default.
<IDPSSODescriptor> ... </IDPSSODescriptor>
For each binding you can set:
Available bindings are:
For each binding you can set:
Available bindings are:
The only authorized binding is SOAP. This should be set as Default.
<AttributeAuthorityDescriptor> ... </AttributeAuthorityDescriptor>
This is the only service to configure, and it accept only the SOAP binding.
Response Location should be empty, as SOAP responses are directly returned (synchronous binding).
These parameters are not mandatory to run SAML service, but can help to customize it:
idp
, for example: lemonldapidp
.By default, the session storage module is used to store SAML temporary data (as relay-states and pending SAML requests).
This is recommended to improve performances. Indeed, it may be necessary to browse all SAML sessions to retrieve some data : so, dissociate SAML data from SSO sessions prevents from browsing all SSO sessions.
This is mandatory if session storage module is not compatible with the sessions restrictions feature - as Memcached for example.
The common domain is used by SAML SP to find an Identity Provider for the user, and by SAML IDP to register itself in user's IDP list.
Configuration parameters are: