SlideShare une entreprise Scribd logo
1
Réalisé par: Lhouceine OUHAMZA
Spring Security avec Jwt
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
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
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
• 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
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
La première étape est de créer un bean de
configuration
7
un filtre de servlet (springSecurityFilterChain)
On peut personnaliser les choses
8
• 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
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
C’est bien beau mais j’aimerais bien proposer mon
propre formulaire pour m’authentifier. Rien de plus
simple:
11
Vous pouvez être moins restrictif ou plus restrictif sur la
définition des autorisations liées aux requêtes. Par
exemple :
12
Je viens de montrer comment sécuriser les requêtes
HTTP mais vous pouvez également restreindre les
droits sur vos méthodes.
13
Pour activer la sécurité via les annotations vous devrez
ajouter l’annotation @EnableGlobalMethodSecurity
dans votre classe de configuration.
14
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.
16
17
18
19
• 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
21
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.
23
24
• Contient les informations d’utilisateur (claims -
revendications)
25
26
27
28
• 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
30
31
32
33
34
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
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.
37

Contenu connexe

Tendances

Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
Antoine Rey
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Ippon
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
Lhouceine OUHAMZA
 
Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1Tarek MOHAMED
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
neuros
 
OAuth2 and Spring Security
OAuth2 and Spring SecurityOAuth2 and Spring Security
OAuth2 and Spring Security
Orest Ivasiv
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
Syrine Ben aziza
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
ENSET, Université Hassan II Casablanca
 
Intégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsIntégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec Jenkins
Kokou Gaglo
 
Cahier des charges site internet
Cahier des charges site internetCahier des charges site internet
Cahier des charges site internet
EPC Familia
 
spring-api-rest.pdf
spring-api-rest.pdfspring-api-rest.pdf
spring-api-rest.pdf
Jaouad Assabbour
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 
Spring Security 5
Spring Security 5Spring Security 5
Spring Security 5
Jesus Perez Franco
 
Spring tutorial
Spring tutorialSpring tutorial
Spring tutorial
Phuong Le
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
Ippon
 
Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuelles
Xavier Kress
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVCNathaniel Richand
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
ENSET, Université Hassan II Casablanca
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
 

Tendances (20)

Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
OAuth2 and Spring Security
OAuth2 and Spring SecurityOAuth2 and Spring Security
OAuth2 and Spring Security
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Sécurité des applications web
Sécurité des applications webSécurité des applications web
Sécurité des applications web
 
Intégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsIntégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec Jenkins
 
Cahier des charges site internet
Cahier des charges site internetCahier des charges site internet
Cahier des charges site internet
 
spring-api-rest.pdf
spring-api-rest.pdfspring-api-rest.pdf
spring-api-rest.pdf
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Spring Security 5
Spring Security 5Spring Security 5
Spring Security 5
 
Spring tutorial
Spring tutorialSpring tutorial
Spring tutorial
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
 
Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuelles
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 

Similaire à Systemes authentification

OWASP TOP 10 Proactive
OWASP TOP 10 ProactiveOWASP TOP 10 Proactive
OWASP TOP 10 Proactive
Abdessamad TEMMAR
 
Webinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme ThéméeWebinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme Thémée
Marie Tapia
 
Chp5 - Sécurité des Services
Chp5 - Sécurité des ServicesChp5 - Sécurité des Services
Chp5 - Sécurité des Services
Lilia Sfaxi
 
Tuto atelier securisation_site_web
Tuto atelier securisation_site_webTuto atelier securisation_site_web
Tuto atelier securisation_site_web
sahar dridi
 
Sécurité informatique mobile cloud astoine maroc francais
Sécurité informatique mobile cloud astoine maroc francaisSécurité informatique mobile cloud astoine maroc francais
Sécurité informatique mobile cloud astoine maroc francais
Astoine.com "Gold Certified Microsoft Cloud Technology IT"​ Formation et Conseil - Maroc
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Asma Messaoudi
 
La sécurité des applications avec ESAPI
La sécurité des applications avec ESAPILa sécurité des applications avec ESAPI
La sécurité des applications avec ESAPI
Takfarinas KENOUCHE
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Microsoft Technet France
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Microsoft Décideurs IT
 
LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)
Clément OUDOT
 
Sécuriser votre chaîne d'information dans Azure
Sécuriser votre chaîne d'information dans AzureSécuriser votre chaîne d'information dans Azure
Sécuriser votre chaîne d'information dans Azure
Nis
 
OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...
OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...
OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...
Patrick Leclerc
 
070219 Webinar Sensibilisation Sécurité Logiciel Everteam
070219 Webinar Sensibilisation Sécurité Logiciel Everteam070219 Webinar Sensibilisation Sécurité Logiciel Everteam
070219 Webinar Sensibilisation Sécurité Logiciel Everteam
Everteam
 
La Sécurité Sur Le Web
La Sécurité Sur Le WebLa Sécurité Sur Le Web
La Sécurité Sur Le Web
Groupe Revolution 9
 
Securite web is_ima
Securite web is_imaSecurite web is_ima
Securite web is_ima
Blidaoui Abdelhak
 
Bonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWSBonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWS
Julien SIMON
 
chap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdfchap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdf
depinfo
 
Comment securiser votre annuaire Active Directory contre les attaques de malw...
Comment securiser votre annuaire Active Directory contre les attaques de malw...Comment securiser votre annuaire Active Directory contre les attaques de malw...
Comment securiser votre annuaire Active Directory contre les attaques de malw...
Sylvain Cortes
 

Similaire à Systemes authentification (20)

OWASP TOP 10 Proactive
OWASP TOP 10 ProactiveOWASP TOP 10 Proactive
OWASP TOP 10 Proactive
 
Webinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme ThéméeWebinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme Thémée
 
Chp5 - Sécurité des Services
Chp5 - Sécurité des ServicesChp5 - Sécurité des Services
Chp5 - Sécurité des Services
 
Tuto atelier securisation_site_web
Tuto atelier securisation_site_webTuto atelier securisation_site_web
Tuto atelier securisation_site_web
 
Sécurité informatique mobile cloud astoine maroc francais
Sécurité informatique mobile cloud astoine maroc francaisSécurité informatique mobile cloud astoine maroc francais
Sécurité informatique mobile cloud astoine maroc francais
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02
 
La sécurité des applications avec ESAPI
La sécurité des applications avec ESAPILa sécurité des applications avec ESAPI
La sécurité des applications avec ESAPI
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
 
LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)
 
Sécuriser votre chaîne d'information dans Azure
Sécuriser votre chaîne d'information dans AzureSécuriser votre chaîne d'information dans Azure
Sécuriser votre chaîne d'information dans Azure
 
OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...
OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...
OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis...
 
070219 Webinar Sensibilisation Sécurité Logiciel Everteam
070219 Webinar Sensibilisation Sécurité Logiciel Everteam070219 Webinar Sensibilisation Sécurité Logiciel Everteam
070219 Webinar Sensibilisation Sécurité Logiciel Everteam
 
La Sécurité Sur Le Web
La Sécurité Sur Le WebLa Sécurité Sur Le Web
La Sécurité Sur Le Web
 
Spring security
Spring securitySpring security
Spring security
 
Securite web is_ima
Securite web is_imaSecurite web is_ima
Securite web is_ima
 
Bonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWSBonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWS
 
chap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdfchap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdf
 
Comment securiser votre annuaire Active Directory contre les attaques de malw...
Comment securiser votre annuaire Active Directory contre les attaques de malw...Comment securiser votre annuaire Active Directory contre les attaques de malw...
Comment securiser votre annuaire Active Directory contre les attaques de malw...
 
Solution standard de compensation appliquée à une architecture e business séc...
Solution standard de compensation appliquée à une architecture e business séc...Solution standard de compensation appliquée à une architecture e business séc...
Solution standard de compensation appliquée à une architecture e business séc...
 

Plus de Lhouceine OUHAMZA

Présentation sur internet.pptx
Présentation sur internet.pptxPrésentation sur internet.pptx
Présentation sur internet.pptx
Lhouceine OUHAMZA
 
WEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWSWEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWS
Lhouceine OUHAMZA
 
Prometheus and Grafana
Prometheus and GrafanaPrometheus and Grafana
Prometheus and Grafana
Lhouceine OUHAMZA
 
Kubernetes
KubernetesKubernetes
Kubernetes
Lhouceine OUHAMZA
 
Scrum course
Scrum courseScrum course
Scrum course
Lhouceine OUHAMZA
 
Jenkins
JenkinsJenkins
Functional programming
Functional programmingFunctional programming
Functional programming
Lhouceine OUHAMZA
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
Lhouceine OUHAMZA
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)
Lhouceine OUHAMZA
 

Plus de Lhouceine OUHAMZA (9)

Présentation sur internet.pptx
Présentation sur internet.pptxPrésentation sur internet.pptx
Présentation sur internet.pptx
 
WEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWSWEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWS
 
Prometheus and Grafana
Prometheus and GrafanaPrometheus and Grafana
Prometheus and Grafana
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Scrum course
Scrum courseScrum course
Scrum course
 
Jenkins
JenkinsJenkins
Jenkins
 
Functional programming
Functional programmingFunctional programming
Functional programming
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)
 

Dernier

Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
Institut de l'Elevage - Idele
 
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Institut de l'Elevage - Idele
 
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Alternative - Complément  au Tramway et 3ème lien de la ville de Québec  Alternative - Complément  au Tramway et 3ème lien de la ville de Québec
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Daniel Bedard
 
Présentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptxPrésentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptx
khalilbatariagro
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
imed53
 
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
sieousse95
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
Institut de l'Elevage - Idele
 

Dernier (7)

Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
 
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
 
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Alternative - Complément  au Tramway et 3ème lien de la ville de Québec  Alternative - Complément  au Tramway et 3ème lien de la ville de Québec
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
 
Présentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptxPrésentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptx
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
 
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
 

Systemes authentification

  • 1. 1 Réalisé par: Lhouceine OUHAMZA Spring Security avec Jwt
  • 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)
  • 8. On peut personnaliser les choses 8
  • 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.
  • 16. 16
  • 17. 17
  • 18. 18
  • 19. 19
  • 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
  • 21. 21
  • 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.
  • 23. 23
  • 24. 24
  • 25. • Contient les informations d’utilisateur (claims - revendications) 25
  • 26. 26
  • 27. 27
  • 28. 28
  • 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
  • 30. 30
  • 31. 31
  • 32. 32
  • 33. 33
  • 34. 34
  • 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.
  • 37. 37

Notes de l'éditeur

  1.  Cet exposé parle de framework Spring : spring security avec jwt
  2. Une ressource représente une entité protégée. Il peut s’agir d’un fichier, d’une URL ou d’un objet.
  3. 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. 
  4. 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é.
  5. 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. 
  6. 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. 
  7. 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. 
  8. 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. 
  9. 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. 
  10. 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. 
  11. 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. 
  12. 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.
  13. 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.
  14. 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