Recherche…
Gestion de la sécurité
La sécurité faisait partie du côté obscur de la documentation de symfony, elle comportait un composant dédié nommé Security Component .
Ce composant est configuré dans le fichier security.yml du projet d'application principal.
La configuration par défaut est comme celle-ci:
# app/config/security.yml
security:
providers:
in_memory:
memory: ~
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
default:
anonymous: ~
Vous pouvez définir des pare-feu spécifiques pour restreindre l'accès à certaines URL à des rôles spécifiques en fonction d'une hiérarchie définie pour vos utilisateurs par un fournisseur et des encodeurs qui gèrent la sécurité du mot de passe.
Par exemple, si vous souhaitez créer un fournisseur personnalisé à partir de votre moteur de base de données, vous pouvez définir comme suit security.yml :
providers:
your_db_provider:
entity:
class: AppBundle:User
property: apiKey
Ceci est détaillé dans la documentation de symfony: Comment définir un UserProvider personnalisé et à partir de la base de données ou contre LDAP par exemple.
Après cela, vous pouvez définir un pare-feu pour restreindre explicitement certaines URL basées sur votre fournisseur utilisateur personnalisé (security.yml):
firewalls:
secured_area:
pattern: ^/admin
Ou avec contrôle d'accès :
access_control:
- { path: ^/admin/users, roles: ROLE_SUPER_ADMIN }
- { path: ^/admin, roles: ROLE_ADMIN }
Voir plus de documentation détaillée ici .
La meilleure façon de gérer les utilisateurs est d'utiliser FosUserBundle qui étend certaines fonctionnalités du framework.