1 / 23

JAAS

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

Télécharger la présentation

JAAS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Contenu • Introduction • JAAS, Vue d’ensemble • Programmation avec JAAS • Login • Code utilisateur • Administration JAAS • Programmation JAAS avancée • Déroulement d’un Login • Conclusion

  3. 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

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

  5. Architecture de JAAS

  6. Code JAAS basic

  7. 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.

  8. Code utilisateur

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

  10. Configuration JAAS II

  11. 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.

  12. Fichier de Police JAAS

  13. Fichier de Police Standard

  14. 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

  15. 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

  16. CallbackHandler

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

  18. Principal

  19. Déroulement d’un Login I

  20. Déroulement d’un Login II

  21. Déroulement d’un Login III

  22. 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

  23. Questions?

More Related