1 JAAS, VUE D’ENSEMBLE 2
1 JAAS, Vue d’ensemble
Cet article est bas´e sur un article online de ”Java World” [3], et sur le chapitre corres-
pondant du livre ”Java Security” [1, chap. 15].
Une application utilisant JAAS fonctionne comme suit:
1. Le programme demande `a l’utilisateur de se logger et obtient un objet login.
En terme de code c’est facile: Il suffit de cr´eer une instance de LoginContext et d’in-
voquer la m´ethode login() sur cet objet.
L’administrateur du syst`eme est responsable pour les fichiers de configuration. Il peut
d´eterminer ce qui se passe quand un utilisateur veut se logger. Cela se fait avec une liste
de modules login. Chaque module peut ˆetre optionnel ou obligatoire. L’administrateur
peut aussi configurer les param`etres de l’authentification. L’utilisateur doit par exemple
ins´erer un mot de passe Windows NT correct.
2. Le programme ex´ecute une m´ethode (doAs() ou doAsPrivileged()) avec l’objet de
login et le code qui doit ˆetre ex´ecut´e au nom de l’utilisateur comme param`etres.
3. Des parties du code de l’utilisateur sont en g´en´eral sensibles pour la s´ecurit´e du syst`eme
(p. ex. lire des fichiers ou ´etablir des connexions r´eseau). Elles ´exigent donc des permis-
sions sp´ecifiques. Celles-ci sont donn´ees `a un utilisateur authentifi´e.
La figure Fig:1 illustre l’architecture d’authentification de JAAS. Le code de la couche
application communique surtout avec LoginContext. C’est ce dernier qui s’occupe du pro-
cessus login. Pour cel`a il utilise un ou plusieurs modules login. Ces modules peuvent faire
leur login utilisant des services existants comme des bases de donn´ees (Rdbms), un server
LDAP (Jndi, Java Naming and Directory Interface), l’environement (nom d’utilisateur, id
du groupe d’utilisateur etc.) du syst`eme d’exploitation (Unix WinNT) ou des p´erif´eriques
comme l’authentification biom´etrique.
Il est important de constater qu’avec JAAS on a deux sortes de fichiers de police. Le
code qui ex´ecute l’authentification `a besoin des permissions, qui peuvent changer d’apr`es le
module login. Le code qui est ex´ecut´e au nom d’un utilisateur aura d’autres permissions en
g´en´erale plus restreintes.
Le programmeur fait deux choses utilisant JAAS: Il doit appeler la m´ethode login() pour
authentifier l’utilisateur et ex´ecuter du code au nom de l’utilisateur. L’administrateur doit
configurer un ensemble de modules login, configurer un ensemble de fichiers de police JAAS
et installer l’environnement du programme correctement.
Dans les prochaines sections nous allons voir comment utiliser et configurer JAAS avec un
exemple simple. Un nom et un mot de passe sont demand´es d’un utilisateur via une fenˆetre.
Si ces donn´ees sont correctes l’utilisateur pourra voir quelques propri´et´es de l’environement
et le contenu du r´epertoir courant. Dans le cas d’echec de l’authentification ces action ne
seront pas autoris´ees.