Índice

AutorizaciónAutorizaciones

Hasta aquí, hemos aprendido a autenticar usuarios, a través de los diferentes métodos y diferentes proveedores de usuarios. Conocemos la representación de un usuario y sabemos que tiene roles. Ahora vamos a ver cómo securizar los recursos.

1. Los roles, en el núcleo del proceso

El principio de la autorización es simple: sus usuarios tienen roles y el acceso a ciertos recursos se puede limitar a ciertos roles. Por lo tanto, los roles son el elemento central del proceso de autorización. Antes de continuar, es necesario presentar nuevos roles.

Si un usuario está detrás de uno de los cortafuegos que ha definido (en app/config/security.yml), obligatoriamente tiene al menos uno de los siguientes roles:

  • IS_AUTHENTICATED_ANONYMOUSLY: el usuario no está autenticado (está detrás de un cortafuegos que autoriza los usuarios anónimos).

  • IS_AUTHENTICATED_REMEMBERED: el usuario está autenticado gracias a la funcionalidad “recordarme”.

  • IS_AUTHENTICATED_FULLY: el usuario está autenticado en la consulta o sesión actual.

No tiene que gestionar estos roles en el método getRoles() de su objeto de usuario, porque se generan automáticamente por Symfony.

2. Comprobar el rol del usuario

Para securizar una de sus acciones, nunca se debe basar en los roles devueltos por el objeto de usuario. Los roles que acabamos de presentar (IS_AUTHENTICATED_*), por ejemplo no están presentes a nivel del objeto de usuario, porque Symfony ...