Microsoft PowerPoint version - Diuf

publicité
JAAS
Java Authentication And Authorization Service API
Master Seminar
Advanced Software Engineering Topics
Matthias Buchs
Contenu



Introduction
JAAS, Vue d’ensemble
Programmation avec JAAS






Login
Code utilisateur
Administration JAAS
Programmation JAAS avancée
Déroulement d’un Login
Conclusion
Introduction

Java « standard » protège l’utilisateur du monde:




Sandbox nous protège des programmes méchants
Signatures assurent l’intégrité des données
Cryptage assure la confidentialité
JAAS protège le monde de l’utilisateur:


Donne des permissions à un utilisateur authentifié
Utilise des mécanismes de sécurité déjà existants:




NIS (Network Information Service)
WinNT, Solaris
LDAP
Kerberos
JAAS, Vue d’ensemble

Fonctionnement de JAAS:




Créer un contexte login
Appeler la méthode login() sur cet objet
Exécuter doAs() avec le code d’utilisateur
Appeler la méthode logout()
Architecture de JAAS
Code JAAS basic
Programmation avec JAAS

LoginContext



Contexte pour authentifier un utilisateur
Configuration du login dans un fichier
Subject



Représente un utilisateur authentifié
Encapsule un tableau de Principals
Un Principal représente une propriété d’un
utilisateur: No AVS, Nom WinNT ou Solaris etc.
Code utilisateur
Configuration JAAS I

Configuration des modules login




Un module login fait effectivement
l’authentification
Un module ajoute un ou plusieurs
Principal au Subject.
Noms des classes dans un fichier de
configuration, pas dans le code
classname control-flag [optional parameters];
Configuration JAAS II
Configuration JAAS III

Login control flags:




required Ce module est toujours appelé et le test doit
toujours être passé.
sufficient Si l'utilisateur passe le test
d'authentification de ce module, aucun autre
module est appelé à part les required.
requisite Si l'utilisateur passe le test
d'authentification de ce module, d'autres modules
sont aussi appelés mais ils peuvent échouer.
obtional Le test peut échouer.
Fichier de Police JAAS
Fichier de Police Standard
Préparation pour l’exécution





Séparer le code en deux parties
Créer le fichier de configuration JAAS
Créer le fichier de police JAAS
Créer le fichier de police standard
java -classpath ".;.\classes" \
-Djava.security.manager \
-Djava.security.policy=java.policy \
-Djava.security.auth.policy=jaas.policy \
-Djava.security.auth.login.config=JaasDemo.config \
jaasdemo.jaasgui.GUIClient
Programmation JAAS avancée

CallbackHandler




Obtenir des information de l’utilisateur
Passé en paramètre au contexte login
Traite des objets Callback
Callback

Objet pour passer des données (mot de
passe, nom d’utilisateur…) de l’utilisateur
vers le module login
CallbackHandler
Ecrire un module login



Un module login implémente le système
d’authentification
Pour changer ou adapter ce système il suffit
de programmer une classe qui implémente
l’interface LoginModule.
Méthodes à implémenter:





public
public
public
public
public
void initialize()
boolean login()
boolean commit()
boolean abort()
boolean logout()
Principal
Déroulement d’un Login I
Déroulement d’un Login II
Déroulement d’un Login III
Conclusion






Authentification
Autorisation à la base d’une identité
Configuration souple
Séparation des algorithmes d’authentification
de la couche application
Facilite la vie d’un programmeur
Complique un peu celle d’un administrateur
Questions?
Téléchargement