FLASH INFORMATIQUE FI



Un outil pour authentifier les personnes externes




Claude LECOMMANDEUR


Petit lexique bien utile

Numéro SCIPER : numéro qui est attribué à chaque personne en contact avec l’EPFL. Ce numéro à 6 chiffres est unique et vous suit tout le temps de vos relations avec l’EPFL. Pour les heureux détenteurs d’une carte CAMIPRO, le numéro Sciper est identique au numéro CAMIPRO écrit sur la carte.
LDAP : système d’annuaire standard. Le serveur LDAP de l’EPFL contient les données de base sur les unités et les personnes. Ces données sont le nom, le prénom, l’unité, le bureau, le numéro de téléphone, etc. L’interface Web (aussi connue sous le nom de csoldap) permet d’accéder de manière aisée à la partie publique de ces informations. De plus, l’annuaire LDAP contient les mots de passe Gaspar et peut être utilisé par les applications pour authentifier les personnes.
GASPAR : c’est le coffre-fort qui gère les données d’authentification des personnes, c’est-à-dire les noms d’utilisateurs et les mots de passe.
Tequila : interface d’authentification pour le Web. Les applications Web sécurisées peuvent utiliser ses services pour se protéger des utilisations non autorisées.
Accred : outil de gestion des personnes dans les unités. C’est cette application qui fait foi pour savoir qui travaille dans une unité et quels sont les droits et les rôles de cette personne dans cette unité. Chaque application nécessitant des droits d’accès particuliers peut s’appuyer sur Accred. Sa gestion est décentralisée et gérée par les accréditeurs.

Les outils d’authentification à l’EPFL sont riches et variés mais ne permettent pas pour l’instant de gérer correctement les personnes externes. En effet, pour être connu de Gaspar, Tequila ou LDAP, il faut être accrédité dans une entité (unité EPFL ou EHE - Entité Hôte de l’EPFL). Ceci pose des problèmes aux applications sécurisées qui veulent donner à des personnes externes un accès à leurs prestations.
Un nouvel outil vient d’être mis en place qui permet de résoudre élégamment ce problème. Cet outil permet à toute personne disposant d’une adresse e-mail de se créer un compte à l’EPFL, ainsi qu’à tout utilisateur de l’EPFL de créer des comptes pour des personnes externes. Comme vous le constatez, le premier point est très souple et il convient de prendre certaines précautions pour que cette souplesse n’induise pas de problème de sécurité.
Qu’est-ce qu’un compte ? C’est un couple nom d’utilisateur / mot de passe qui va permettre de s’authentifier auprès des services de l’EPFL. Ces services seront ensuite libres d’attribuer des droits aux utilisateurs externes en fonction de leur politique de contrôle d’accès.
Actuellement l’authentification se fait par l’intermédiaire de Tequila, Gaspar ou directement à travers l’annuaire LDAP. L’intégration de ces nouveaux utilisateurs doit donc se faire dans ces trois outils de façon transparente, mais sans induire en erreur les applications sécurisées en leur faisant prendre des vessies externes pour des lanternes internes.
L’accès à l’application se fait avec l’URL : http://guests.epfl.ch/, qui se présente sous la forme la plus simple. Trois possibilités s’offrent à vous : si vous êtes membre de l’EPFL, vous pouvez vous authentifier (entrée login dans le menu de gauche) ou directement demander d’ajouter un compte pour une personne externe que vous parrainez en cliquant sur created. Sinon (vous n’êtes pas membre de l’EPFL), vous pouvez aussi vous authentifier si vous avez déjà un compte, ou demander la création d’un compte en cliquant sur themselves. Les données demandées pour la création d’un compte sont les suivantes :

JPEG - 5 ko
fig. 1
Création d’un compte

Comme indiqué, tous les champs sont obligatoires, l’adresse e-mail et le mot de passe sont répétés afin d’éviter les éventuelles erreurs de frappe.
L’adresse e-mail sera utilisée comme nom d’utilisateur (username) pour Gaspar, Tequila, et autres applications basées sur LDAP.
Les comptes externes sont ajoutés dans l’annuaire LDAP dans une arborescence séparée : ‘o=epfl-guests,c=ch’. Je rappelle que le serveur LDAP actuel gère les arborescences :

        -o=epfl,c=ch                        # EPFL.
        -o=ehe,c=ch                        # Entités hôtes.
        -o=co-epfl,c=ch                # Commissions EPFL.

Une quatrième arborescence est donc ajoutée. Les applications utilisant directement LDAP pour leur identification sont libres et donc responsables du rajout de la nouvelle arborescence dans leur listes d’utilisateurs visibles.
Les attributs LDAP de ces personnes externes sont les standards cn, sn et gn pour les noms et prénoms. Le dn contient un numéro de code commençant par la lettre G. Voici un exemple de compte en format LDIF :

dn: cn=G00022, o=epfl-guests, c=CH
cn: Bob Razovski
sn: Razovski
givenName: Bob
ou: EPFL Guests
ou: epfl-guests
o: Monster Inc
organizationalStatus: Guest
userClass: Guest
uniqueIdentifier: G00022
mail: bobrazovski@hotmail.com
uid: bobrazovski@hotmail.com
objectClass: person
objectClass: organizationalPerson
objectClass: EPFLorganizationalPerson
objectClass: inetOrgPerson

Vous pouvez voir que les champs organizationalStatus et userClass ont la valeur Guest. Le champ uniqueIdentifier (qui est utilisé pour mettre le numéro Sciper pour les personnes de l’EPFL), contient le numéro unique commençant par G utilisé dans le dn. Passons maintenant à Tequila. Par défaut, le serveur Tequila ne connaît pas les utilisateurs externes. Il est nécessaire que l’application cliente donne explicitement l’autorisation d’authentifier ces utilisateurs externes. Si vous utilisez le module Perl ou le module Apache, vous devez mettre à jour votre version, et installer la version 0.6-1 au minimum (voir http://tequila.epfl.ch/ pour l’installation).
Pour le module Perl, la nouvelle fonction allows permet de lever des contraintes qui sont imposées par défaut par le serveur. Dans notre cas, la contrainte porte sur un attribut nommé categorie. Cet attribut correspond dans le cas du connecteur LDAP au champs o. Voici un petit exemple d’appel à allows pour autoriser les utilisateurs externes :

#!/usr/bin/perl
#
use strict;
use Tequila::Client;

my $tequila = new Tequila::Client ();
$tequila->setservice (‘Mon application');
$tequila->allows  (‘categorie=epfl-guests');
$tequila->request ("unit", "where", "group");

$tequila->authenticate ();

Pour le module Apache, une nouvelle directive est disponible, TequilaAllows. Voici un exemple d’utilisation de cette directive :

<IfModule mod_tequila.c>
TequilaLogLevel    2
TequilaLog    /etc/httpd/logs/tequila.log
TequilaServer   tequila.epfl.ch
TequilaSessionDir  /var/www/Tequila/Sessions
TequilaSessionMax   3600
TequilaAllows    categorie=epfl-guests

<Location /restricted/>
 TequilaRewrite /var/www/html/
 TequilaAllowIf unit=DIT-DEV
</Location>
</IfModule>

Si vous faites un appel direct en construisant vous-même l’URLAUTH, outre le fait que vous êtes courageux, vous allez devoir mettre à la main la chaîne &allows=categorie%3depfl-guests simple n’est-il pas ?
Gaspar fonctionnant sur le même principe que Tequila, utilisez l’incantation cabalistique du paragraphe précédent.
Pour résumer, si vous n’avez pas besoin d’authentifier d’utilisateurs externes, rien ne va changer, vous n’aurez pas d’intrus qui apparaîtront à l’improviste puisque vous devez spécifier explicitement cet accès au niveau de votre application sécurisée. Si vous devez donner des accès à de tels utilisateurs, votre vie sera grandement simplifiée puisque vous pourrez les authentifier avec la même interface que les utilisateurs internes.
Merci de votre attention.



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.