Objectifs de la formation
Permettre aux développeurs et architectes de concevoir, mettre en œuvre et tester une stratégie de sécurité robuste dans une application Java basée sur Spring Boot, en maîtrisant les mécanismes d’authentification, d’autorisation et de protection contre les vulnérabilités courantes. Savoir adapter cette stratégie selon le type de client (web, SPA, API REST) et dans le cadre d’architectures distribuées (SSO, micro-services).Clientèle visée
Développeurs et architectes.Préalables
Ce cours demande une connaissance solide des bases de la programmation Java (principes de la programmation orientée objet, types génériques, annotations, expressions lambda), une habitude de travailler avec Eclipse ou IntelliJ.Formateurs
Gains pour les participants
• Choisir un protocole d'authentification;
• Apprécier les qualités d'un algorithme de hachage de mots de passe;
• Protéger une application web contre les attaques CSRF;
• Sécuriser une API REST avec JWT;
• Coupler une application web à un serveur OpenID Connect;
• Appliquer des règles d'autorisations;
• Tester une application sécurisée.
Architecture de la formation
Introduction
- Les modes d'authentification: basic, formulaire de login, session, jeton, kerberos.
- Présentation du bean SecurityFilterChain et des filtres qui le composent.
- Les beans créés automatiquement par Spring Boot.
- La représentation de l'identité de l'utilisateur: l'interface Principal.
Les attaques CSRF et XSS.
La déclaration d'un référentiel d'utilisateurs
- Les concepts: user, role, authority.
- Les interfaces UserManager et GroupManager.
- La déclaration d'un bean UserDetailsService pour répondre aux demandes d'authentification.
- Le choix d'un algorithme de hachage des mots de passe.
Mise en pratique: déclaration d'une base de données comme référentiel d'utilisateurs et de rôles.
La sécurité par session
- Les cookies comme moyens d'établir des sessions.
- La protection contre les attaques XSS et CSRF.
- Mise en place pour une API REST.
- Mise en place pour une IHM MVC.
- Stockage externalisé des informations de sessions pour rendre l'application stateless.
Mise en pratique: activation de la sécurité par session sur un frontend Spring MVC, protection contre les attaques CSRF.
La sécurité par jeton
- Présentation du standard JWT.
- Le bean JwtDecoder.
- L'émission et la signature des jetons: clés symétriques ou asymétriques.
- Couplage avec un serveur OpenID Connect.
- Points sensibles: révocations, gestion des rôles.
- Protection contre le vol des jetons par attaque XSS dans une single page application.
- Le pattern 'token relay' dans une architecture micro-services.
Mise en pratique: couplage de Spring avec un serveur OpenID Connect, application d'une stratégie de refus des jetons révoqués.
Autorisations
- Règles d'accès aux routes.
- Règles d'accès aux méthodes.
- Règles d'accès aux éléments d'une vue.
Mise en pratique: sécurisation des routes d'une application web et des pages d'un frontend MVC.
Les tests
- Test d'une méthode ou une API en tant qu'un utilisateur authentifié.
- Le rôle des SecurityMockMvcRequestPostProcessors.
Mise en pratique: utilisation de spring-security-test pour tester l'application sécurisée précédemment.
Détails pédagogiques
Méthode pédagogique
Explication, pour chaque concept, du problème qu'il prétend résoudre, Mise en pratique d'un concept immédiatement après qu'il a été présenté, Validation de chaque étape par exécution de tests unitaires, Exercice « fil rouge » pour obtenir en fin de cours une application complète, QCM en fin de chapitre pour s'assurer de l'acquisition des connaissances.
Type de cours
Formation privée en entreprise
Vous êtes plusieurs à vouloir suivre une formation en particulier dans votre entreprise? Si vous êtes plus de 8 personnes, nous pouvons nous déplacer à vos bureaux pour vous donner votre formation en privé. Contactez-nous pour plus de détails ou demandez-nous une soumission en ligne.
Demander une soumissionFormation privée en entreprise
Vous êtes plusieurs à vouloir suivre une formation en particulier dans votre entreprise? Si vous êtes plus de 8 personnes, nous pouvons nous déplacer à vos bureaux pour vous donner votre formation en privé. Contactez-nous pour plus de détails ou demandez-nous une soumission en ligne.
Demander une soumission