Spring Security is a framework that provides authentication, authorization, and protection against common attacks. With first class support for both imperative and reactive applications, it is the de-facto standard for securing Spring-based applications.
The Spring IoC container is at the core of the Spring Framework. The container will create the objects, wire them together, configure them, and manage their complete life cycle from creation till destruction. The Spring container uses dependency injection (DI) to manage the components that make up an application.
Une riche présentation de Mapping Objet Relationnel qui traite le standard JPA et l’implémentation Hibernate en les intégrant avec le frammework IOC spring.
Ce Support de cours Spring contient :
- Architecture JEE (Over view)
- Spring Overview
- Spring IOC
- Spring MVC
- Spring Integration (RMI, JaxWS, JaxRS, JMS, JMX,...)
- Spring Security
Bon apprentissage à tous
The Spring IoC container is at the core of the Spring Framework. The container will create the objects, wire them together, configure them, and manage their complete life cycle from creation till destruction. The Spring container uses dependency injection (DI) to manage the components that make up an application.
Une riche présentation de Mapping Objet Relationnel qui traite le standard JPA et l’implémentation Hibernate en les intégrant avec le frammework IOC spring.
Ce Support de cours Spring contient :
- Architecture JEE (Over view)
- Spring Overview
- Spring IOC
- Spring MVC
- Spring Integration (RMI, JaxWS, JaxRS, JMS, JMX,...)
- Spring Security
Bon apprentissage à tous
Découvrez le framework web Spring Boot qui a la cote !
Apprenez comment son système d'auto-configuration fonctionne.
Live coding et exemple de migration vers Spring Boot sont de la partie.
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Ippon
Les ORM, c’est pratique. Mais cela peut rapidement devenir complexe ou subtile. JPA permet de rapidement modéliser la couche d’accès aux données avec une facilité indiscutable. Cependant, il est préférable de bien en comprendre le fonctionnement pour éviter quelques anti patterns fâcheux.
La formation JPA Avancé proposée par Ippon détaille les aspects techniques et permet d’aller plus loin dans la compréhension et la maîtrise. Enrichie par des TP très fournis lorsqu’elle est dispensée par les formateurs Ippon, elle permet d’assimiler en 3 jours les subtilités et offre les outils pour réaliser une couche d’accès aux données de qualité, performante et maintenable.
Techniques de modélisation, gestion et subtilités du cache (L1, L2), mécanismes transactionnels, langage de requêtage… Tous ces aspects et bien d’autres sont détaillés et illustrés afin de vous apporter les clefs pour vos prochains projets.
Découvrez dès aujourd’hui les slides de cette formation, mis à disposition dans le cadre de l’OpenFormation.
Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, “Spring Web MVC,” comes from the name of its source module (spring-webmvc), but it is more commonly known as “Spring MVC”.
Parallel to Spring Web MVC, Spring Framework 5.0 introduced a reactive-stack web framework whose name, “Spring WebFlux,” is also based on its source module (spring-webflux). This section covers Spring Web MVC.
The document discusses OAuth2 and Spring Security. It provides an overview of OAuth2 concepts including the four main roles (resource owner, resource server, client, and authorization server), four common grant types (authorization code, implicit, resource owner password credentials, and client credentials), and how to implement OAuth2 flows in Spring Security. Sample OAuth2 applications using Spring Security are also mentioned.
This document provides an overview of Spring Security including:
I. It distinguishes Spring Framework, Spring Boot, and Spring Security and their relationships.
II. It defines Spring Security as a framework focusing on authentication and authorization for Java applications.
III. It outlines some of the core concepts in Spring Security such as Principal, Authentication, Authorization, GrantedAuthority etc.
The document serves as an introduction to Spring Security fundamentals and architecture.
The Spring Framework is an open-source Java platform that provides comprehensive infrastructure support for developing robust Java applications easily and rapidly. It was initially created by Rod Johnson in 2002 and released under the Apache 2.0 license. Spring simplifies development through features like dependency injection and aspect-oriented programming. It includes modules for core functions, data access, web applications, and other services.
Formation Spring Avancé gratuite par Ippon 2014Ippon
Spring est le principal framework de développement Java utilisé en entreprise. Ce succès tient au fait qu'il permet de développer facilement et rapidement des applications robustes, légères et bien testées.
Apprécié également par les cellules d'architecture et les DSI, Spring permet d'avoir des applications bien découpées en couches, facilement maintenables et évolutives.
Cependant, si une configuration Spring simple est à la portée de tous, avoir une architecture Spring correcte, en comprendre le fonctionnement interne et connaître les fonctionnalités avancées du framework sont des tâches nettement plus ardues.
L'objectif de cette formation est de donner les bonnes bases pour comprendre les principaux aspects de Spring, de manière à ce que les participants soient capables de :
- Développer une application Spring complète (persistance, métier, validation, transactions, sécurité, Web, Ajax...).
- Comprendre le fonctionnement interne de Spring et donc être autonomes lorsqu'un bug ou une situation anormale se produit.
- Avoir intégré la philosophie de développement Spring, afin de pouvoir facilement prendre en main un sous-projet ou une fonctionnalité Spring qu'ils ne connaissent pas encore.
Les principales failles de sécurité des applications Web actuellesXavier Kress
Les principales failles de sécurité des applications Web actuelles telles que recensées par l'OWASP. Principes, parades et bonnes pratiques de développement.
Ce document, élaboré dans le cadre d'une présentation faite au CNAM, traite de l’importance de la sécurité applicative (les applications Web sont devenues omniprésentes, objectifs et conséquences d’une attaque, les hackers et les kits d’attaque, l'OWASP et les kits de défense), des principales failles de sécurité applicatives (principe et exemples de fonctionnement, objectifs / conséquences, parades) et des bonnes pratiques permettant de sécuriser un parc applicatif (sensibiliser les développeurs, effectuer des tests d’intrusion et de la revue de code, intégrer la sécurité dans la gestion de projets)
Ce support de cours contient les concepts fondamentaux de la sécurité des applications Web Statless avec Json Web Token. Des applications de mise en oeuvre de JWT et Spring Security pour les applications basées sur les Micro-services sont publiées ma chaîne vidéo Youtube :
https://www.youtube.com/user/mohamedYoussfi
Le code source des applications est publié sur mon compte GitHUB:
https://github.com/mohamedYoussfi/
Bon apprentissage
Php 2 - Approfondissement MySQL, PDO et MVCPierre Faure
Introduction au langage de programmation PHP.
Présentation réalisée la première fois le lundi 10 mars 2014 à l'IIM : Institut de l'Internet et du Multimédia pour les années préparatoires.
Cette présentation a pour but d'approfondir les compétences PHP des élèves : utiliser des bases de données, comprendre PDO et le modèle MVC (basique).
Après présentation orale de ces slides, des exercices de mise en pratique ont été réalisés en Atelier avec les élèves.
L'exercice principal était de construire une plateforme similaire à twitter selon un modèle MVC.
Voici le plan de la présentation :
• Les bases de données : MySQL
- Principe
- phpMyAdmin
- Interagir avec une BDD
• Les fonctions
- La machine à carottes
- Exemple avec MySQL
- Les fonctions PHP
• Modèle Vue Contrôleur - MVC
- Principe
- Mise en pratique
• Quelques trucs à savoir a.$_FILES et $_POST
- $_SESSION
- L’indentation
- PHP + HTML = ?
Découvrez le framework web Spring Boot qui a la cote !
Apprenez comment son système d'auto-configuration fonctionne.
Live coding et exemple de migration vers Spring Boot sont de la partie.
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Ippon
Les ORM, c’est pratique. Mais cela peut rapidement devenir complexe ou subtile. JPA permet de rapidement modéliser la couche d’accès aux données avec une facilité indiscutable. Cependant, il est préférable de bien en comprendre le fonctionnement pour éviter quelques anti patterns fâcheux.
La formation JPA Avancé proposée par Ippon détaille les aspects techniques et permet d’aller plus loin dans la compréhension et la maîtrise. Enrichie par des TP très fournis lorsqu’elle est dispensée par les formateurs Ippon, elle permet d’assimiler en 3 jours les subtilités et offre les outils pour réaliser une couche d’accès aux données de qualité, performante et maintenable.
Techniques de modélisation, gestion et subtilités du cache (L1, L2), mécanismes transactionnels, langage de requêtage… Tous ces aspects et bien d’autres sont détaillés et illustrés afin de vous apporter les clefs pour vos prochains projets.
Découvrez dès aujourd’hui les slides de cette formation, mis à disposition dans le cadre de l’OpenFormation.
Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, “Spring Web MVC,” comes from the name of its source module (spring-webmvc), but it is more commonly known as “Spring MVC”.
Parallel to Spring Web MVC, Spring Framework 5.0 introduced a reactive-stack web framework whose name, “Spring WebFlux,” is also based on its source module (spring-webflux). This section covers Spring Web MVC.
The document discusses OAuth2 and Spring Security. It provides an overview of OAuth2 concepts including the four main roles (resource owner, resource server, client, and authorization server), four common grant types (authorization code, implicit, resource owner password credentials, and client credentials), and how to implement OAuth2 flows in Spring Security. Sample OAuth2 applications using Spring Security are also mentioned.
This document provides an overview of Spring Security including:
I. It distinguishes Spring Framework, Spring Boot, and Spring Security and their relationships.
II. It defines Spring Security as a framework focusing on authentication and authorization for Java applications.
III. It outlines some of the core concepts in Spring Security such as Principal, Authentication, Authorization, GrantedAuthority etc.
The document serves as an introduction to Spring Security fundamentals and architecture.
The Spring Framework is an open-source Java platform that provides comprehensive infrastructure support for developing robust Java applications easily and rapidly. It was initially created by Rod Johnson in 2002 and released under the Apache 2.0 license. Spring simplifies development through features like dependency injection and aspect-oriented programming. It includes modules for core functions, data access, web applications, and other services.
Formation Spring Avancé gratuite par Ippon 2014Ippon
Spring est le principal framework de développement Java utilisé en entreprise. Ce succès tient au fait qu'il permet de développer facilement et rapidement des applications robustes, légères et bien testées.
Apprécié également par les cellules d'architecture et les DSI, Spring permet d'avoir des applications bien découpées en couches, facilement maintenables et évolutives.
Cependant, si une configuration Spring simple est à la portée de tous, avoir une architecture Spring correcte, en comprendre le fonctionnement interne et connaître les fonctionnalités avancées du framework sont des tâches nettement plus ardues.
L'objectif de cette formation est de donner les bonnes bases pour comprendre les principaux aspects de Spring, de manière à ce que les participants soient capables de :
- Développer une application Spring complète (persistance, métier, validation, transactions, sécurité, Web, Ajax...).
- Comprendre le fonctionnement interne de Spring et donc être autonomes lorsqu'un bug ou une situation anormale se produit.
- Avoir intégré la philosophie de développement Spring, afin de pouvoir facilement prendre en main un sous-projet ou une fonctionnalité Spring qu'ils ne connaissent pas encore.
Les principales failles de sécurité des applications Web actuellesXavier Kress
Les principales failles de sécurité des applications Web actuelles telles que recensées par l'OWASP. Principes, parades et bonnes pratiques de développement.
Ce document, élaboré dans le cadre d'une présentation faite au CNAM, traite de l’importance de la sécurité applicative (les applications Web sont devenues omniprésentes, objectifs et conséquences d’une attaque, les hackers et les kits d’attaque, l'OWASP et les kits de défense), des principales failles de sécurité applicatives (principe et exemples de fonctionnement, objectifs / conséquences, parades) et des bonnes pratiques permettant de sécuriser un parc applicatif (sensibiliser les développeurs, effectuer des tests d’intrusion et de la revue de code, intégrer la sécurité dans la gestion de projets)
Ce support de cours contient les concepts fondamentaux de la sécurité des applications Web Statless avec Json Web Token. Des applications de mise en oeuvre de JWT et Spring Security pour les applications basées sur les Micro-services sont publiées ma chaîne vidéo Youtube :
https://www.youtube.com/user/mohamedYoussfi
Le code source des applications est publié sur mon compte GitHUB:
https://github.com/mohamedYoussfi/
Bon apprentissage
Php 2 - Approfondissement MySQL, PDO et MVCPierre Faure
Introduction au langage de programmation PHP.
Présentation réalisée la première fois le lundi 10 mars 2014 à l'IIM : Institut de l'Internet et du Multimédia pour les années préparatoires.
Cette présentation a pour but d'approfondir les compétences PHP des élèves : utiliser des bases de données, comprendre PDO et le modèle MVC (basique).
Après présentation orale de ces slides, des exercices de mise en pratique ont été réalisés en Atelier avec les élèves.
L'exercice principal était de construire une plateforme similaire à twitter selon un modèle MVC.
Voici le plan de la présentation :
• Les bases de données : MySQL
- Principe
- phpMyAdmin
- Interagir avec une BDD
• Les fonctions
- La machine à carottes
- Exemple avec MySQL
- Les fonctions PHP
• Modèle Vue Contrôleur - MVC
- Principe
- Mise en pratique
• Quelques trucs à savoir a.$_FILES et $_POST
- $_SESSION
- L’indentation
- PHP + HTML = ?
La sécurité dans un monde principalement mobile et Cloud.
Azure Active Directory
Protégez votre entreprise grâce à la gestion des identités et des accès dans le Cloud.
- Protection avec Windows 10.
- Office 365 Sécurité.
Authentification Multi-facteurs
Mobile Device Management
Rights Management
Data. Loss Prevention
Anti-malware / Anti-spam
Détection d’anomalies
Rapports d’activité
Remédiation (reset password, lock account, wipe device)
Contrôle sur le partage extérieur
- ATP : Sécurité avancée Messagerie
- Sécurité avancée des données AIP
- MDM Microsoft Intune
- Azure Security Center
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Microsoft Technet France
Panorama des fonctionnalités disponibles et des nouveautés dans Azure IaaS comme les groupes de sécurité réseau, la centralisation des événements de sécurité ou le nouveau service de protection Azure Key Vault en partenariat avec Thalès.
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Microsoft Décideurs IT
Panorama des fonctionnalités disponibles et des nouveautés dans Azure IaaS comme les groupes de sécurité réseau, la centralisation des événements de sécurité ou le nouveau service de protection Azure Key Vault en partenariat avec Thalès.
Sécuriser votre chaîne d'information dans AzureNis
Gemalto est au cœur de l’évolution du monde numérique. Chaque jour, des entreprises et des gouvernements du monde entier placent en nous leur confiance pour les aider à offrir à leurs utilisateurs des services où facilité d’usage rime avec sécurité.
Dans le contexte précis de la sécurisation de l’identité et des accès, nous avons le plaisir de vous inviter à un événement que nous organisons avec Microsoft, VNext et NIS sur le sujet de sécurisation des accès aux services de Cloud Computing.
Lors de différents ateliers nous vous ferons découvrir nos solutions pour sécuriser les accès aux services cloud de votre entreprise pour vos employés en mobilité.
OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...Patrick Leclerc
Le concept de session est extrêmement important pour permettre aux applications Web de fournir une expérience personnalisée à ses utilisateurs. La session permet à l’utilisateur de ne pas avoir à faire transiger ses informations d’authentification à chaque requête, ce qui serait risqué. Par contre, la (mauvaise) gestion de la session ouvre la porte à plusieurs sortes de menaces. Durant cette présentation, quatre types d’attaques sur les sessions seront présentés ainsi que les bonnes pratiques pour se prémunir de ces problèmes. Entre autres, il sera question de « session hijacking » (différentes variantes), de « session fixation », de « session donation » et de « session puzzling ». D’autres sujets connexes seront aussi abordés comme le temps d’expiration des sessions et les complications liées à l’authentification de type authentification unique.
Votre système d'information lutte de plus en plus contre les attaques des hackers qui essaient de prendre le contrôle pour pirater, saboter ou encore voler vos données. Leurs méthodes ne cessent d'évoluer et ils ne manquent pas d’imagination pour contourner votre protection.
Vous pouvez compter sur votre DSI et RSSI pour prendre les mesures nécessaires visant à protéger vos systèmes et limiter les risques d'intrusion : mise en place de pare-feu outils de détection d'intrusion, antivirus, chiffrement des données, etc. Mais la sécurité est l'affaire de tous les collaborateurs de l'entreprise, qui doivent être sensibilisés et formés aux bonnes pratiques mais également aux conséquences d’un manquement à la sécurité. Enfin, chaque application doit être capable de se protéger elle même.
Everteam prend la sécurité de ses logiciels très au sérieux et l’intègre systématiquement dans sa roadmap :
Suivi des recommandations de l' OWASP
Des “pentests” (tests d’intrusion) avant chaque release
Des builds correctifs
Une documentation en ligne avec des préconisations
Du paramétrage applicatif à mettre en place
...
Vous l’aurez compris, la sécurité de votre logiciel Everteam nous tient à coeur.
Support de présentation de la conférence du 17 Novembre 2009, organisée chez Microsoft et animée par Blue acacia, portant sur les best practices en matière de sécurité sur le développement et l’hébergement de sites Internet.
Bonnes pratiques pour la gestion des opérations de sécurité AWSJulien SIMON
Modèle de sécurité partagée
Protection des données
Gestion des utilisateurs et des autorisations
Journalisation des données
Automatisation des vérifications
Prometheus is an open-source monitoring system that collects metrics from configured targets, stores time-series data, and allows users to query and visualize the data. It works by scraping metrics over HTTP from applications and servers, storing the data in its time-series database, and providing a UI and query language to analyze the data. Prometheus is useful for monitoring system metrics like CPU usage and memory as well as application metrics like HTTP requests and errors.
The document discusses various Kubernetes concepts including pods, deployments, services, ingress, labels, health checks, config maps, secrets, volumes, autoscaling, resource quotas, namespaces, Helm, and the Kubernetes Dashboard. Kubernetes is a container orchestration tool that manages container deployment, scaling, and networking. It uses pods to group containers, deployments to manage pods, and services for exposing applications.
Spring AOP enables Aspect-Oriented Programming in spring applications. In AOP, aspects enable the modularization of concerns such as transaction management, logging or security that cut across multiple types and objects (often termed crosscutting concerns).
Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.
Alternative - Complément au Tramway et 3ème lien de la ville de Québec Daniel Bedard
An update of this presentation has been done with Slide 16 that has been updated and 17 has been added, only.
Cette présentation a été ajournée avec la diapo 16 qui a été modifié et la 17 qui a été ajouté.
Voir ici
https://www.slideshare.net/slideshow/alternative-au-tramway-de-la-ville-de-quebec-rev1-sum-pdf/269691794
CDPQ Infra dévoile un plan de mobilité de 15 G$ sur 15 ans pour la région de Québec. Une alternative plus économique et rapide, ne serait-elle pas posssible?
- Valoriser les infrastructures ferroviaires du CN, en créant un Réseau Express Métropolitain (REM) plutôt qu'un nouveau tramway ou une combinaison des 2.
- Optimiser l'utilisation des rails pour un transport combiné des marchandises et des personnes, en accordant une priorité aux déplacements des personnes aux heures de pointes.
- Intégrer un téléphérique transrives comme 3ème lien urbain dédiés aux piétons et cyclistes avec correspondance avec le REM.
- Le 3 ème lien routier est repensé en intégrant un tunnel routier qui se prolonge avec le nouveau pont de l'Île d'Orléans et quelques réaménagemet de ses chausées.
https://www.linkedin.com/in/bedarddaniel/
English:
CDPQ Infra unveils a $15 billion, 15-year mobility plan for the Quebec region. Wouldn't a more economical and faster alternative be possible?
Leverage CN's railway infrastructure by creating a Metropolitan Express Network (REM) instead of a new tramway or a combination of both.
Optimize the use of rails for combined freight and passenger transport, giving priority to passenger travel during peak hours.
Integrate a cross-river cable car as a third urban link dedicated to pedestrians and cyclists, with connections to the REM.
Rethink the third road link by integrating a road tunnel that extends with the new Île d'Orléans bridge and some reconfiguration of its lanes.
https://www.linkedin.com/in/bedarddaniel/
2. Au niveau d’entreprise le risque de perdre les
données sensibles peut produire des
catastrophes en termes économiques ou
légaux, La sécurité est donc un aspect
important de développement d’une application.
2
3. Spring Security est un module incontournable
d’une application développée en Spring. Il
apporte tout le nécessaire pour sécuriser une
application et il a l’avantage d’être vraiment
personnalisable.
3
4. Quand on parle sécurité applicative, nous avons
deux notions essentielles : l’authentification et
les autorisations. Spring Security essaye
d’apporter une solution à ces deux
problématiques.
4
5. • Spring Security a pour objectif de proposer un
système complet de gestion de la sécurité.
• Ne dépendant pas d’un serveur d’applications
particulier (Tomcat, Jboss,,,)
• Permet de rendre la sécurité complètement
transversale et déclarative.
5
6. Pour configurer votre application vous pouvez
utiliser soit la configuration historique en XML
soit la Java Config. Cette dernière est plus
qu’encouragée avec les dernières versions de
Spring.
6
7. La première étape est de créer un bean de
configuration
7
un filtre de servlet (springSecurityFilterChain)
9. • Par défaut plusieurs fonctionnalités sont activées par
défaut
sécurisation de toutes le URL de l’application
• Génération d’un formulaire par défaut pour
s’authentifier
• Service pour se loguer et se déloguer
• Différentes fonctionnalités pour prévenir les attaques
cross domain,
• ...
9
10. Notre classe de configuration donnée en exemple propose
une configuration par défaut qui est la suivante.
L’URL /login (via un HTTP GET) affiche le formulaire de
login et l’URL /login (via une requête POST) et permet
d’authentifier l’utilisateur.
10
11. C’est bien beau mais j’aimerais bien proposer mon
propre formulaire pour m’authentifier. Rien de plus
simple:
11
12. Vous pouvez être moins restrictif ou plus restrictif sur la
définition des autorisations liées aux requêtes. Par
exemple :
12
13. Je viens de montrer comment sécuriser les requêtes
HTTP mais vous pouvez également restreindre les
droits sur vos méthodes.
13
14. Pour activer la sécurité via les annotations vous devrez
ajouter l’annotation @EnableGlobalMethodSecurity
dans votre classe de configuration.
14
15. 15
Spring Security traite des mécanismes
d'autorisation à base des cookies de session, ce type
de fonctionnement ne permet pas de partager facilement
un même compte pour s’authentifier sur plusieurs
plateformes distinctes et le serveur a l’obligation de
stocker l’état et les informations des sessions dans sa
mémoire vive.
20. • Cross Site Request Forgery CSRF: Transmettre
à un utilisateur authentifié une requête HTTP
falsifié qui pointe sur une action sans l’avoir
conscience. CSRF Synchronizer Token
• Cross Site Scripting XSS: Injecter du contenu
dans la page qui provoquant des actions sur
les navigateurs des visiteurs.( exécuter les
commandes Systems , redirection vers un autre site
Hameçonnage, afficher fenêtre authentification résultat sera
envoyé au attaquant ) HTTPonly et secure
20
22. 22
Les « JSON Web Token » ou JWT sont des jetons
générés par un serveur lors de l’authentification
d’un utilisateur sur une application Web, et qui sont
ensuite transmis au client.
Ils seront renvoyés avec chaque requête HTTP au
serveur, ce qui lui permettra d’identifier l’utilisateur.
29. • Dans les cookies (recommandé)
1. Les cookies sont utilisées avec HttpOnly ne sont accessible via JavaScript
et sont sécurisés contre XSS,
2. Les cookies sont vulnérables à une attaque CSRF
3. Un cookie ne peut être envoyé qu’au domaine dans lequel il est autorise,
4. Le stockage fournit au moins 4 Mo
• Dans local / session Storage du navigateur
1. Les donnes sont disponibles jusqu'à ce qu’elles soient explicitement
supprimées (LocalStorage)
2. Une fois l’utilisateur ferme la page les données stockées sont
supprimées (SessionStorage)
3. Accessible via JavaScript, cela signifie que JavaScript en cours
d’exécution aura accès au stockage XSS
4. Le stockage fournit au moins 1 Ko
29
35. 35
Les schémas d'authentification basés sur des jetons sont devenus
extrêmement populaires ces derniers temps, car ils offrent des
avantages importants par rapport aux sessions / cookies:
Pas besoin de protection CSRF
Meilleure intégration avec le mobile
Charge réduite sur le serveur d'autorisation
Pas besoin de magasin de session distribué
Plus vulnérable aux attaques XSS
Le jeton d'accès peut contenir des revendications
d'autorisation obsolètes (par exemple, lorsque
certains privilèges d'utilisateur sont révoqués)
36. 36
Les jetons JWT sont de plus en
plus présents sur les applications principalement Frontend et
là où il est nécessaire d’utiliser un même compte utilisateur
sur plusieurs plateformes. Du point de vue de la sécurité, les
jetons JWT sont relativement bien conçus mais présentent
quelques petits inconvénients qu’il faut bien comprendre et
appréhender avant de les implémenter dans une application.
De plus, il ne faut pas perdre de vue que la sécurité entière
du système d’authentification de l’application repose sur
l’algorithme utilisé ainsi que sur la clé privée qui servent à la
signature des jetons. Il faut donc s’assurer de choisir un
algorithme solide et une clé très forte ainsi que garder cette
dernière secrète.
Cet exposé parle de framework Spring : spring security avec jwt
Une ressource représente une entité protégée. Il peut s’agir d’un
fichier, d’une URL ou d’un objet.
Quand on parle sécurité applicative, nous avons deux notions essentielles : l’authentification (savoir qui je suis) et les autorisations (savoir ce que j’ai le droit de faire). Spring Security essaye d’apporter une solution à ces deux problématiques.
Spring Security permet de rendre la sécurité complètement transversale et déclarative.
Une application peut pratiquement être développée entièrement sans se soucier de la sécurité,
la configuration de celle-ci se faisant généralement dans un fichier dédié.
Lors du chargement de ce bean, un filtre de servlet (springSecurityFilterChain) est créé. C’est ce dernier qui orchestrera toute la sécurité (protection des URL, la validation login, mot de passe, ...) au sein de votre application.
Lors du chargement de ce bean, un filtre de servlet (springSecurityFilterChain) est créé. C’est ce dernier qui orchestrera toute la sécurité (protection des URL, la validation login, mot de passe, ...) au sein de votre application.
Lors du chargement de ce bean, un filtre de servlet (springSecurityFilterChain) est créé. C’est ce dernier qui orchestrera toute la sécurité (protection des URL, la validation login, mot de passe, ...) au sein de votre application.
Lors du chargement de ce bean, un filtre de servlet (springSecurityFilterChain) est créé. C’est ce dernier qui orchestrera toute la sécurité (protection des URL, la validation login, mot de passe, ...) au sein de votre application.
Lors du chargement de ce bean, un filtre de servlet (springSecurityFilterChain) est créé. C’est ce dernier qui orchestrera toute la sécurité (protection des URL, la validation login, mot de passe, ...) au sein de votre application.
Lors du chargement de ce bean, un filtre de servlet (springSecurityFilterChain) est créé. C’est ce dernier qui orchestrera toute la sécurité (protection des URL, la validation login, mot de passe, ...) au sein de votre application.
Lors du chargement de ce bean, un filtre de servlet (springSecurityFilterChain) est créé. C’est ce dernier qui orchestrera toute la sécurité (protection des URL, la validation login, mot de passe, ...) au sein de votre application.
Les jetons JWT quant à eux sont “stateless”, cela signifie que les informations des sessions ouvertes ne sont pas stockées côté serveur. Outre le gain de mémoire que cela procure, les jetons JWT peuvent être utiles si vous souhaitez utiliser les mêmes comptes utilisateurs pour plusieurs applications. Il suffira que les applications utilisent la même clé privée pour signer et vérifier les jetons JWT.
Pour ce faire, les informations contenues dans le jeton sont signées à l’aide d’une clé privée détenue par le serveur. Quand il recevra à nouveau le jeton, le serveur n’aura qu’à comparer la signature envoyée par le client et celle qu’il aura générée avec sa propre clé privée et à comparer les résultats. Si les signatures sont identiques, le jeton est valide.
Si un compte utilisateur doit être bloqué, il faudra attendre que le jeton expire pour que le blocage soit effectif
Si un utilisateur veut changer son mot de passe (par exemple en cas de piratage de son compte) et si l’authentification a été effectuée juste avant, le jeton généré grâce à l’ancien mot de passe sera toujours valide jusqu’à expiration
Pas de refresh de jeton possible dans l’implémentation standard, ce qui veux dire que lorsque le jeton expire, l’utilisateur doit s’authentifier à nouveau
Il n’est pas possible de détruire un jeton tout en respectant la notion de “stateless” des jetons JWT, car même si on supprime un jeton du navigateur, celui-ci est toujours valide jusqu’à expiration, donc pas de réelle déconnexion possible