La parte de la seguridad siempre es la más difícil de resolver bien en las aplicaciones web. Afortunadamente, Symfony incluye un componente de seguridad cuyo funcionamiento se basa en las dos etapas habituales de autenticación y autorización.
La autenticación, que siempre se aplica en primer lugar, se basa en el uso de un firewall cuyo trabajo consiste en determinar la identidad del usuario a través de varios métodos (mediante la autenticación HTTP, un formulario de acceso, etc.).
Una vez que un usuario se autentica, la etapa de autorización determina si el usuario tiene acceso al recurso que solicita. Normalmente se asigna un rol a una URL, clase o método y si el usuario no dispone de ese rol, se le deniega el acceso.