23
JAAS Java Authentication And Authorization Service API Master Seminar Advanced Software Engineering Topics Matthias Buchs

JAAS

Embed Size (px)

DESCRIPTION

Java Authentication And Authorization Service API. JAAS. 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 - PowerPoint PPT Presentation

Citation preview

Page 1: JAAS

JAAS

Java Authentication And Authorization Service API

Master Seminar

Advanced Software Engineering Topics

Matthias Buchs

Page 2: JAAS

Contenu

Introduction JAAS, Vue d’ensemble Programmation avec JAAS

Login Code utilisateur Administration JAAS Programmation JAAS avancée

Déroulement d’un Login Conclusion

Page 3: JAAS

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

Page 4: JAAS

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()

Page 5: JAAS

Architecture de JAAS

Page 6: JAAS

Code JAAS basic

Page 7: JAAS

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.

Page 8: JAAS

Code utilisateur

Page 9: JAAS

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];

Page 10: JAAS

Configuration JAAS II

Page 11: JAAS

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.

Page 12: JAAS

Fichier de Police JAAS

Page 13: JAAS

Fichier de Police Standard

Page 14: JAAS

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

Page 15: JAAS

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

Page 16: JAAS

CallbackHandler

Page 17: JAAS

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()

Page 18: JAAS

Principal

Page 19: JAAS

Déroulement d’un Login I

Page 20: JAAS

Déroulement d’un Login II

Page 21: JAAS

Déroulement d’un Login III

Page 22: JAAS

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

Page 23: JAAS

Questions?