Symfony también define varias formas de configurar la autorización, es decir, de restringir el acceso de los usuarios a los recursos. En concreto, puedes hacer uso de la configuración access_control en el archivo security.yml, de la anotación @Security y del método isGranted() del servicio security.context.

Buena Práctica

  • Utiliza access_control para proteger secciones completas de tu sitio web.
  • Utiliza la anotación @Security para proteger recursos individuales.
  • Utiliza el servicio security.context cuando la lógica relacionada con la seguridad sea más compleja.

Al margen de lo anterior, existen otras formas de centralizar toda la lógica relacionada con la seguridad, como por ejemplo los security voters y las ACL o listas de control de acceso.

Buena Práctica

  • Utiliza un security voter para definir las restricciones de seguridad de los recursos de la aplicación.
  • Utiliza una ACL cuando definas restricciones de seguridad granulares en las que cada objeto define el acceso permitido para cada usuario.