Authentic — Administrator Guide

Sommaire

  1. Overview
    1. What is identity federation ?
    2. What are the benefits of identity federation ?
    3. Different federation identity procotocols and standards
      1. SAML
      2. Liberty ID-FF
      3. Shibboleth
      4. WS-Federation
      5. Liberty ID-WSF
  2. How to get and install Authentic
    1. Installation under Debian GNU/Linux or Ubuntu
      1. Package Installation
      2. Apache Configuration
    2. Installation with another Linux distribution
    3. Installation under Windows
  3. Basic Authentic configuration
    1. Administrator creation
    2. Basic configuration of the Identity Provider
      1. Public and private keys creation
      2. Identity Provider configuration
      3. Saving the metadata file
  4. Service Provider installation
    1. Service Provider Example: Candle
      1. Authentic-like installation
      2. Public and private keys creation
      3. Service Provider creation
      4. Saving the metadata file
    2. Declaring Authentic as Identity Provider on Candle
    3. Declaring Candle as Service Provider on Authentic
    4. Service Provider example: w.c.s.
  5. Authentic use and settings
    1. Creating and modifying users
      1. Adding a user manually
      2. Import identites from a CSV file
      3. Using a LDAP directory
      4. Allow the users to create their identities
      5. Modifying a user datas
    2. Identity parameters
      1. Identity Options
      2. Identity Storage
      3. Passwords
    3. Customisation parameters
      1. Language
      2. Themes
      3. Templates
      4. Email
      5. Texts
      6. Login Screen
    4. Logs
    5. Debug Settings
      1. Debug Options
      2. Debug Panel
      3. Declaring a Authentic bug
  6. Advanced Settings
    1. Theme customisation
    2. Template Customisation
    3. Public pages customisation
      1. Account Management
      2. Registration
      3. Registration Completed
      4. Changing Password
      5. Login
      6. Lost Password
      7. Lost Password Question
      8. Lost Password (mailed)
      9. Updating Personal Information
  7. Licenses

Overview

Authentic is an identity management solution (an Identity Provider) designed for identity federation and Single Sign-On in conformity with Liberty Alliance norms and standards (ID-FF 1.2 and ID-WSF). It uses the Lasso library which is certified by the Liberty Alliance consortium.

Lasso and Authentic are released under the terms of the GNU General Public License.

What is identity federation ?

Identity federation is the combination of technological and business needs to enable exchanges between different networks and domains in a secure and reliable manner. The main purpose of federation is to share identity information across heterogeneous systems and identity platforms.

An identity federation based system enables the users connexion with a singthe username and password (or any other authentication mean) instead of having one for each service. This username and this password are typed only once at the time of connection to the first service. The user is then automatically authenticated on all the services sharing the federated identity.

We can compare a federated identity with a passport used to prove your identity and to allow you to travel from one country to the other.

What are the benefits of identity federation ?

There can be a lot of advantages:

Different federation identity procotocols and standards

There are a lot of them, often linked with each other. SAML (Security Assertion Markup Language) is for example the common base of ID-FF (Liberty Alliance Identity Federation Framework) and of Shibboleth. In addition a new layer came on top of the pile of existing standards: the "identity services". They are network distributed services which work with a user controlled identity. This controlled identity services defines which specific information (or attributes) can be used by those services to bring a customized and adapted answer. This allows an increased customisation of the services, intelligent transactions based on identity information.

SAML

The Security Assertion Markup Language designed by OASIS was the first standard allowing the exchange of protected assertion. Most of the big companies offering access management solutions took part in its development and it was explicitly conceived for the business-to-business relations.

SAML 1.1 undoubtedly proposes less superfluous functionalities than other standards. It is a clean, simple and concise protocol. However this concision which makes it relatively easy to implement is a handicap when it comes to using SAML within another environment, business-to-consumer or business-to-employee for example. SAML 1.1 lack some functionalities concerning the confidentiality, the safety and mobile clients support. The release of SAML 2.0 should largely cure it.

SAML 2.0 is a form of convergence between SAML 1.1, Liberty ID-FF 1.2 and Shibboleth. The OASIS will was to take the best in each of these protocols and to include it in a single and coherent framework.

Liberty ID-FF

Liberty Identity Federation Framework (ID-FF 1.2 and its predecessor ID-FF 1.1) was worked out by the Liberty Alliance consortium, founded mid 2001 by Sun, and joined by several hundreds of companies (France Telecom, Vodafone, VeriSign, Mastercard, etc).

ID-FF is based on SAML and allows more complex deployment scenarios. It introduces mainly:

Designed for companies, ID-FF allows to couple the requirements for a strong authentication with the respect of the users private life, this is why the ADAƉ very strongly encourages its use within the French administrations.

Shibboleth

Like ID-FF, Shibboleth was based on SAML. The current version is now compliant with SAML 2.0. Shibboleth is an Internet2 project. Internet2 is a consortium leaded by american universities working in partnership with industry and the government. It is an open source implementation (Apache licence) authorising the inter-institutional sharing of web resources subjected to an access control.

Shibboleth provides a standardized gateway between the existing authentication on campuses and resources suppliers of all kind. It includes metadata exchange and privacy rules allowing agreements between small groups of partners. It is mainly used in higher education field.

WS-Federation

Microsoft, IBM, and VeriSign work on a set of specifications (called "WS-Security roadmap" or "WS-*") for their next generation platform of Web services.

WS-Federation is one of these specifications, it defines a model for the federation and the functions related to the identity.

WS-federation is designed for companies, the business-to-business and business-to-employee relations. The use of privacy is optional there and it misses the multi-client support, which makes it not very suitable with the business-to-consumer envorionment at the moment.

Because it is relatively recent WS-Federation was not tested and deployed as much as other protocols, it is thus advisable to use it with caution.

Liberty ID-WSF

the Identity-based Web Services Framework (ID-WSF) of Liberty Alliance is on top of the pile of the federation protocols. The specificity of ID-WSF is the identity service discovery which allows attribute sharing under the user control.

ID-WSF gathers the following elements:

ID-WSF is well-suited for business-to-business and business-to-consumer deployments where it is crucial to share attribute information in a privacy-oriented manner. Relying parties in the transaction will be able to search and discover identity information from distributed identity services that the end-user has registered. Polices related to attribute release can be defined ahead of time or on the fly via an interaction service that can communicate with the end user to obtain permissions.

How to get and install Authentic

Installation under Debian GNU/Linux or Ubuntu

To work correctly Authentic relies on:

Package Installation

Authentic is not yet an official package of these distributions, depending on the version you use, you will need to add one of the following lines to your /etc/apt/sources.list file:

Debian

Ubuntu

Sarge

n/a

deb http://deb.entrouvert.org/ sarge main

Etch

Edgy

deb http://deb.entrouvert.org/ etch-experimental main

As root type:

apt-get update
apt-get install authentic

All the required packages are installed.

If you don't want to modify your sources.list file, you can manually dowload and install the required packages with the dpkg -i command:

Apache Configuration

You need then to configure Apache to have a Authentic virtual host. The following example file is called authentic and is installed. It works (replacing www.example.com by the domain Name you've chosen for Authentic, we'll use authentic.example.com) for Apache and SCGI. You can find it in /etc/apache2/sites-available:

<VirtualHost *>
  ServerName authentic.example.com
  include /usr/share/authentic/apache2.conf
  CustomLog /var/log/apache2/authentic-access.log combined
  ErrorLog /var/log/apache2/authentic-error.log
</VirtualHost>

To activate Authentic site you need to make a link toward this file from the /etc/apache2/sites-available/ directory:

a2ensite authentic

You have to make sure Apache is configured to support SSL as well: check you have the following line in /etc/apache2/ports.conf:

Listen 443

Add it if you don't find it. Add then SSL support in Apache:

a2enmod ssl

Next it is necessary for SCGI to be enabled:

a2enmod scgi

You can then reload Apache (still as root):

/etc/init.d/apache2 reload

If the hostname you chose is not served by your DNS, don't forget to add en entry to your /etc/hosts file.

Authentic works, the administration interface is reachable: http://authentic.example.com/admin.

Installation with another Linux distribution

We suppose Apache, SCGI (which gather a Python module and an Apache module which communicate together) or mod_python are already installed. You need then to download and install the following sources:

To install Authentic, uncompress the sources you have downloaded and launch the setup.py script:

tar xzf authentic-VERSION.tar.gz
cd authentic-VERSION
python setup.py install

You then need to configure Apache correctly.

To launch Authentic you can type as root (or any non-privileged user with read/write access to /var/lib/authentic/) in a terminal:

authenticctl.py start

Note that for security reasons, it is better to have Authentic launched by a dedicated user, this user must have writing right on /var/lib/authentic.

Once Authentic is working, the administration interface is: http://authentic.example.com/admin.

Installation under Windows

We did not proceed any installation of Authentic under Windows so far. But as all the required components works with this OS, the installation is possible and we may describe it soon. Don't hesitate to tell us about your attempts.

Basic Authentic configuration

Administrator creation

We consider you are the Authentic administrator and we are going to help you create your account.

At first, you have to go on the administration interface: http://authentic.example.com/admin/.

Click on "Identity Management", then on the "add identity" link.

Fill the following fields:

the account is created you can now connect as administrator on the identification page.

Basic configuration of the Identity Provider

Public and private keys creation

If you don't hold pem format keys, you need to create them. To create a couple public key/private key with OpenSSL, use the following commands:

Create the private key in a file named name-of-the-private-key.pem:

openssl genrsa -out name-of-the-private-key.pem 2048

Extract the public key from the private key in a file named name-of-the-public-key.pem:

openssl rsa -in name-of-the-private-key.pem -pubout \
    -out name-of-the-public-key.pem

Identity Provider configuration

The first two fields are automatically filled, don't play with them unless you know what you are doing.

Fields:

Saving the metadata file

In this Authentic administration interface you can save the metadata file. this is usefull when it comes to configure a Service Provider. Act as follows:

Service Provider installation

Service Provider Example: Candle

Candle is a Liberty Alliance Service Provider specifically designed to work with Authentic. You may prefer to install your own Service Provider, it may work without any problem if it is compliant with Liberty Alliance. Candle has the advantage of being developped by the Authentic team (the user interface is very similar, beware of confusion) and to be fully operationnal.

Authentic-like installation

To install Candle under Debian Sarge, just type as root:

echo 'deb http://deb.entrouvert.org/ sarge-experimental' \
  >> /etc/apt/sources.list

This command add the repository which contains all the required packages in your sources.list file.

Still as root type:

apt-get update
apt-get install candle

All the required packages are installed.

Concerning other distributions, download the sources on this site http://lasso.entrouvert.org/links and follow exactly the same steps as for the Authentic installation (Installation with another Linux distribution).

Once the software is installed, the Candle administration interface is available http://candle.example.com/admin.

Public and private keys creation

If you don't have pem format keys, you need to create them. To create a couple public key/private key with OpenSSL, use the following commands:

Create the private key in a file named name-of-the-private-key.pem:

openssl genrsa -out name-of-the-private-key.pem 2048

Extract the public key from the private key in a file named name-of-the-public-key.pem:

openssl rsa -in name-of-the-private-key.pem -pubout \
    -out name-of-the-public-key.pem

Service Provider creation

Go on the Candle administration interface http://candle.example.com/admin. Click on the "Settings" tab then on the "Service Provider" link.

the first two fields are automatically filled don't play with them unless you know what you are doing.

Fields:

Saving the metadata file

In the Candle administration interface you can save the metadata file. This is usefull when it comes to declare Candle as Service Provider on Authentic. Proceed as follow:

Declaring Authentic as Identity Provider on Candle

On Candle administration interface, click on the "Settings" tab, then on the "Identity Providers" link . Click again on "New".

Fill the following fields:

Declaring Candle as Service Provider on Authentic

You need to declare Candle as Service Provider linked to the Identity Provider Authentic. In order to do so, go on the Authentic administration interface:

You need to fill the following fields:

Service Provider example: w.c.s.

w.c.s. is a web application which allows to design and set up online forms. It gives a user the ability to create web forms easily without requiring any other skill than familiarity with web surfing. You can install it exactly the same way you installed Candle, the w.c.s. documentation can be helpful http://wcs.labs.libre-entreprise.org/doc/fr/

Authentic use and settings

Creating and modifying users

You have four different ways of adding new users:

Clicking on "Identity Management" you see the users list.

In front of each user name, take place four icons allowing the following actions on the user account: see, modify, remove, see the logs.

Adding a user manually

To create users one by one, click on "Identity Management" then on the "Add identity" link.

Fill the following fields:

Import identites from a CSV file

Instead of creating many users one by one, you can generate them automatically thanks to a CSV file formatted as follows:

Username;Password;Name;Email

Click on "Identity Management" then on the "Import identities from CSV file" link. Click on the "Choose File" button and select the CSV file you have prepared.

Using a LDAP directory

You can use the user base of your LDAP (or LDAPs) directory as a data source: All you LDAP users will have their identity on Authentic. The user must have a direct acces to the LDAP directory. Once the LDAP directory declaration is done, one of the users has to be set as the administrator (using Authentic interface), or all the users will be able to access the administration interface.

Click on "Settings", then on the "Identity Storage" link, select LDAP directory in the list, clik on the submit button.

Fill the diferent LDAP parameters:

Please be aware the user connecting through LDAP must be allowed to "bind" on the directory with his/her username and password. Also, the user selected to become administrator must be allowed to list LDAP objects.

Allow the users to create their identities

Instead of having the administror being the only one in charge of identity creation, you can select an option allowing anybody to create its own account from the login page. When this option is selected, a new link stands on the login page. This link allows anybody to reach an identity creation form similar to the one used by the administrator.

To activate this option, click on "Settings", then on the "Identity Options" link. In the list "Identity Creation", choose "Self-registration" then submit.

Modifying a user datas

To modify a user datas, click on "Settings", then on the second icon in front of his name. You can then change what has to be.

Identity parameters

Some parameters exist about the way identities are created. You can set them on "Settings", under the "Identities" section.

Identity Options

Clicking the "Identity Options" link you can set four elements:

Identity Storage

Following the "Identity Storage" link you can choose two different stockage types:

Passwords

Following the "Passwords" link, you can set the following elements:

Customisation parameters

Some options are available to customise Authentic. They are on the "Settings" tab, under the section "customisation".

Language

Following the "Language" link you can set the interface language.

Themes

Following the "Theme" link, you can select different graphic themes which will change the user interface design. The administration interface always remains the same, it uses the "Default" theme.

You will find more details about themes in the advanced settings chapter, Theme customisation section.

Templates

Following the "Template" link, you access the generic model used to display public pages, and you can modify it. The "Restore default template" button restores the original model. The templates syntax is explained in the advanced settings chapter, Template customisation section.

Email

Following the "Email" link, you can define three different things:

Texts

To go a step further in customisation, you can modify each of these pages:

How to modify these pages is explained in the advanced settings chapter, Public pages customisation section.

Login Screen

Following the "Login Screen" link, you can add to this screen a cancel button. This button allows a redirection towards the Service Provider from which the user came. It happens to be usefull when a user reach the Login screen by mistake.

Logs

The "Logs" link gives access to some informations about the users actions on the server:

the following events are collected

Debug Settings

To simplify debugging, options are available in the "Settings" tab, in the "Debug" section.

Debug Options

Following the "Debug Options" link you can set:

Debug Panel

If the option "Enable debug panel" is selected, a new tab appears in the administration interface, the "Debug" tab. Click on this tab, then on the "Sessions" link.

You get a list of the last sessions with for each of them:

Declaring a Authentic bug

You can declare a bug or a feature you would like to see implemented on http://bugs.entrouvert.org.

Advanced Settings

Advanced Settings allows you to fully customise Authentic public pages, playing with these paramaters, in this order (it matters): themes, templates, public pages.

Theme customisation

The theme rules the general style of public pages. Some themes are available and defines (using Cascading Style Sheets) the basic elements of public pages display. You can define your own theme (with your own banner and logo...) if you are familiar enough with CSS.

A theme provides at least two files: desc.xml and authentic.css. desc.xml is an XML file containing some basic informations about the theme: its name and version, its label, its description and its author. For instance :

 <?xml version="1.0"?>
   <theme name="Fake" version="1.0">
     <label>Fake</label>
     <desc>Fake Theme used to explain</desc>
     <author>Frederic Peters</author>
    </theme>

The style sheet defines the different properties applied to each pages elements. Those two files must be put in the same directory under /usr/share/authentic/themes/. Once the directory and the two files are created the theme becomes available in the administration interface, you can use it. You can as well put an image called icon.jpg, size 30x30, which will illustrate the theme in the selection page.

Template Customisation

If you customisation needs are beyond what can be done using CSS, you should then think about adding in the theme directory a file called template.ezt. The template defines the structure of all the public pages within a particular theme. It means, apart from the themes, it is possible yet to modify the display of all public pages, modifying the template. Templates are simple text files which contain (among others) some variables, written between square brakets. These variables are substituted in the public page by their values. Here are the variables you should know (among others) to modify the template:

you can test a variable is not empty with this syntax: [if-any variable-name]...[end]

Public pages customisation

To go a step further in customisation, you can define for each public page some variations within the selected theme and template. As for the template, you can use some variables written between square brakets.

Account Management

This page is displayed to the user immediatly after his/her identification. The variables available for this page are:

Registration

This page is displayed to the user when he/she creates his/her identity. Only one variable available for this page:

Registration Completed

This page is displayed to the user when he/she has validated his/her registration. No variables available.

Changing Password

This page is displayed to the user when he/she wants to modify his/her password. Only one variable available for this page:

Login

This page is the page on which the users must enter his/her username and password. The variables available for this page:

Lost Password

This page is displayed to the user when he/she tries to retrieve his/her password. The variables available for this page:

Lost Password Question

This page is displayed to the user when he/she tries to retrieve his/her password and he/she has to answer a question to do so. Only one variable available for this page:

Lost Password (mailed)

This page is displayed to the user when he/she tries to retrieve his/her password and it has been sent by email. No variables available.

Updating Personal Information

This page is displayed to the user when he/she updates his/her identity datas. Only one variable available for this page:

Licenses

Authentic, Candle and Lasso are released under the terms of the GNU General Public License.