Spring Security Flashcards

1
Q

Quelles sont les principales options de Spring Security pour stocker les utilisateurs ?

A

Le service UserDetails peut être configuré pour travailler:

  • In-Memory
  • JDBC
  • LDAP
  • Custom
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quel est le principe d’une attaque CSRF ?

A

Soumettre une requête non-voulue par l’utilisateur (qui croit par exemple être sur un site qu’il connait bien) à une application sur laquelle l’utilsateur a certains privilèges d’accès.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Comment se protéger d’une attaque CSRF ?

A
  1. Le serveur génère un token CSRF
  2. Ce token est inclus (caché) dans les formulaires de l’application
  3. Il est renvoyé au serveur lors de la soumission du formulaire
  4. Le serveur n’accepte la requête que si le token transmis correspond à celui qu’il a généré.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Citer différents moyens d’obtenir l’utilisateur courant avec Spring Security.

A
  • Quel que soit l’endroit, on peut utiliser SecurityContextHolder.getContext() pour obtenir une Authentication
  • Dans un contrôleur, on peut annoter un paramètre de méthode avec @AuthenticationPrincipal
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quel est le principe de l’authentification avec Spring Security ?

A
  • Principal: identifie l’utilsateur
  • Credentials: souvent un mot de passe
  • Authorities; permissions de haut niveau accordées à l’utilisateur (rôles, scopes)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Comment configurer Spring Security ?

A
  1. Créer une classe qui implémente WebSecurityConfigurer (le plus simple est d’étendre WebSecurityConfigurerAdapter)
  2. L’annoter avec @EnableWebSecurity
  3. Surcharger au besoin les méthodes:
    • configure(WebSecurity): configuration de la chaine de filtres de sécurité
    • configure(HttpSecurity): comment les requêtes sont sécurisées par les intercepteurs
    • configure(AuthenticationManagerBuilder): configuration du service UserDetails
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Comment sécuriser les méthodes avec Spring Security ?

A
  • Sur la base de rôles:
    • @Secured (Spring)
    • @RolesAllowed (JSR250)
  • Sur la base de l’évaluation d’une expression:
    • @PreAuthorize / @PostAuthorize: restreint l’accès (sur les entrées ou les sorties, avant ou après l’invocation)
    • @PreFilter / @PostFilter: filtre les entrées ou les sorties de la méthode
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Expliquer le but de TLS

A
  • Etablir une connexion chiffrée de manière symétrique
  • Garantir l’identité des différentes parties
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Expliquer le chiffrement symétrique

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qu’esr-ce-qu-un certificat?

A
  • Un fichier texte
  • Lisible par des outils tels que OpenSSL
  • Contenant des informations telles que
    • autorité de confiance
    • validité
    • propriétaire
    • clé publique
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Expliquer le chiffrement asymétrique

A
  • On génère une paire clé publique / privée
  • On chiffre le message avec la clé publique
  • Il faut la clé privée pour déchiffrer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Décrire le handshake TLS

A
  1. Client Hello
  2. Server Hello
  3. Client key exchange & client finish
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quels sont les deux objectifs de la sécurité ?

A
  • Authentification
  • Autorisation / Contrôle d’accès
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quel est le principe de l’authentification avec Spring Security ?

A

La stratégie AuthenticationManager prend le principal Authentication en paramètre et peut retourner

  • Un objet Authentication en cas de succès
  • Une exception AuthenticationException en cas d’échec
  • null en cas de doute
How well did you know this?
1
Not at all
2
3
4
5
Perfectly