✨ feat(ansible): Ajoute des headers de sécurité et limite la taille des requêtes.
✨ feat(Security): Active l'authentification à deux facteurs (2FA). ✨ feat(Account): Ajoute une entité et un formulaire pour les administrateurs. 🐛 fix(Security): Corrige la redirection après la connexion. ✨ feat(CRM): Ajoute une page d'administration des comptes administrateurs.
This commit is contained in:
@@ -1,14 +1,9 @@
|
||||
# config/packages/security.yaml
|
||||
security:
|
||||
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
|
||||
providers:
|
||||
# Appelle votre provider d'utilisateurs.
|
||||
# Ici, nous configurons un provider d'entité pour notre classe Account,
|
||||
# en spécifiant 'username' comme propriété d'identification.
|
||||
app_account_provider:
|
||||
entity:
|
||||
class: App\Entity\Account
|
||||
property: email # Utilise le champ 'username' de votre entité Account pour l'authentification
|
||||
property: email
|
||||
|
||||
firewalls:
|
||||
dev:
|
||||
@@ -17,32 +12,40 @@ security:
|
||||
|
||||
main:
|
||||
lazy: true
|
||||
provider: app_account_provider # Utilise le provider que nous avons défini ci-dessus
|
||||
provider: app_account_provider
|
||||
user_checker: App\Security\UserChecker
|
||||
|
||||
# --- AJOUT DE LA CONFIGURATION 2FA ---
|
||||
two_factor:
|
||||
auth_form_path: 2fa_login # Route d'affichage du formulaire
|
||||
check_path: 2fa_login_check # Route de soumission du code
|
||||
# -------------------------------------
|
||||
|
||||
form_login:
|
||||
login_path: app_home # La route vers votre formulaire de connexion (GET)
|
||||
check_path: app_home # L'URL où le formulaire POST sera soumis
|
||||
enable_csrf: true # Active la protection CSRF
|
||||
csrf_token_id: authenticate # ID du jeton CSRF (doit correspondre à celui dans votre Twig)
|
||||
login_path: app_home
|
||||
check_path: app_home
|
||||
enable_csrf: true
|
||||
csrf_token_id: authenticate
|
||||
|
||||
entry_point: App\Security\AuthenticationEntryPoint
|
||||
|
||||
custom_authenticator:
|
||||
- App\Security\LoginFormAuthenticator
|
||||
- App\Security\KeycloakAuthenticator
|
||||
logout:
|
||||
target: app_logout
|
||||
|
||||
# Configuration des algorithmes de hachage des mots de passe.
|
||||
# Symfony choisira automatiquement le meilleur algorithme par défaut si non spécifié,
|
||||
# mais vous pouvez le configurer explicitement.
|
||||
logout:
|
||||
path: app_logout # Assurez-vous d'utiliser 'path'
|
||||
target: app_home
|
||||
|
||||
password_hashers:
|
||||
App\Entity\Account: 'auto' # 'auto' sélectionne le meilleur algorithme disponible (recommandé)
|
||||
# Ou pour spécifier bcrypt explicitement :
|
||||
# App\Entity\Account:
|
||||
# algorithm: bcrypt
|
||||
App\Entity\Account: 'auto'
|
||||
|
||||
role_hierarchy:
|
||||
ROLE_ROOT: [ROLE_ADMIN] #
|
||||
ROLE_ROOT: [ROLE_ADMIN]
|
||||
|
||||
access_control:
|
||||
- { path: ^/admin, roles: [ROLE_ADMIN] }
|
||||
- { path: ^/, roles: PUBLIC_ACCESS } # Toutes les autres pages nécessitent une authentification complète
|
||||
# Permettre l'accès aux pages 2FA même si on n'est pas encore pleinement "ROLE_ADMIN"
|
||||
- { path: ^/2fa, roles: PUBLIC_ACCESS }
|
||||
|
||||
- { path: ^/crm, roles: [ROLE_ADMIN] }
|
||||
- { path: ^/, roles: PUBLIC_ACCESS }
|
||||
|
||||
Reference in New Issue
Block a user