Java Authentification et Autorisation Service Najla Farah UJF/ISTG/RICM3 Année Universitaire 2001-2002.

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Module 5 : Implémentation de l'impression
Analyse formelle du modèle de confiance d’une PKI
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
La Gestion de la Configuration
Université Nancy 2 - CRI Propositions de mécanisme de SSO dans un environnement d’applications web.
La machine virtuelle virtuelle utopie et/ou réalité ?
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
D/ Partage et permission NTFS
Implémentation de la gestion de réseau dans Windows 2000 et plus
La protection G. Florin, S. Natkin Novembre 2001.
Page 1 Les applets Jacques Lonchamp. Page 2 Présentation Une applet est téléchargée à partir dune machine distante qui fournit le code. Ce chargement.
Vue d'ensemble Vue d'ensemble de la sécurité dans Windows Server 2003
Vue d'ensemble Implémentation de la sécurité IPSec
Introduction à Java - les paquetages -
la programmation en langage C
La politique de Sécurité
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
Le modèle de sécurité de Java 2
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Configuration de Windows Server 2008 Active Directory
Sécurité Informatique
Chapitre III Héritage (début)
Principes de programmation (suite)
Restriction daccès aux logiciels et aux matériels Problème de licence Nicolas CHABANOLES Matière : SRR Lieu: UFRIMA.
Fabien Sanglard – Yang Cao
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Authentification électronique
CERTIFICAT (SUPPLÉMENT) Ajout aux diapos du cours DRT-3808 (cryptographie)
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Développement dapplications web Authentification, session.
Structures de données IFT-2000
Présentation de Active Directory
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Formation JAVA. Par: SILMI.S
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Module 5 : Gestion de l'accès aux ressources à l'aide de groupes
Module 3 : Création d'un domaine Windows 2000
Module 7 : Accès aux ressources disque
Module 5 : Publication de ressources dans Active Directory
Module 2 : Configuration de l'environnement Windows 2000.
Types de données abstrait et mécanismes d'encapsulation
Java Authentication And Authorization Service API
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Module 1 : Installation de Microsoft Windows XP Professionnel
APPLETS. Applets : généralités Applet : application s'exécutant dans une page HTML Le ByteCode (fichiers.class) est téléchargé depuis un serveur. L'exécution.
Gérer la sécurité des mots de passe et les ressources
Le protocole d’authentification
Citrix ® Presentation Server 4.0 : Administration Module 11 : Activation de l'accès Web aux ressources publiées.
Créer des packages.
Erreurs commises couramment dans le domaine de la sécurité 1.Sensibilisation aux questions de sécurité 2.Suivi des incidents 3.Gestion déficiente des.
1 Extension du modèle de composants CORBA avec accès concurrent à des données partagées Travail réalisé par : Landry BREUIL PFE, ISIMA Encadrants : Gabriel.
Une architecture de sécurité hiérarchique, adaptable et dynamique pour la grille Arnaud Contes.
ISBN Chapitre 10 L'implémentation des sous- programmes.
Struts.
Module 3 : Création d'un domaine Windows 2000
Gérer les utilisateurs
Modules d'authentification enfichables (P.A.M.)
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Héritage Conception par Objet et programmation Java
02/06/2015© Robert Godin. Tous droits réservés.1 5 Interface entre SQL et un programme n SQL incomplet n Défaut d'impédance (impedance mismatch) – modèle.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Sécurité sur le GRID Ahmed Beriache (CGG)
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Chapitre 8 Protection du trafic réseau à l'aide de la sécurité IPSec et de certificats Module S43.
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
Transcription de la présentation:

Java Authentification et Autorisation Service Najla Farah UJF/ISTG/RICM3 Année Universitaire

03/06/2015 JAAS 2 JAAS ? nStandard dans JDK 2.1 nAuthentification: Pour vérifier l ’identité de celui qui exécute le code. nAutorisation: Pour contrôler l ’accès à l ’exécution.

03/06/2015 JAAS 3 JAAS ? QUI? Code Signature

03/06/2015 JAAS 4 Sommaire nSécurité dans JAVA. nSécurité avec JAAS. nExemple sur JAAS.

03/06/2015 JAAS 5 Cycle de vie du code java 1. Chargement du bytecode 2. Vérification du bytecode 3. Exécution du Bytecode 4. Ramasse-miette 0. Référence à un bloc de code

03/06/2015 JAAS 6 Sécurité dans Java. Applic Exécution Compilateur Langage

03/06/2015 JAAS 7 Sécurité du langage. nLa sécurité au niveau du langage: Syntaxe et sémantique strictes. Encapsulation des données. Spécification du langage. Gestion des types. Vérificateur de bytecode.

03/06/2015 JAAS 8 Sécurité du compilateur. nLa sécurité au niveau compilateur: Contrôle d ’accès. Valeur initiale des variables. Accès des registres. Passage des paramètres.

03/06/2015 JAAS 9 Sécurité à l ’exécution. nLa sécurité à l ’exécution: Le chargeur de classes: Exactitude des références. Ramasse miettes: Gestion structurée de la mémoire. Gestionnaire de sécurité: Élaboration des restrictions.

03/06/2015 JAAS 10 Sécurité des applications. nLa sécurité des applications: Apple: Classe chargée par le navigateur Web. Signature des applet.

03/06/2015 JAAS 11 Sécurité JDK 1.1 JVM Gestionnaire de sécurité Code local Je fais ce que je veux! Bac-à sable Coincé! Code distant autres « trusted » Ressources Système

03/06/2015 JAAS 12 Sécurité JDK 1.2 JVM Gestionnaire de sécurité Bac-à sable Code local ou distant (signé ou pas) ClassLoader Règles de sécurité Pas de notion de code à confiance implicite Chaque programme a des permissions différentes Ressources Système

03/06/2015 JAAS 13 Domaines de protection. Domaine système App-1 App-3 App-n App-2 I/O réseau I/O fich. awt Imprimante

03/06/2015 JAAS 14 Permissions. d.class c.class b.class a.class Domaine de Protection A Permissions Domaine de Protection B Permissions Classes en cours d ’exécution Politique de sécurité

03/06/2015 JAAS 15 Contrôleur d ’accès Base de règles pour le site Base de règles par utilisateur et par installation Autorité de certification

03/06/2015 JAAS 16 Signature du code Signature Chiffre Objet d ’origine Résumé

03/06/2015 JAAS 17 Authentification Identités? Java VM Mot de passe Références Clé de chiffrement Mesures biométriques

03/06/2015 JAAS 18 Les concepts(1). nPrincipal: entité à laquelle sont accordées des permissions. n Code Source: identifie un code par URL,une signature. n ProtectionDomain: ensembles de classes provenant d ’une même code source et ayant les mêmes permissions. n SecurityPolicy: un fichier de configuration qui contient: Une entrée « Keystore »:base de données des clés. Une entrée « grant »:spécification des permissions d ’une source de code

03/06/2015 JAAS 19 Les concepts(2) nSecurityClassLoader et ClassLoader: interroge la politique de sécurité pour déterminer les permissions. Charge le code dans JVM en lui associant les permissions. n SecurityManager: implémente le système de sécurité. n AccessController: gère les permissions. nAccessControlContext: représente les permissions qu’une méthode exerce si elle est appelée par un thread.

03/06/2015 JAAS 20 SecurityPolicy JAVA nSpécification des permissions d ’une source de code grant CodeBase « file:c:/java/code/sample.jar »{ permission java.io.FilePermission « c:\\user\\testuser\\-,« read » }; grant CodeBase « », Signedby « bob »{ Permisson java.lang.RuntimePermission « createClassLoader »; Permisson java.net.SocketPermision « * », « connect,accept,resolve »; };

03/06/2015 JAAS 21 Sommaire nSécurité dans JAVA. nSécurité avec JAAS. nExemple sur JAAS.

03/06/2015 JAAS 22 JAAS nJAAS augmente la granularité de la sécurité en se basant sur l’authentification de l ’exécuteur du code. nJAAS augmente les privilèges de cet utilisateur authentifié en lui accordant les autorisations adéquates.

03/06/2015 JAAS 23 Architecture de JAAS Applications API Java 2 - Principal - Access Controller - Access Controller Context - Policy -Protection Domain JAAS - Subject - Login Context - Login Module - Policy

03/06/2015 JAAS 24 Authentification nCréation du login: LoginContext ctx = new LoginContext(« SimpleLogin »); n Authentification du sujet: ctx.login(); n Association du login au sujet si authentification réussie: Subject subj = ctx.getSubject();

03/06/2015 JAAS 25 Autorisation nSi authentification réussie Jaas autorise l ’accès au sujet authentifié : Subject.doAs(subj,new PrivilegedAction()){}

03/06/2015 JAAS 26 SecurityPolicy JAAS nLa politique de sécurité est lié à un rôle d ’un sujet: Grant Principal sample.SamplePrincipale »testuser »{ permission java.io.FilePermission « c:\\user\\testuser\\-, « read » }; CodeBase « file:c:/java/code/sample.jar », Signedby « charles »{ permission java.io.FilePermission « c:\\user\\testuser\\-, « read » };

03/06/2015 JAAS 27 Implémentation de JAVA - Dans chaque objet il y a une SecutityPolice: Policy.getPolicy() - La ClassLoader associe les permissions à chaque classe: Policy.getPolicy().getPermissions(codesource) - Le SecutityManager gère les permissions: cl.getprotectionDomain().getPermissions().implies(req uestedPermission)

03/06/2015 JAAS 28 Implémentation de JAAS - Dans chaque objet il y a une SecutityPolice: javax.security.auth.Policy.getPolicy(); - Avec la méthode doAs: - on associe les permissions au sujet: Policy.getPolicy().getPermissions(subj,codesource); - on associe le sujet à AccessControlContext: javax.security.auth.SubjectDomainCombiner.combine();

03/06/2015 JAAS 29 Applications Login Context API Login Module SPI Smart CardKerberosBiometric Configuration

03/06/2015 JAAS 30 Sommaire nSécurité dans JAVA. nSécurité avec JAAS. nExemple sur JAAS: SmartCard

03/06/2015 JAAS 31 SmartCard nPortable nSécurisée nPersonnelle

03/06/2015 JAAS 32 login module nAvec « login » LoginContext appelle ces méthodes qui sont implémentées dans loginModule: 1-Void initialize(…) 2- booléen login() 3- booléen commit() 4-booléen abort() 5-booléen logout()

03/06/2015 JAAS 33 void initialize(…) nDonne une référence : Sur le sujet qui sera attaché à un principal en cas de succès d ’authentification. Sur CallBackHandler Options sur la configuration.

03/06/2015 JAAS 34 booléen login() nAssure l ’authentification du sujet. nRetourne: true si l ’authentification réussie. False si le module n ’arrive pas à authentifier.

03/06/2015 JAAS 35 booléen commit() nCette méthode est appelée si le sujet a été authentifiée par tous les modules. nElle ajoute le sujet au Principal.

03/06/2015 JAAS 36 booléen abort() nCette méthode est appelée si un module n ’arrive pas à s ’authentifier. nElle nettoie le module et revient à l ’état initial.

03/06/2015 JAAS 37 booléen logout() nElle supprime le sujet du Principal.

03/06/2015 JAAS 38 JAAS configuration nLe fichier de configuration: SimpleLogin{ SimpleLoginModule required debug=true; }; LoginContext ctx = new LoginContext(« SimpleLogin»); ctx.login();

03/06/2015 JAAS 39 AUTHENTIFICATION Login Module Clé publique Signature Nom ? Rnd ? Credential ? Nom Signature Credential

03/06/2015 JAAS 40 CONCLUSION nRègles de sécurité flexibles nContrôle d ’accès précis nSécurité transparente nPermissions, ClassLoader sécurisé, contrôleur d ’accès pour les développeurs nSécurité pour les applications locales. nSécurité en fonction de l ’utilisateur.

03/06/2015 JAAS 41 JAAS nQuestions ?? nRéponses !! Sources : java.sun.com/security Gilles Gravier