Java Authentication And Authorization Service API 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 void initialize() public boolean login() public boolean commit() public boolean abort() public 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?