Présentation du cours. Sécurité dans Java EE. Plan (2/2) Plan (1/2) Généralités sur la sécurité

Dimension: px
Commencer à balayer dès la page:

Download "Présentation du cours. Sécurité dans Java EE. Plan (2/2) Plan (1/2) Généralités sur la sécurité"

Transcription

1 Présentation du cours Sécurité dans Java EE Université de Nice - Sophia Antipolis Richard Grin Version /4/13 Ce cours montre comment sécuriser une application Java EE : réserver l accès de pages Web (ou de méthodes d EJB) à certains utilisateurs Toute la sécurité n est pas standardisée dans Java EE ; pour les parties non standardisées, des exemples de configuration sont donnés pour le serveur d application GlassFish R. Grin Sécurité Java EE page 2 Plan (1/2) Généralités sur la sécurité Présentation de la sécurité dans Java EE et fichiers de configuration Rôles et identité des utilisateurs Authentification Protection des pages Web Protéger les méthodes des EJB Code Java pour la sécurité Configuration de GlassFish Un exemple Logs dans GlassFish Gérer les mots de passe Plan (2/2) R. Grin Sécurité Java EE page 3 R. Grin Sécurité Java EE page 4 Généralités sur la sécurité Réserver des parties d une application à certains utilisateurs implique de gérer n l authentification des utilisateurs n la vérification des autorisations R. Grin Sécurité Java EE page 5 R. Grin Sécurité Java EE page 6 1

2 2 Authentification Obtenir l identité des utilisateurs et vérifier qu un utilisateur est bien celui qu il prétend être Le plus souvent, il s agit de demander le nom et le mot de passe de l utilisateur Autorisation Lorsqu un utilisateur est entré dans l application, vérifier qu il a bien le droit n d accéder aux ressources (pages Web, base de données, ) n d accomplir des actions sur ces ressources (par exemple les consulter, les modifier, les supprimer) n de lancer des opérations R. Grin Sécurité Java EE page 7 R. Grin Sécurité Java EE page 8 Transport des informations Protéger les informations qui transitent sur le réseau contre des personnes non autorisés : n empêcher la lecture des données confidentielles n repérer qu une information transmise a été modifiée par une tierce personne avant d arriver à destination Ce support n abordera que l authentification par mot de passe et les autorisations Il n abordera pas, par exemple, l étude des certificats et de la signature des documents Les transparents suivants donnent la terminologie habituelle liée à la sécurité R. Grin Sécurité Java EE page 9 R. Grin Sécurité Java EE page 10 Utilisateur L utilisateur d une application est identifié par des «pièces d identité», credentials en anglais, qui prouvent son identité Le plus souvent la saisie d un nom de login et d un mot de passe prouve l identité d un utilisateur L utilisateur peut correspondre à une personne ou à une (partie d une) application informatique Principal Une fois qu il est authentifié, l utilisateur devient un principal (terme anglais qui signifie mandant, commettant) au nom duquel il effectuera des opérations dans l application Un Principal peut être un utilisateur, un groupe d utilisateurs, ou autre, qui a été défini dans l environnement opérationnel d exécution R. Grin Sécurité Java EE page 11 Richard Grin EJB page 12

3 3 Rôle La politique de sécurité des serveurs d application repose sur la notion de rôle Exemples de rôle : administrateur, organisateur, participant, chef de service Un principal / utilisateur peut avoir un ou plusieurs rôles dans une application Un rôle donne des droits aux utilisateurs qui ont ce rôle La notion de rôle augmente la portabilité de l application puisqu on ne fait aucune prévision sur l existence d utilisateurs particuliers R. Grin Sécurité Java EE page 13 Rôles d un utilisateur C est celui qui déploie l application qui associe ces rôles La manière dont un rôle est associé à un utilisateur n est pas standard et dépend du serveur d applications Tomcat et GlassFish définissent des groupes d utilisateurs et il est possible de les configurer pour qu un groupe corresponde à un rôle (voir section «Configuration GlassFish» plus loin dans ce support) R. Grin Sécurité Java EE page 14 Groupes d utilisateurs Les utilisateurs sont souvent regroupés en groupes qui ont les mêmes types d autorisation, ce qui facilite l attribution de rôles aux utilisateurs (on peut donner en bloc un rôle à tous les membres d un groupe) Par exemple, le groupe des utilisateurs enregistrés, le groupe des visiteurs non enregistrés, le groupe des administrateurs R. Grin Sécurité Java EE page 15 Realm domaine de sécurité Pour authentifier les utilisateurs, les serveurs d application doivent conserver des informations sur ces utilisateurs Un domaine de sécurité (realm), identifié par son nom, définit comment ces informations sont conservées, et comment on les utilise pour l authentification (voir balise <login-config> de web.xml) ; la définition d un realm n est pas standardisée Exemples : domaine défini par un fichier des mots de passe, par des tables relationnelles, par un registre LDAP, par des certificats informatiques R. Grin Sécurité Java EE page 16 Intervenants dans le processus de développement Le développeur écrit l application et indique les rôles nécessaires pour les ressources protégées L administrateur du serveur d application gère les utilisateurs et les groupes d utilisateurs Celui qui déploie l application dans le serveur d application indique la correspondance entre les utilisateurs et groupe d utilisateurs et les rôles définis par l application (le plus souvent en utilisant les fichiers de déploiement) Présentation de la sécurité dans Java EE R. Grin Sécurité Java EE page 17 R. Grin Sécurité Java EE page 18

4 Principe général Écrire du code pour la sécurité est très complexe et il est préférable de s appuyer le plus possible sur les facilités offertes par les serveurs d application Richard Grin EJB page 19 Déclaration ou programmation Java EE permet d implémenter une politique de sécurité de façon déclarative ou par programmation Java Le plus simple est d utiliser les déclarations (annotations Java ou fichiers de déploiement XML) pour indiquer comment les ressources sont protégées Si la façon déclarative ne suffit pas, il est possible de programmer les cas les plus complexes en Java R. Grin Sécurité Java EE page 20 Déclaration Les annotations permettent d écrire les informations sur la politique de sécurité directement dans le code Java des EJB ou des servlets Il n est pas toujours possible d utiliser une annotation ; en ce cas les informations de sécurité sont décrites dans des balises des fichiers de déploiement Toutes les annotations ont leur pendant sous forme de balise XML ; en cas de contradiction, une information dans un fichier de déploiement l emporte sur une annotation R. Grin Sécurité Java EE page 21 Fichiers de déploiement Fichiers standards qui ne dépendent pas du serveur d application : web.xml (module Web), ejb-jar.xml (module EJB), application.xml (module application qui peut regrouper plusieurs modules dans un fichier EAR) Chaque serveur d application peut aussi avoir ses propres fichiers de déploiement pour les informations non standardisées ; pour GlassFish, glassfish-web.xml, glassfish-ejb-jar.xml, glassfish-application-web.xml R. Grin Sécurité Java EE page 22 Types de déclarations Java EE permet de déclarer n les rôles utilisés par l application n la façon d authentifier les utilisateurs n les pages Web protégées et les rôles qui y ont accès n les classes ou méthodes Java protégées et les rôles qui y ont accès Nous allons tout d abord étudier comment définir les rôles puis comment authentifier un utilisateur Nous verrons enfin comment protéger des pages Web, puis comment restreindre l accès à des méthodes Java L attribution de rôles à un utilisateur n est pas standardisée ; elle sera étudiée pour le cas de GlassFish R. Grin Sécurité Java EE page 23 R. Grin Sécurité Java EE page 24 4

5 Déclaration des rôles Définition des rôles Un rôle doit être déclaré avant d être utilisé On peut le faire avec une annotation ou dans un fichier de déploiement XML R. Grin Sécurité Java EE page 25 R. Grin Sécurité Java EE page 26 Annotation pour déclarer des rôles L peut être mise sur les EJB ou les servlets La casse (majuscules minuscules) est significative dans les noms de rôle "membre", "visiteur") public class MonBean {... Balise pour déclarer des rôles Plusieurs balises <security-role> peuvent être mises directement sous la balise racine (web-app, ejb-jar ou application) Exemple : <security-role> <description>administrateur</description> <role-name>admin</role-name> </security-role> <security-role> <role-name>membre</role-name> </security-role> R. Grin Sécurité Java EE page 27 R. Grin Sécurité Java EE page 28 Référence d un rôle Le développeur utilise des noms de rôle dans son code lorsqu il écrit un module Java EE S il réutilise son module dans plusieurs applications, un nom de rôle peut avoir un autre nom dans les autres modules Avec la balise <security-role-ref> il est possible de définir un alias pour un nom de rôle, pour faire correspondre le rôle du module avec un rôle de l environnement d exécution Exemple d alias pour un rôle Le responsable du déploiement indiquera le rôle de l environnement de déploiement (Controleur) associé au rôle indiqué par le développeur d EJB (Admin) : <security-role-ref> <description>... </description> <role-name>admin</role-name> <role-link>controleur</role-link> </security-role-ref> Si l utilisateur a le rôle Controleur, isuserinrole("admin") retourne true R. Grin Sécurité Java EE page 29 Richard Grin Sécurité Java EE page 30 5

6 6 Type d authentification Authentification Si l utilisateur veut accéder à une page Web protégée et qu il n est pas déjà enregistré, le container Web cherche à l authentifier Le plus souvent l utilisateur s authentifie en tapant son login et son mot de passe pour l application dans un formulaire Un certificat peut aussi être utilisé pour l authentification (mode CLIENT-CERT), à la place du login/mot de passe R. Grin Sécurité Java EE page 31 R. Grin Sécurité Java EE page 32 Déclaration du type d authentification Pas d annotation, il faut configurer avec la balise <login-config> sous la balise racine du fichier web.xml 2 sous-balises : n <auth-method> définit le mode d authentification n <realm-name> indique le domaine de sécurité dans lequel les informations pour l authentification seront cherchées ; il peut y en avoir plusieurs dans une application Exemple <login-config> <auth-method>basic</auth-method> <realm-name>candidatures</realm-name> </login-config> R. Grin Sécurité Java EE page 33 R. Grin Sécurité Java EE page 34 Valeurs par défaut Par défaut, le mode d authentification est le mode BASIC : le login et le mot de passe sont demandés à l utilisateur par un formulaire affiché par le navigateur (ils transitent en clair sur le réseau) La valeur par défaut pour <realm-name> dépend du serveur d application Ce type risque de poser des problèmes car le navigateur garde souvent des informations sur l utilisateur qui vient de se connecter ; préférer le mode FORM R. Grin Sécurité Java EE page 35 Autres modes d authentification Plusieurs autres modes d authentification, en plus du mode par défaut BASIC : n FORM : utilisation d un formulaire écrit par le développeur dans une page Web pour obtenir le login et le mot de passe n DIGEST : utilisation d un hachage pour le transport du mot de passe (MD5 par exemple) n CLIENT-CERT : utilisation d un certificat R. Grin Sécurité Java EE page 36

7 7 Exemple <login-config> <auth-method>form</auth-method> <realm-name>candidatures</realm-name> <form-login-config> <form-login-page>/faces/login.xhtml</formlogin-page> <form-error-page>/faces/noaut.xhtml</formerror-page> </form-login-config> </login-config> Mode FORM - pages <form-login-config> ne sert que si <auth-method> a la valeur FORM, pour indiquer la page qui contient le formulaire de login et celle qui est affichée si le login et le mot de passe saisis ne sont pas bons R. Grin Sécurité Java EE page 37 R. Grin Sécurité Java EE page 38 Mode FORM - formulaire de login Si on choisit le mode FORM, le formulaire écrit par le développeur a des contraintes de nom pour n l action exécutée lorsque le formulaire est soumis (j_security_check) n les noms des champs qui contiennent le login (j_username) et le mot de passe (j_password) Ces contraintes vont permettre au container de vérifier le login et le mot de passe suivant le domaine de sécurité choisi par le développeur R. Grin Sécurité Java EE page 39 Exemple de formulaire HTML <form method="post" action="j_security_check"> Login : <input type="text" name="j_username"/> Mot de passe : <input type="password" name="j_password"/> <input type="submit" value="login"/> </form> R. Grin Sécurité Java EE page 40 Exemple de formulaire JSF <form method="post" action="j_security_check"> <h:panelgrid columns="2"> <h:outputlabel for="j_username" value="login" /> <h:input id="j_username" /> <h:outputlabel for="j_password" value="mot de passe" /> <h:inputsecret id="j_password"/> <h:commandbutton id="submit" value="login" /> </h:panelgrid> </form> R. Grin Sécurité Java EE page 41 Exemple de page d erreur <html> <head> <title>echec de l'authentification</title> </head> <body> <p>désolé, vous n'avez pas tapé des bons login et mot de passe. Essayez à nouveau. </p> </body> </html> R. Grin Sécurité Java EE page 42

8 8 Méthode HttpServletRequest.login() La méthode que l on vient de voir est la façon la plus simple de filtrer les accès à une application Elle convient le plus souvent mais elle a des contraintes importantes (les action et propriétés pour enregistrer les login et mots de passe sont imposés) Depuis JSF 2.0, le développeur peut choisir une autre solution plus souple mais plus complexe à programmer Depuis JSF 2.0, il est possible de récupérer le nom et le mot de passe comme on le souhaite et de passer les valeurs à la méthode login(string nom, String mdp) de la classe HttpServletRequest pour s authentifier auprès du container (lance une ServletException si déjà connecté ou mauvais login/mot de passe). R. Grin Sécurité Java EE page 43 R. Grin Sécurité Java EE page 44 Utilisation login formulaire <h:form> Login : <h:inputtext value="#{login.login" required="true" /> <p/> Mot de passe : <h:inputsecret value="#{login.mdp" required="true" /> <p/> <h:commandbutton value="connexion" action="#{login.submit"> <f:ajax execute="@form" render="@form" /> </h:commandbutton> <h:messages globalonly="true" /> </h:form> Remarque sur le code Le code du backing bean de la solution avec la méthode login est un peu complexe ; il tire parti du fait que le container utilise un forward pour faire afficher la page qui contient le formulaire de login Pour avoir l URI de la page que voulait l utilisateur, il faut utiliser l attribut de la requête RequestDispatcher.FORWARD_REQUEST_URI Merci à BalusC (expert JSF) pour l information R. Grin Sécurité Java EE page 45 R. Grin Sécurité Java EE page 46 Utilisation login public class Login { private String login, mdp; private String public void init() { uri = (String) FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get(RequestDispatcher.FORWARD_REQUEST_URI); Utilisation login backing bean public void submit() throws IOException { FacesContext context = FacesContext.getCurrentInstance(); HttpServletRequest request = (HttpServletRequest) context.getexternalcontext().getrequest(); try { request.login(login, mdp); context.redirect(uri); catch (ServletException e) { facescontext.addmessage(...); R. Grin Sécurité Java EE page 47 R. Grin Sécurité Java EE page 48

9 9 Déconnexion L authentification de l utilisateur est valable pour toute la session de travail HTTP Il est possible de faire sortir l utilisateur de la session de travail avec la méthode logout() de la classe HttpServletRequest Cette méthode peut être appelée, par exemple, dans la méthode action d un bouton sur lequel l utilisateur peut cliquer pour se déconnecter Un exemple d utilisation est donné dans la section «Code Java pour la sécurité» de ce support R. Grin Sécurité Java EE page 49 SSL Les login et mot de passe seront passés en clair sur le réseau Il est possible d utiliser SSL pour les protéger ; la façon de le faire dépend du serveur d application et ne sera pas étudié dans ce support Voir aussi la section «Protection des pages Web» R. Grin Sécurité Java EE page 50 Gestion des utilisateurs La gestion des utilisateurs (ajout d un nouvel utilisateur, modification, ) et la conservation des informations sur les utilisateurs dépend du serveur d application La section «Sécurité avec GlassFish» donne un exemple d utilisation du serveur GlassFish Les sections suivantes montrent comment réserver l accès des pages Web et des méthodes Java des EJB ou des servlets aux utilisateurs qui ont un certain rôle Ensuite, il est montré comment configurer GlassFish pour les parties qui dépendent du serveur d application R. Grin Sécurité Java EE page 51 R. Grin Sécurité Java EE page 52 Protection des pages Web Utilité Le plus souvent des pages Web (définies par des URL) ne doivent être accessibles que par certains utilisateurs ou dans certaines circonstances Cette section explique comment restreindre l accès d une partie des pages d une application à certains utilisateurs R. Grin Sécurité Java EE page 53 R. Grin Sécurité Java EE page 54

10 Erreurs HTTP pour la sécurité Lorsqu un utilisateur veut accéder à une page protégée, n erreur HTTP 401, Unauthorized, si l utilisateur ne fournit pas les credentials (le plus souvent le bon mot de passe) n erreur HTTP 403, Forbidden, si l utilisateur a fournit les bons credentials mais n a pas l autorisation d accéder à la page Schéma de protection Le plus simple est d utiliser le système de sécurité offert par les containers de page Web des serveurs d application Il est simple de grouper les pages à protéger dans un ou plusieurs répertoires et de filtrer l accès à ces répertoires Pour les cas plus complexes de filtrage, il est possible de coder le filtrage directement dans le code Java de l application R. Grin Sécurité Java EE page 55 R. Grin Sécurité Java EE page 56 Déclaration des protections La protection est déclarée dans le fichier web.xml par des contraintes de sécurité déclarées sur des ressources (les pages Web désignées par des modèles d URL) Il est aussi possible de déclarer des contraintes de sécurité dans un servlet (si l application en a un) avec l contenue dans une Notions utilisées L application peut définir des contraintes de sécurité (<security-constraint>) Elles restreignent l accès à des ressources (page Web définies par leur URL) aux seuls utilisateurs qui ont un certain rôle (plusieurs rôles peuvent être indiqués) Lorsqu un utilisateur veut accéder à une ressource protégée, il doit être authentifié et il peut accéder à la ressource s il a les rôles requis par la ressource R. Grin Sécurité Java EE page 57 R. Grin Sécurité Java EE page 58 Contraintes de sécurité Les sous balises de <security-constraint> : n <web-resource-collection> indique les URLs des pages (<url-pattern>) et les méthodes HTTP protégées (<http-method>) n <auth-constraint> indique les rôles qui permettent d accéder aux pages n <user-data-constraint> indique comment sont protégées les données échangées entre le client et le serveur (aucune protection par défaut) Exemple <security-constraint> <web-resource-collection> <web-resource-name>r1</web-resource-name> <url-pattern>/liste.xhtml</url-pattern> </web-resource-collection> <auth-constraint> <role-name>employe<role-name> <role-name>drh<role-name> </auth-constraint> </security-constraint> R. Grin Sécurité Java EE page 59 R. Grin Sécurité Java EE page 60 10

11 11 <url-pattern> Les pages protégées sont désignées par la sousbalise <url-pattern> qui donne un chemin qui peut comporter le joker * 3 Formats possibles pour un url-pattern : n commence par / et se termine par /* (toute page située sous le répertoire qui précède «/*», à n importe quelle profondeur n commence avec *. et se termine par un caractère (par exemple *.jsf) n commence par / et ne comporte pas de * R. Grin Sécurité Java EE page 61 Exemple - JSF <security-constraint> <web-resource-collection> <web-resource-name>p1</web-resource-name> <url-pattern>/faces/candids/*</url-pattern> <url-pattern>/candids/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>admin</role-name> <role-name>rsr</role-name> </auth-constraint> </security-constraint> R. Grin Sécurité Java EE page 62 <http-method> L accès est protégé pour toutes les méthodes HTTP si cette balise est omise Exemple <security-constraint> <web-resource-collection> <web-resource-name>r1</web-resource-name> <url-pattern>/liste.xhtml</url-pattern> <http-method>get</http-method> <http-method>post</http-method> </web-resource-collection> <auth-constraint> <role-name>employe<role-name> </auth-constraint> </security-constraint> R. Grin Sécurité Java EE page 63 R. Grin Sécurité Java EE page 64 Lien vers une page protégée C est l URL de la page que l on veut afficher qui est comparé aux patterns des pages protégées Si une page contient un lien vers une page protégée, il faut écrire ce lien avec les composants <h:outputlink>, <h:button> ou <h:link>, ou ajouter une redirection à un un lien avec un composant <h:commandbutton> ou <h:commandlink> Attention, pas de forward interne! Un forward interne au serveur (méthode forward de RequestDispatcher) ne déclenche pas une vérification des contraintes de sécurité puisque l URL n est pas modifié Ce qui signifie qu un <h:commandbutton> ou un <h:commandlink> (sans redirection) vers une page protégée donnera accès à la page, même si l utilisateur n a pas l autorisation d accès à cette page R. Grin Sécurité Java EE page 65 R. Grin Sécurité Java EE page 66

12 12 <auth-constraint> L autorisation sera accordée si l utilisateur a un des rôles indiqués «*» indique que tous les rôles sont acceptés S il y a une balise <auth-constraint> mais aucune sous-balise <role-name>, les pages ne pourront être accédée par aucun utilisateur <user-data-constraint> La balise <user-data-constraint> peut être ajoutée dans une balise <security-constraint> pour indiquer que la connexion avec les pages protégées utilisera le protocole HTTPS Elle contient une balise <transport-garantee> dont la valeur peut être égale à NONE (valeur par défaut), CONFIDENTIAL ou INTEGRAL R. Grin Sécurité Java EE page 67 R. Grin Sécurité Java EE page 68 Valeurs pour <transport-garantee> CONFIDENTIAL : les données transmises ne peuvent être vues par des tiers INTEGRAL : les données transmises ne peuvent être modifiées par des tiers NONE : pas de protection particulière En pratique, les 2 modes CONFIDENTIAL et INTEGRAL sont traités de la même façon par les serveurs d application (utilisation de HTTPS) Exemple <security-constraint> <web-resource-collection> <web-resource-name>r1</web-resource-name> <url-pattern>/faces/restr/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>employe<role-name> </auth-constraint> <user-data-constraint> <transport-guarantee> CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint> R. Grin Sécurité Java EE page 69 R. Grin Sécurité Java EE page 70 Avec les servlets Dans le cas des applications qui n utilisent pas les EJB, on peut utiliser les fichiers de configuration mais il est aussi possible de configurer la sécurité avec l Les transparents suivant donne des exemples @HttpConstraint(rolesAllowed={"r1", "r2")) public class MaServlet extends HttpServlet L URL /monurl sera réservée aux utilisateurs qui ont le rôle «r1» ou le rôle «r2» R. Grin Sécurité Java EE page 71 R. Grin Sécurité Java EE page 72

13 value=@httpconstraint( transportguarantee= ServletSecurity.TransportGuarantee.CONFIDENTIAL), value="trace", transportguarantee= ServletSecurity.TransportGuarantee.NONE, rolesallowed={"r1") ) public class MaServlet extends HttpServlet Protéger les méthodes des EJB R. Grin Sécurité Java EE page 73 R. Grin Sécurité Java EE page 74 Par déclaration Avec une annotation Avec les fichiers de déploiement XML Les fichiers XML l emportent sur les annotations Annote une méthode ou une classe (concerne alors toutes les méthodes de la classe) protégée En paramètre, un seul rôle ou plusieurs rôles de type String entourés d accolades (les utilisateurs ayant un des rôles peuvent utiliser la méthode ou la "role1", "role2" ) R. Grin Sécurité Java EE page 75 R. Grin Sécurité Java EE page 76 Si la classe est protégée, cette annotation permet d exclure une méthode de la protection : tous les utilisateurs seront autorisés à utiliser la méthode annotée Exemple de déclarations (1/2) <ejb-jar> <assembly-descriptor> <security-role> <description>employés chargés des clients </description> <role-name>caissier</role-name> </security-role> <security-role> <description>contrôleur</description> <role-name>controleur</role-name> </security-role> R. Grin Sécurité Java EE page 77 R. Grin Sécurité Java EE page 78 13

14 14 Exemple de déclarations (2/2) <method-permission> <role-name>controleur</role-name> <method> <ejb-name>compte</ejb-name> <method-name>getbalance</method-name> </method> <method> <ejb-name>compte</ejb-name> <method-name>setbalance</method-name> </method> </method-permission> </assembly-descriptor> </ejb-jar> R. Grin Sécurité Java EE page 79 Méthodes non protégées Certaines méthodes sont autorisées à tous (unchecked): <method-permission> <role-name>unchecked</role-name> <method> <ejb-name>compte</ejb-name> <method-name>getnames</method-name> </method> R. Grin Sécurité Java EE page 80 Méthodes non accessibles Des méthodes peuvent ne pas être accessibles pour un déploiement : <exclude-list> <description>méthode m1 de Ejb1 interdite </description> <method> <ejb-name>ejb1</ejb-name> <method-name>m1</method-name> </method> </exclude-list> Peut annoter une méthode d un EJB (si la classe EJB est annotée, toutes les méthodes de la classe sont concernées) Le paramètre est le nom du rôle que l utilisateur prendra pendant qu il exécutera la méthode Exemple R. Grin Sécurité Java EE page 81 R. Grin Sécurité Java EE page 82 Balise run-as Dans un fichier de configuration : <session> <ejb-name>... </ejb-name>... <security-identity> <run-as> <role-name>admin</role-name> </run-as> </security-identity>... </session> use-caller-identity Pour être certain qu on utilisera le principal et pas un rôle donné par une méthode EJB «run-as», on peut indiquer use-caller-identity pour un EJB ; en ce cas, les rôles transmis seront les rôles liés à la vraie identité de l utilisateur (sinon ça serait le rôle donné par «run-as») : <security-identity> <use-caller-identity/> </security-identity> R. Grin Sécurité Java EE page 83 R. Grin Sécurité Java EE page 84

15 15 Sécurité par programmation Code Java pour la sécurité Dans certains cas la déclaration des autorisations dans les fichiers de déploiement ou par des annotations n est pas assez souple Dans ces cas, on peut écrire du code Java qui prend en compte les cas particuliers L exemple suivant montre comment distinguer des utilisateurs qui ont le même rôle dans une application JSF R. Grin Sécurité Java EE page 85 R. Grin Sécurité Java EE page 86 Cas d utilisation Dans une application qui gère des formations, les utilisateurs doivent ouvrir un compte Ce compte leur donne le rôle «etudiant» qui leur permet de s inscrire à des cours et de participer à des forums Cependant ces étudiants ne peuvent voir et modifier que leurs données personnelles, ce qui impose une programmation en Java Les transparents suivants étudient le cas d une application JSF, avec le code qu un backing bean peut contenir On verra ensuite comment obtenir les mêmes informations dans une méthode d un EJB session R. Grin Sécurité Java EE page 87 R. Grin Sécurité Java EE page 88 Dans un backing bean JSF Il est possible de récupérer le nom de l utilisateur avec le code suivant : FacesContext context = FacesContext.getCurrentInstance(); HttpServletRequest request = (HttpServletRequest) context.getexternalcontext().getrequest(); String login = request.getremoteuser(); Classe ExternalContext Cette classe du paquetage javax.faces.context permet d obtenir des informations sur l environnement d exécution ; elle contient en particulier des méthodes utiles pour la sécurité Une instance peut être obtenue par FacesContext.getCurrentInstance().getExternalContext() R. Grin Sécurité Java EE page 89 R. Grin Sécurité Java EE page 90

16 Méthodes de ExternalContext boolean isuserinrole(string nomrole) retourne true si celui qui appelle la méthode remplit bien le rôle passé en paramètre java.security.principal getuserprincipal() permet d avoir le principal de celui qui appelle la méthode, ce qui permet de distinguer des utilisateurs qui ont le même rôle Object getrequest() récupère la requête en cours (caster en javax.servlet.http.httpservletrequest) Exemple avec JSF... String login = request.getremoteuser(); if (<condition sur login>) { FacesContext.getCurrentInstance().getExternalContext().redirect(autrePage);... R. Grin Sécurité Java EE page 91 R. Grin Sécurité Java EE page 92 Sortir d une application JSF Après ce code (qu on peut mettre, par exemple, dans l action d un bouton), l utilisateur devra à nouveau s authentifier pour les fonctionnalités qui nécessite une authentification : try { ((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).logout(); catch (ServletException ex) { R. Grin Sécurité Java EE page 93 Dans un EJB Pour filtrer les accès aux méthodes des EJB dans le cas où la granularité de protection offerte par les rôles ne suffit pas, il est possible d utiliser les méthodes de l interface javax.ejb.ejbcontext Cette interface est implémentée par la classe javax.ejb.sessioncontext On peut obtenir une instance de SessionContext en l injectant dans un EJB session private SessionContext contexte; R. Grin Sécurité Java EE page 94 Méthodes de EJBContext EJBContext contient des méthodes liées à l authentification des utilisateurs : n Principal getcallerprincipal() n boolean iscallerinrole(string role) Elles jouent le même rôle que les méthodes de l interface ExternalContext (avec User à la place de Caller) Exemple // Méthode interdite à certains utilisateurs String login = contexte.getcallerprincipal().getname(); if (condition sur login) { // l utilisateur n a pas le droit // de faire exécuter ce traitement throw new TrucException(...); // Traitement métier effectué par la méthode... R. Grin Sécurité Java EE page 95 R. Grin Sécurité Java EE page 96 16

17 Mode de configuration Configuration de GlassFish GlassFish peut être configuré n du côté du serveur : avec la console d administration ou avec la commande asadmin n en ajoutant dans l application des fichiers de configuration de déploiement particuliers à GlassFish ; ces fichiers seront pris en compte par GlassFish quand l application sera déployée sur le serveur R. Grin Sécurité Java EE page 97 R. Grin Sécurité Java EE page 98 Console d administration de GlassFish Elle s affiche dans un navigateur en tapant l adresse du serveur, suffixé avec «:4848» (port d écoute) Commande asadmin (1/2) Cette commande est située dans le répertoire bin du répertoire d installation de GlassFish (répertoire affiché dans la console d administration de GlassFish) La commande asadmin prend en paramètre des commandes qui permettent de configurer le serveur («asadmin --help» affiche une aide ; «asadmin commande --help» affiche une aide sur une commande) R. Grin Sécurité Java EE page 99 R. Grin Sécurité Java EE page 100 Commande asadmin (2/2) On peut travailler avec asadmin en mode interactif en tapant «asadmin multimode» ; un prompt «asadmin>» apparaît et on peut taper plusieurs commandes ; taper «exit» pour sortir On peut aussi lancer un script qui contient des commandes par «asadmin multimode --file script.txt» R. Grin Sécurité Java EE page 101 Si GlassFish ne veut plus démarrer Il peut s agir d un problème de configuration A essayer : n Aller dans le répertoire qui contient domain.xml ; il contient aussi un fichier domain.xml.bak qui est la l avant-dernière version de domain.xml n Conserver les 2 fichiers et ensuite renommer domain.xml.bak en domain.xml et essayer de redémarrer GlassFish n Si GlassFish redémarre, essayer de comprendre le problème en faisant un «diff» des 2 fichiers (peut venir, par exemple, de caractères particuliers, accents ou autres, dans les chemins des fichiers désignés) R. Grin Sécurité Java EE page

18 18 Fichiers de déploiement GlassFish Ils ont les mêmes noms que les fichiers de déploiement standard, préfixés par glassfish- : glassfish-application.xml, glassfish-ejb-jar.xml, glassfish-web.xml Affecter les rôles avec GlassFish La manière dont un rôle est associé à un utilisateur dépend du serveur d application GlassFish (et Tomcat) définit des groupes d utilisateurs On peut affecter un ou plusieurs rôles à un groupe ou à un utilisateur Pour simplifier, il est aussi possible de configurer GlassFish pour que les groupes ou les utilisateurs correspondent aux rôles de même noms R. Grin Sécurité Java EE page 103 R. Grin Sécurité Java EE page 104 Indiquer une correspondance avec un rôle Pour indiquer la correspondance entre les groupes (ou les utilisateurs) et les rôles, 2 possibilités : n utiliser un fichier de déploiement de l application particulier à GlassFish pour donner les correspondances entre groupes et rôles n utiliser la console d administration de GlassFish ou la commande asadmin pour indiquer que les rôles correspondent aux groupes d utilisateurs ou utilisateurs de même nom de GlassFish (s applique à toutes les applications qui n utilisent pas la 1 ère possibilité) R. Grin Sécurité Java EE page 105 Avec un fichier de déploiement Pour indiquer une correspondance entre un groupe (group-name) ou un utilisateur (principal-name) et un rôle (role-name) il suffit d ajouter une balise <security-role-mapping> sous la balise racine du fichier R. Grin Sécurité Java EE page 106 Exemple <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE glassfish-web-app PUBLIC " " " "> <glassfish-web-app>... <security-role-mapping> <role-name>admin</role-name> Dans glassfish-web.xml <principal-name>root</principal-name> <principal-name>bob</principal-name> <group-name>administrateur</group-name> </security-role-mapping>... R. Grin Sécurité Java EE page 107 Par défaut, principal = rôle Pour simplifier, il est possible d indiquer à GlassFish que les groupes ou utilisateurs correspondent aux rôles de même nom (sauf si une correspondance explicite d un rôle et d un principal est donnée) Les applications déjà déployées ne sont pas affectées par une modification de l activation du mapping par défaut des principaux avec des rôles Pendant le développement il ne faut donc pas oublier de redéployer l application après un changement de statut de cette activation R. Grin Sécurité Java EE page 108

19 Par défaut, principal = rôle Avec la commande asadmin : asadmin set server-config.security-service.activate-defaultprincipal-to-role-mapping=true asadmin set server-config.security-service.mappedprincipal-class=customprincipalimplclass Avec le menu de la console d administration : Configuration > server-config > Securité > Cocher la case Default Principal To Role Mapping (en français : Mise en correspondance par défaut des principaux avec des rôles) Gestion des utilisateurs La manière de conserver les informations sur l identité de l utilisateur, telles que les logins et mots de passe, n est pas standard GlassFish et Tomcat utilisent pour cela la notion de domaine (realm en anglais) qui correspond au domaine utilisée dans la balise <realm-name> de la balise <login-config> R. Grin Sécurité Java EE page 109 R. Grin Sécurité Java EE page 110 Domaine de sécurité Dans GlassFish il y a les types de realms suivants : n file (informations dans un simple fichier ; domaine par défaut) n jdbc (dans des tables d un SGBDR) n ldap (utilise un registre LDAP) n certificate (utilise des certificats) Il est aussi possible de créer son propre type de realm (pas étudié dans ce cours) Créer un domaine de sécurité asadmin create-auth-realm permet de créer un realm On peut aussi passer par les menus de la console d administration (voir exemple à suivre pour un domaine de type JDBC) R. Grin Sécurité Java EE page 111 R. Grin Sécurité Java EE page 112 Étapes pour créer un domaine JDBC Les transparents suivants étudient le type de domaine JDBC qui est souvent utilisé car il permet d ajouter simplement de nouveaux utilisateurs (des utilisateurs peuvent ainsi, par exemple, créer leur propre «espace membre» pour l application) 1. Créer les tables qui contiennent les informations sur les utilisateurs 2. Définir une source de données liée à la base de données qui contient ces tables 3. Créer le domaine JDBC R. Grin Sécurité Java EE page 113 R. Grin Sécurité Java EE page

20 Structure des tables La table des utilisateurs doit avoir n une colonne qui contient le nom de login n une colonne qui contient le mot de passe (en clair ou crypté) ; de type chaîne de caractères dont la longueur dépend du codage du mot de passe La table des groupes (en fait la table qui fait correspondre un groupe et un utilisateur) doit avoir n une colonne qui contient le nom d un groupe n une colonne qui contient un nom de login Ces tables peuvent avoir d autres colonnes Exemple de création des tables Table des utilisateurs (mot de passe crypté en SHA256 avec codage Hex ; il faut donc 64 caractères) : create table utilisateur ( login varchar(20) primary key, mot_de_passe varchar(64)) Table des groupes : create table groupe ( nom_groupe varchar(20), login varchar(20)) R. Grin Sécurité Java EE page 115 R. Grin Sécurité Java EE page 116 Exemple de données Dans la table des groupes : toto, groupe1 toto, groupe2 admin, admin pour indiquer que toto appartient aux groupes groupe1 et groupe 2 et admin appartient au groupe admin Vues au-dessus des tables Si ces informations (login et groupe) sont dans des tables qui n ont pas exactement le format voulu, il est possible d utiliser des vues et non pas des tables dans la définition des domaines R. Grin JSF page 117 R. Grin Sécurité Java EE page 118 Exemple de vue pour les groupes Table utilisateur (login, mot_de_passe, ) Table groupe(id_groupe, nom_groupe) Table groupe_utilisateur(id_groupe, login) ; le problème est que id_groupe est utilisé et pas nom-groupe Vue v_groupe_utilisateur qui va servir comme «table» des groupes : create view v_groupe_utilisateur as select login, nom_groupe from groupe join groupe_utilisateur on groupe.id_groupe = groupe_utilisateur.id_groupe R. Grin Sécurité Java EE page 119 Définition de la source de données Il faut maintenant créer une source de données dont une référence sera rangée dans l annuaire JNDI de GlassFish utilisable par l application Il faut commencer par créer un pool de connexions JDBC puis créer la source de données en utilisant ce pool de connexions 2 possibilités : n avec la console d administration de GlassFish n avec la commande asadmin R. Grin Sécurité Java EE page

21 Pool de connexions Il décrit l accès à la base de données (machine serveur, nom de la base, port d écoute,..) Avec les menus de la console d administration : Ressources > JDBC > Pool de connexions JDBC Avec asadmin create-jdbc-connection Exemple asadmin : asadmin create-jdbc-connection-pool -- datasourceclassname oracle.jdbc.pool.oracledatasource -- restype javax.sql.datasource --property user=dbuser:password=mdpdb:url="jdbc:oracle\:thin\:@loca lhost\:1521\:orcl" monpool R. Grin Sécurité Java EE page 121 Ressource JDBC Il faut ensuite créer une ressource JDBC en utilisant le pool de connexions ; on lui donnera le nom JNDI jdbc/candidatures pour l utiliser dans les transparents suivants Avec les menus de la console d administration : Ressources > JDBC > Resources JDBC Avec asadmin create-jdbc-resource Exemple : asadmin create-jdbc-resource --connectionpoolid monpool jdbc/masource R. Grin Sécurité Java EE page 122 Création d un realm JDBC (1/3) Console d administration de GlassFish Configurations > server-config > Sécurité > Domaines Cliquer Nouveau Nom : candidatures Nom de classe : celle qui se nomme JDBCRealm Il s affiche des propriétés qu il faut renseigner (éviter de taper des lettres accentuées ; problèmes possibles) Création d un realm JDBC (2/3) Contexte de JAAS : jdbcrealm JNDI : jdbc/candidatures (nom de la source de données qui contient les tables) Table d utilisateurs : PERSONNE (attention à respecter la casse des tables de la BD si MySQL) Colonne de nom d utilisateur : LOGIN Colonne de mot de passe : MOT_DE_PASSE Table de groupes : GROUPE Colonne de nom de groupe : NOM_GROUPE R. Grin JSF page 123 R. Grin JSF page 124 Création d un realm JDBC (3/3) Algorithme condensé : algorithme de hachage utilisé pour condenser le mot de passe ; SHA256 par défaut (MD5 dans les anciennes versions de GlassFish) Codage : indique comment le mot de passe condensé (suite d octets) sera enregistré sous la forme d une chaîne de caractères dans la base de données (Hex ou Base64) ; la chaîne de caractères sera de longueur 32 pour MD5 et de longueur 64 pour SHA256 Modification d un domaine de sécurité Il faut relancer GlassFish pour qu il tienne compte des modifications (à vérifier ) R. Grin JSF page 125 R. Grin Sécurité Java EE page

22 22 En cas d erreur Attention, si le domaine de sécurité n est pas défini, le message d erreur de GlassFish ne l indique pas ; pour tous les login / mot de passe, il dit seulement que le login a échoué R. Grin Sécurité Java EE page 127 Commandes asadmin en batch Il est possible d écrire un script (fichier texte) qui contient plusieurs commandes de asadmin et de lancer son exécution en «batch» par asadmin multimode --file script.txt Le transparent suivant contient un exemple de script avec 3 commandes pour créer un domaine de sécurité JDBC ; il faudra remplacer les 12 «variables» (dans 15 emplacements) par de valeurs car il n y a pas de notion de variable avec les scripts asadmin ; ne pas passer à la ligne à l intérieur de chaque commande asadmin R. Grin Sécurité Java EE page 128 Exemple asadmin create-jdbc-connection-pool --datasourceclassname org.apache.derby.jdbc.clientdatasource --restype javax.sql.datasource --property PortNumber=${DATABASE_PORT: Password=${DATABASE_PASSWORD:User=${DATABASE_USER:Se rvername=localhost:databasename=${database_name ${CONNECTION_POOL_NAME asadmin create-jdbc-resource --connectionpoolid ${CONNECTION_POOL_NAME ${JNDI_NAME asadmin create-auth-realm --classname com.sun.enterprise.security.auth.realm.jdbc.jdbcrealm --property username-column=${user_name:passwordcolumn=${password:group-name-column=${group_name:jaascontext=jdbcrealm:datasource-jndi="${jndi_name":grouptable=${group_table:user-table=${user_table ${REALM_NAME R. Grin Sécurité Java EE page 129 Exemple qui utilise Java DB (Derby) asadmin create-jdbc-connection-pool --datasourceclassname org.apache.derby.jdbc.clientdatasource --restype javax.sql.datasource --property PortNumber=1527:Password=toto:User=toto:ServerName=localhost:Dat abasename=base1 derbypool asadmin create-jdbc-resource --connectionpoolid derbypool jdbc/db asadmin create-auth-realm --classname com.sun.enterprise.security.auth.realm.jdbc.jdbcrealm --property username-column=login:password-column=mot_de_passe:groupname-column=nom_groupe:jaas-context=jdbcrealm:datasourcejndi="jdbc/db":group-table=groupe:user-table=personne realm1 R. Grin Sécurité Java EE page 130 Modifier le fichier web.xml Il faut maintenant indiquer que ce realm devra être utilisé lors de l identification des utilisateurs Un exemple d utilisation du realm «candidatures» est donné dans le transparent suivant Extrait de web.xml <login-config> <auth-method>form</auth-method> <realm-name>candidatures</realm-name> <form-login-config> <form-login-page>/faces/login.xhtml </form-login-page> <form-error-page>/faces/noauth.xhtml </form-error-page> </form-login-config> </login-config> R. Grin JSF page 131 R. Grin JSF page 132

23 23 Un exemple avec template Cet exemple va utiliser une authentification avec le domaine JDBC et un formulaire écrit par le développeur (type FORM) R. Grin Sécurité Java EE page 133 R. Grin Sécurité Java EE page 134 Modèle de page Si on veut que toutes les pages de l application indiquent le nom de l utilisateur et permettent de se déconnecter de l application, il faut prévoir un template qui contient ces fonctionnalités Les transparents suivant donnent un exemple d un tel template Les détails sont donnés dans la section «Code Java pour la sécurité» de ce cours et dans le cours JSF sur les templates Exemple de template (1/3) <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE html PUBLIC "-...N"...> <html xmlns=" xmlns:ui=" xmlns:h=" xmlns:f=" <f:event type="prerenderview" listener="#{bean.infosuser" /> <ui:insert name="metadata"/> Pour retrouver les informations sur l utilisateur R. Grin Sécurité Java EE page 135 R. Grin Sécurité Java EE page 136 Exemple de template (2/3) <h:head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <h:outputstylesheet library="css" name="csslayout.css" /> <title>#{bundle.titregeneral</title> </h:head> Pour internationaliser ; dans faces-config.xml : <resource-bundle> <base-name>/bundle</base-name> <var>bundle</var> </resource-bundle> Exemple de template (3/3) <h:body> <div id="top" class="top"> <ui:insert name="top"> #{bundle.titregeneral - <h:outputtext value="#{bean.login.login" rendered="#{bean.login.login!= ''"/> - <h:outputtext value="#{bean.login.nom" rendered="#{bean.login.nom!= ''"/> </ui:insert> </div>... </body> R. Grin Sécurité Java EE page 137 R. Grin Sécurité Java EE page 138

24 24 Code bean session - getlogin Code bean session - infosuser public Login getlogin() { // login contient la personne connectée if (login == null) { String nomutilisateur = FacesContext.getCurrentInstance().getExternalContext().getRemoteUser(); if (nomutilisateur!= null) { login = loginfacade.find(nomutilisateur); return login; R. Grin Sécurité Java EE page 139 public void infosuser(componentsystemevent event) { if (login!= null) { // infos déjà obtenues return; String loginutilisateur = ((HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest()).getRemoteUser(); if (loginutilisateur!= null) { login = loginfacade.find(loginutilisateur); R. Grin Sécurité Java EE page 140 Déconnexion Il faut permettre à l utilisateur de se déconnecter Le plus simple est d ajouter un bouton pour cela qui appelle une méthode du backing bean qui appelle la méthode logout() de la classe HttpServletRequest Code bean session - logout public String logout() { login = null; try { ((HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest()).logout(); catch (ServletException ex) { Logger.getLogger(Bean.class.getName()).log(Level.SEVERE, null, ex); return "/index"; R. Grin Sécurité Java EE page 141 R. Grin Sécurité Java EE page 142 Logs dans GlassFish - Mise au point Écrire dans les fichiers de logs Dans du code Java, System.out.println envoie dans les logs de GlassFish au niveau INFO System.err.println envoie dans les logs de GlassFish au niveau SEVERE Il est aussi possible d écrire à d autres niveau en utilisant explicitement l API de logging du JDK R. Grin Sécurité Java EE page 143 R. Grin Sécurité Java EE page 144

25 25 Exemple import java.util.logging.logger;... private Logger log = Logger.getLogger(MaClass.class.getName());... log.warning("mon message."); Afficher les logs Les derniers logs s affichent avec la console d administration de GlassFish : serveur, onglet «Général», bouton «Afficher les fichiers journaux» On peut aussi aller directement voir le contenu des fichiers R. Grin Sécurité Java EE page 145 R. Grin Sécurité Java EE page 146 Où se trouvent les logs Les fichiers de logs se trouvent par défaut dans le répertoire glassfish/domains/domain1/logs du répertoire d installation de GlassFish (si on travaille avec le domaine domain1), par exemple dans C:\Program Files\glassfish \glassfish\domains\domain1\logs Attention, sous Windows, ces fichiers peuvent être ailleurs (voir les propriétés du serveur sous NetBeans, champ «Domains folder») Configuration des logs Dans la console d administration, Configurations, «Paramètres du journaliseur» (Logger Settings an anglais) R. Grin Sécurité Java EE page 147 R. Grin Sécurité Java EE page 148 Pour la mise au point avec GlassFish Configurer le niveau du logger de GlassFish javax.enterprise.system.core.security à FINEST avec la console d administration de GlassFish (Configurations, server-config, Paramètres du logger/journaliseur en français, onglet Niveaux de journalisation) Des informations intéressantes pour résoudre des problèmes de sécurité sont alors affichées dans les logs de GlassFish Gérer les mots de passe R. Grin Sécurité Java EE page 149 R. Grin Sécurité Java EE page 150

26 Conserver les mots de passe Cette section expose quelques généralités sur la gestion des login / mots de passe Pour authentifier les utilisateurs, 2 solutions : n s appuyer sur un système d authentification externe, tel LDAP n gérer les mots de passe dans l application Nous allons étudier le 2 ème cas R. Grin Sécurité Java EE page 151 R. Grin Sécurité Java EE page 152 A ne pas faire! Ne jamais conserver les mots de passe en clair dans l application Ne pas utiliser des algorithmes de cryptage ou de hashage faciles à déjouer Par exemple, ne pas utiliser MD5 (aller par exemple sur le site qui permet de trouver rapidement un mot de passe qui correspond à une valeur MD5) Saler! Les mots de passe doivent donc être conservés cryptés dans l application Pour compliquer la recherche d une série de mots de passe, il faut ajouter une valeur aléatoire, le sel, différente pour tous les utilisateurs, qui sera ajoutée au mot de passe de chaque utilisateur Le sel peut être conservé en clair avec le mot de passe crypté R. Grin Sécurité Java EE page 153 R. Grin Sécurité Java EE page 154 Utilisation du sel L application récupère le mot de passe tapé par l utilisateur, elle concatène le sel au mot de passe et elle crypte le tout en une valeur v1 L application vérifie que la valeur v0 qu elle conserve (le mot de passe de l utilisateur, concaténé au sel et crypté au moment de l enregistrement du mot de passe) est bien égale à v1 ; si ça n est pas le cas, c est que le mot de passe tapé n était pas le bon R. Grin Sécurité Java EE page 155 Mots de passe avec GlassFish Les dernières versions de GlassFish utilisent par défaut le codage SHA-256 pour hasher les mots de passe (on peut choisir lorsqu on définit un domaine de sécurité) GlassFish récupère le mot de passe par un getstring alors que les algorithmes de hashage fournissent un tableau d octets ; la façon de passer du tableau d octets à une String doit être indiquée dans la définition du domaine En standard GlassFish ne permet pas de saler les mots de passe R. Grin Sécurité Java EE page

Présentation du cours. Sécurité dans Java EE. Plan (1/2) Plan (2/2) Généralités sur la sécurité

Présentation du cours. Sécurité dans Java EE. Plan (1/2) Plan (2/2) Généralités sur la sécurité Présentation du cours Sécurité dans Java EE Université de Nice - Sophia Antipolis Richard Grin Version 0.17 17/9/13 Ce cours montre comment sécuriser une application Java EE : réserver l accès de pages

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4 Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EP5EJAV dans la zone de recherche et validez.

Plus en détail

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Sommaire 1. Objectifs et intérêts... 2 2. Intégrer le driver SQL Server dans SJSAS 9... 2 2.1. Télécharger

Plus en détail

Web Tier : déploiement de servlets

Web Tier : déploiement de servlets Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation

Plus en détail

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE Première coupe : CREATION : 2010/04/22 MISE A JOUR : 2010/07/01 GLASSFISH:3.0.1 NETBEANS : 6.8 Ce TP de découverte de la plateforme Java EE est une traduction adaptée de «Your First Cup :An Introduction

Plus en détail

1. Installation d'un serveur d'application JBoss:

1. Installation d'un serveur d'application JBoss: EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download

Plus en détail

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture

Plus en détail

FileMaker Server 14. Aide FileMaker Server

FileMaker Server 14. Aide FileMaker Server FileMaker Server 14 Aide FileMaker Server 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et FileMaker Go sont des marques

Plus en détail

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr Auteur du document : ESRI France Version de la documentation : 1.2.0.0 Date de dernière

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT DOCUMENTATION CAS A DESTINATION DES SERVICES TIERS Titre descriptif du document Référence du document REFO-DT-ENTV2-ServeurCAS-v1.2.docx Nom du fichier REFO-DT-ENTV2-ServeurCAS-v1.2.docx Version du document

Plus en détail

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence

Plus en détail

Java Naming and Directory Interface

Java Naming and Directory Interface Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard

Plus en détail

Création d une application JEE

Création d une application JEE Création d une application JEE Rédacteurs : Alexandre Baillif, Philippe Lacomme, Raksmey Phan et Michaël PLAN Date : juillet 2010 Mise à jour : Michaël PLAN Date : octobre 2014 Avertissement : - ce document

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall Titre Version Date Dernière page Identité du document Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

Une introduction à la technologie EJB (2/3)

Une introduction à la technologie EJB (2/3) Une introduction à la technologie EJB (2/3) 1 Les singletons des EJB 3.1 1.1 Synchronisation gérée manuellement Depuis la version 3.1, des EJB Statless à instance unique sont maintenant disponibles : ce

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10 Dossier Technique Page 1/10 Sommaire : 1. REPONSE TECHNIQUE A LA DEMANDE 3 1.1. Prise en compte de la dernière version de phpcas 3 1.2. Gestion de la connexion à GRR 3 1.2.1. Récupération des attributs

Plus en détail

EXA1415 : Annotations JavaEE : @Local, @Stateful

EXA1415 : Annotations JavaEE : @Local, @Stateful EXA1415 : Annotations JavaEE : @Local, @Stateful Sur une idée de P. Sécheresse sur http://developpez.com (http://tinyurl.com/5gr57j) Diapo 1 Objectif Créer un EJB CalculatriceBean (V1) Contient une opération

Plus en détail

IPS-Firewalls NETASQ SPNEGO

IPS-Firewalls NETASQ SPNEGO IPS-Firewalls NETASQ SPNEGO Introduction Un utilisateur doit gérer de nombreux mots de passe. Un mot de passe pour la connexion au poste de travail, un mot de passe pour la messagerie et n mots de passe

Plus en détail

Logiciel : GLPI Version : 0.72.4 SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

Logiciel : GLPI Version : 0.72.4 SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003. Ce document est libre de droit, merci simplement de respecter son auteur. Toutes remarques ou commentaires seront les bienvenues. ATTENTION : La mise à jour par script entre GLPI et Active Directory ne

Plus en détail

arcopole Studio Annexe 7 Architectures Site du programme arcopole : www.arcopole.fr

arcopole Studio Annexe 7 Architectures Site du programme arcopole : www.arcopole.fr 4 arcopole Studio Annexe 7 Architectures Site du programme arcopole : www.arcopole.fr Auteur du document : Esri France Version de la documentation : 1.2 Date de dernière mise à jour : 26/02/2015 Sommaire

Plus en détail

FileMaker Server 14. Guide de démarrage

FileMaker Server 14. Guide de démarrage FileMaker Server 14 Guide de démarrage 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et FileMaker Go sont des marques

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail

HYPERPLANNING EST UN LOGICIEL INDEX EDUCATION

HYPERPLANNING EST UN LOGICIEL INDEX EDUCATION YPERPLANNING 2011 Cette notice est destinée aux personnes gérant l ENT. HYPERPLANNING cas Ce module est mis en œuvre à l attention des ENT. Aucune assistance n est assurée pour l installation de ce module

Plus en détail

Définition des Webservices Ordre de paiement par email. Version 1.0

Définition des Webservices Ordre de paiement par email. Version 1.0 Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document

Plus en détail

Création d un service web avec NetBeans 5.5 et SJAS 9

Création d un service web avec NetBeans 5.5 et SJAS 9 Sommaire Création d un service web avec NetBeans 5.5 et SJAS 9 1. Présentation... 2 2. Création d un service web avec NetBeans... 2 2.1. Création d une application Web... 2 2.2. Création du service web...

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test? Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC Qui contacter pour commencer la mise en place d une configuration de test? CyberMUT Paiement - Paiement CIC Commerce Electronique mailto:centrecom@e-i.com

Plus en détail

Service de certificat

Service de certificat Service de certificat Table des matières 1 Introduction...2 2 Mise en place d une autorité de certification...3 2.1 Introduction...3 2.2 Installer le service de certificat...4 3 Sécuriser un site web avec

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi Un exemple d'authentification sécurisée utilisant les outils du Web : CAS 111 L authentification CAS : «Central Authentication Service» CAS ou le service central d authentification Le système CAS, développé

Plus en détail

Logiciel de connexion sécurisée. M2Me_Secure. NOTICE D'UTILISATION Document référence : 9016809-01

Logiciel de connexion sécurisée. M2Me_Secure. NOTICE D'UTILISATION Document référence : 9016809-01 Logiciel de connexion sécurisée M2Me_Secure NOTICE D'UTILISATION Document référence : 9016809-01 Le logiciel M2Me_Secure est édité par ETIC TELECOMMUNICATIONS 13 Chemin du vieux chêne 38240 MEYLAN FRANCE

Plus en détail

La mémorisation des mots de passe dans les navigateurs web modernes

La mémorisation des mots de passe dans les navigateurs web modernes 1 La mémorisation des mots de passe dans les navigateurs web modernes Didier Chassignol Frédéric Giquel 6 décembre 2005 - Congrès JRES 2 La problématique Multiplication des applications web nécessitant

Plus en détail

Configuration du FTP Isolé Active Directory

Configuration du FTP Isolé Active Directory Configuration du FTP Isolé Active Directory 1 - Introduction KoXo Administrator permet de configurer les attributs de l annuaire pour permettre à un utilisateur d accéder à son dossier de travail via le

Plus en détail

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

Plus en détail

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10 modalisa Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10 8 Fonctionnalités de mise en ligne de questionnaires Vous trouverez dans cet opuscule les informations nécessaires

Plus en détail

LES NOTES D PROCEDURE DE CONNEXION WIFI AU CAMPUS. Ce document décrit la procédure à suivre pour se connecter en WIFI au campus.

LES NOTES D PROCEDURE DE CONNEXION WIFI AU CAMPUS. Ce document décrit la procédure à suivre pour se connecter en WIFI au campus. LES NOTES D PROCEDURE DE CONNEXION WIFI AU CAMPUS Réf : NotesLSI-050319-clientWIFI-1 Production de LSI Publication : Mars 2005 Version : 1.0 Résumé Ce document décrit la procédure à suivre pour se connecter

Plus en détail

IBM DB2 Alphablox. d administration GC11-2170-00

IBM DB2 Alphablox. d administration GC11-2170-00 IBM DB2 Alphablox Guide d administration Version 8.4 GC11-2170-00 IBM DB2 Alphablox Guide d administration Version 8.4 GC11-2170-00 ii IBM DB2 Alphablox - Guide d administration Table des matières Avis

Plus en détail

Groupe Eyrolles, 2003 ISBN : 2-212-11270-X

Groupe Eyrolles, 2003 ISBN : 2-212-11270-X Groupe Eyrolles, 2003 ISBN : 2-212-11270-X 7 Le fichier server.xml Dans le chapitre 3, nous avons abordé les bases de la configuration de Tomcat, informations suffisantes pour vous mettre le pied à l étrier.

Plus en détail

Authentification unique Eurécia

Authentification unique Eurécia Authentification unique Eurécia Date/Version Contenu Etat 27/03/2013 Création du document Diffusable 03/09/2013 Mise à jour du document Diffusable 17/07/2013 Ajout du chapitre provisionning Diffusable

Plus en détail

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr

Plus en détail

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward PHP CLÉS EN MAIN 76 scripts efficaces pour enrichir vos sites web par William Steinmetz et Brian Ward TABLE DES MATIÈRES INTRODUCTION 1 1 TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR LES SCRIPTS PHP

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

Documentation CAS à destination des éditeurs

Documentation CAS à destination des éditeurs Documentation CAS à destination des éditeurs Sommaire Préambule... 1 Présentation de CAS...2 Intérêt... 2 Fonctionnement de base...2 Synoptique des échanges (1ère connexion)... 2 Synoptique des échanges

Plus en détail

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur Qu est ce que Visual Guard Authentification Vérifier l identité d un utilisateur Autorisation Qu est-ce qu un utilisateur peut faire dans l application Audits et rapports Fonctionnalités d Audit et de

Plus en détail

Guide de démarrage Intellipool Network Monitor

Guide de démarrage Intellipool Network Monitor Guide de démarrage Intellipool Network Monitor Sommaire Glossaire... 3 Icônes... 3 Page de connexion... 4 Page d accueil... 5 Saisie de la clé de licence... 7 My settings... 8 Création d un compte... 9

Plus en détail

Chapitre 1 Windows Server 2008 11

Chapitre 1 Windows Server 2008 11 Chapitre 1 Windows Server 2008 11 1.1. Les fondations du système... 15 1.2. La virtualisation... 16 1.3. La sécurité... 18 1.4. Le Web... 20 1.5. Fonctionnalité disponible dans Windows Server 2008... 21

Plus en détail

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes

Plus en détail

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.

Plus en détail

Sécurisation des accès au CRM avec un certificat client générique

Sécurisation des accès au CRM avec un certificat client générique NOTE TECHNIQUE Sécurisation des accès au CRM avec un certificat client générique OBJETIF DE SECURITE Réduire les risques d usurpation d identité et de vols de données (exemple : keylogger, cheval de Troie

Plus en détail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

Quick Start Installation de MDweb version 2.3

Quick Start Installation de MDweb version 2.3 Quick Start Installation de MDweb version 2.3 Date : 2011.08.26 1. Quickstart Quick Start - Installation de MDweb version 2011 Installation Téléchargement et Installation des logiciels requis Déploiement

Plus en détail

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 Informations juridiques Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Administration d Adobe LiveCycle Mosaic 9.5 13 octobre

Plus en détail

1. Mise en œuvre du Cegid Web Access Server en https

1. Mise en œuvre du Cegid Web Access Server en https 1. Mise en œuvre du Cegid Web Access Server en https Principe d usage La mise en œuvre du mode https sur un serveur Web Access implique : De disposer d un certificat pour le nom d hôte configuré sur le

Plus en détail

Aspects techniques : guide d interfaçage SSO

Aspects techniques : guide d interfaçage SSO COURDECO Aspects techniques : guide d interfaçage SSO Septembre 2011 Cette annexe présente succinctement le système d'authentification unique (SSO : single sign on, authentification unique) utilisé dans

Plus en détail

arcopole Studio Version 3.3

arcopole Studio Version 3.3 arcopole Studio Version 3.3 Documentation d installation Mise à jour depuis une version antérieure Site du programme arcopole : www.arcopole.fr Auteur du document : Esri France Version de la documentation

Plus en détail

Groupe Eyrolles, 2005, ISBN : 2-212-11406-0

Groupe Eyrolles, 2005, ISBN : 2-212-11406-0 Groupe Eyrolles, 2005, ISBN : 2-212-11406-0 10 L atelier MyEclipse Eclipse facilite considérablement le développement Java en équipe. Son puissant éditeur, associé à des fonctionnalités de complétion de

Plus en détail

Auto-évaluation Aperçu de l architecture Java EE

Auto-évaluation Aperçu de l architecture Java EE Auto-évaluation Aperçu de l architecture Java EE Document: f1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION APERÇU

Plus en détail

JavaServer Pages (JSP)

JavaServer Pages (JSP) JavaServer Pages (JSP) XVIII-1 Prérequis pour ce cours Ce cours a trait à la programmation Java coté serveur Il faut connaître un minimum de technologie J2EE Il faut connaître les servlets XVIII-2 Motivation

Plus en détail

JBoss Enterprise Application Platform 6.2 Guide de sécurité

JBoss Enterprise Application Platform 6.2 Guide de sécurité JBoss Enterprise Application Platform 6.2 Guide de sécurité À utiliser dans Red Hat JBoss Enterprise Application Platform 6 Édition 1 Sande Gilda Darrin Mison David Ryan Misty Stanley-Jones Tom Wells JBoss

Plus en détail

Utilisation de l espace personnel (Serveur DATA)

Utilisation de l espace personnel (Serveur DATA) Utilisation de l espace personnel (Serveur DATA) BN / novembre 2014 Table des matières 1 Présentation :... 3 2 Accès pour dépôt de fichiers... 3 2.1 ENT... 3 2.2 Lecteur réseau... 4 2.2.1 Sous Windows

Plus en détail

EJBCA PKI Open Source

EJBCA PKI Open Source PKI Open Source http://www.auditiel.fr/docs/installation.pdf 1 SOMMAIRE 1Sommaire... 2 2Introduction... 3 2.1Pré requis...3 2.2Versions... 3 2.3Glossaire...3 3Installation...4 3.1Composants nécessaires...

Plus en détail

Mise en place d un serveur Proxy sous Ubuntu / Debian

Mise en place d un serveur Proxy sous Ubuntu / Debian BTS INFORMATIQUE DE GESTION Option Administrateur Réseaux Benoît VERRON Activité n 1 Mise en place d un serveur Proxy sous Ubuntu / Debian Présentation d un Proxy Un proxy (serveur mandataire) est un serveur

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents. Serveur de partage de documents Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents. Table des matières Création de la machine virtuelle Debian... 3 Présentation

Plus en détail

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Outil de planification en ligne pour des créations de rendez-vous ou de sondage Outil de planification en ligne pour des créations de rendez-vous ou de sondage Centre de Ressources Informatiques (C.R.I.) d'orléans Université d'orléans 4-6 rue Léonard de Vinci, 45061 Orléans Cedex

Plus en détail

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI Institut Galilée Année 2014-2015 TP WEBSERVICES Programmation et Logiciels sûrs Master 2 PLS Résumé Ce TP s appuie sur le cours de C. Fouqueré traitant des Environnements et Langage Évolués, ainsi que

Plus en détail

Mettre en place un accès sécurisé à travers Internet

Mettre en place un accès sécurisé à travers Internet Mettre en place un accès sécurisé à travers Internet Dans cette partie vous verrez comment configurer votre serveur en tant que serveur d accès distant. Dans un premier temps, les méthodes pour configurer

Plus en détail

Présentation Serveur Apache et pour RePeGlio

Présentation Serveur Apache et pour RePeGlio Serveur APACHE 1 Présentation Serveur Apache et pour RePeGlio I. Présentation générale du serveur Apache... 2 1. Fonction du serveur Apache... 2 2. Fonction du programme RPG relativement au serveur Apache....

Plus en détail

Manuel d utilisation du Guichet électronique V2

Manuel d utilisation du Guichet électronique V2 Service Informatique (D443) Equipe du Guichet Manuel d utilisation du Guichet Version 1.0 Alpha 0 du 18/02/2011 Classification : Peu sensible Objet : Ce document est un manuel d utilisation du portail

Plus en détail

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. Université Paris 7 M2 II Protocole Internet TP3 Mail Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. 1 Protocole SMTP 1. Le protocole SMTP est définit dans

Plus en détail

www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3

www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 L i a m T A R D I E U www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 Sommaire Sommaire... 2 Eléments initiaux... 3 Base de données... 3 Tables... 4 membres... 4 commandes... 4 articles... 4 details_commandes...

Plus en détail

Guide exploitant du contrôleur Legrand

Guide exploitant du contrôleur Legrand Guide exploitant du contrôleur Version 4.0.1 www.legrand.fr Sommaire 1 / Introduction 5 2 / Lancement de l outil d administration déléguée 6 3 / Création d un compte utilisateur 8 3.1 / Étape 1 : Renseignement

Plus en détail

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall RTE Technologies RTE Geoloc Configuration avec Proxy ou Firewall 2 Septembre 2010 Table des matières Introduction... 3 Présentation de RTE Geoloc... 3 Configuration des paramètres de sécurité... 3 Configuration

Plus en détail

< Atelier 1 /> Démarrer une application web

< Atelier 1 /> Démarrer une application web MES ANNOTATIONS SONT EN ROUGE : Axel < Atelier 1 /> Démarrer une application web Microsoft France Tutorial Découverte de ASP.NET 2.0 Sommaire 1 INTRODUCTION... 3 1.1 CONTEXTE FONCTIONNEL... 3 1.2 CONTEXTE

Plus en détail

BOUCHARD Nicolas. GENTILE Pierre

BOUCHARD Nicolas. GENTILE Pierre PPE ENT Installation d Esup Portail sous Windows De A à Z - Version du 19/04/2007 Page2 Table des Matières PRE REQUIS... 3 INSTALLATION DE L OUTIL ANT... 4 INSTALLATION DU SERVEUR APACHE TOMCAT... 5 PASSER

Plus en détail

GESTION DES MENUS. Un menu est un ensemble de liens permettant la navigation dans le site.

GESTION DES MENUS. Un menu est un ensemble de liens permettant la navigation dans le site. GESTION DES MENUS I. Préambule Un menu est un ensemble de liens permettant la navigation dans le site. En général, la position du menu va déterminer son nom, afin de le retrouver rapidement. Ex : Menu

Plus en détail

JOnAS 5. Serveur d application d

JOnAS 5. Serveur d application d JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source

Plus en détail

Installation du transfert de fichier sécurisé sur le serveur orphanet

Installation du transfert de fichier sécurisé sur le serveur orphanet Installation du transfert de fichier sécurisé sur le serveur orphanet But du changement de mode de transfert Afin de sécuriser les transferts de données sur la machine orphanet (orphanet.infobiogen.fr),

Plus en détail

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6 Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6 2 І O2S Intégration O2S dans un site Internet Ce document présente une description

Plus en détail

Procédures d accès au nouveau réseau sans fil à l aide d un portable (Windows XP) géré par la DGTIC

Procédures d accès au nouveau réseau sans fil à l aide d un portable (Windows XP) géré par la DGTIC Procédures d accès au nouveau réseau sans fil à l aide d un portable (Windows XP) géré par la DGTIC TABLE DES MATIÈRES 1.0 PRÉ-REQUIS... 3 2.0 CONFIGURATION DES PROFILS DES NOMS DE RÉSEAU (SSID) DIFFUSÉS

Plus en détail

LISTES DE DISTRIBUTION GÉRÉES PAR SYMPA DOCUMENT EXPLICATIF DE L'INTERFACE WEB À L'INTENTION DES ABONNÉS

LISTES DE DISTRIBUTION GÉRÉES PAR SYMPA DOCUMENT EXPLICATIF DE L'INTERFACE WEB À L'INTENTION DES ABONNÉS LISTES DE DISTRIBUTION GÉRÉES PAR SYMPA DOCUMENT EXPLICATIF DE L'INTERFACE WEB À L'INTENTION DES ABONNÉS MAI 2013 Table des matières 1. Introduction... 3 2. Interface d accueil... 4 2.1. Zone d authentification...

Plus en détail

PREMIERE UTILISATION D IS-LOG

PREMIERE UTILISATION D IS-LOG PREMIERE UTILISATION D IS-LOG Is-LOG est un logiciel d identification et d authentification à un ordinateur qui se substitue à la saisie du couple «Login / mot passe» par la présentation au lecteur de

Plus en détail

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant

Plus en détail

Guide d implémentation. Réussir l intégration de Systempay

Guide d implémentation. Réussir l intégration de Systempay Guide d implémentation - Interface avec la plateforme de paiement - Réussir l intégration de Systempay Version 1.4b Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa

Plus en détail