Cómo funciona la seguridad:
autenticación y autorización
El sistema de seguridad de
Symfony se basa en identificar primero al usuario (autenticación) y comprobando
después si ese usuario tiene acceso al recurso solicitado (autorización).
Firewalls (autenticación)
El sistema de seguridad de
Symfony se activa cuando un usuario hace una petición a una URL que está
protegida por un firewall o cortafuegos. El trabajo del firewall consiste en
determinar si el usuario necesita estar autenticado, y si lo necesita, enviar
una respuesta al usuario para iniciar el proceso de autenticación.
Un firewall se activa cuando
la URL de una petición entrante concuerda con el valor de su opción de
configuración pattern. En este ejemplo el valor de pattern (^/) concuerda con
cualquier petición entrante. No obstante, el hecho de que el firewall esté
activado no significa que el navegador muestra la caja de login+contraseña para
todas las URL. Los usuarios pueden acceder por ejemplo a /foo sin que la
aplicación les pida que se autentiquen.
Ejemplo básico:
Autenticación HTTP
El componente de seguridad
se configura mediante el archivo de configuración principal de la aplicación. De
hecho, en la mayoría de las ocasiones lo único que tienes que hacer para
proteger tu aplicación es configurar una pocas opciones de configuración. La
siguiente configuración le dice a Symfony que proteja cualquier URL que
coincida con la expresión regular /admin/* y pida a los usuarios sus
credenciales mediante la autenticación básica de HTTP (es decir, mediante el
típico cuadro de diálogo que muestran los navegadores para introducir el
usuario y la contraseña)
Autenticación sin estado
Symfony2 utiliza por defecto
una cookie para persistir el contexto de seguridad del usuario. No obstante, si
utilizas certificados o la autenticación básica de HTTP, la persistencia no es
necesaria porque las credenciales se envían en cada petición. En estos casos,
no necesitas almacenar ninguna información entre peticiones y por eso puedes
activar la autenticación sin estado, lo que significa que Symfony2 no creará
ninguna cookie.
Autenticación digest HTTP
Los protocolos de
autenticación Digest funcionan de manera similar a la autenticación básica. El
servidor solicita la información de identificación, que es suministrada por el
usuario en la forma de un nombre de usuario y una contraseña. El servidor, a
continuación, compara las credenciales con lo que está en archivo, y siempre y
cuando coincidan, concederá el acceso. Es un escenario de inicio de sesión
sencillo. La diferencia primaria con la autenticación de HTTP con protocolo
Digest es que la conexión se realiza de una manera segura. Esto es debido a que
las contraseñas son "digeridas" y almacenadas en la base de datos de
usuario en un formulario cifrado. Nadie, ni siquiera el administrador, puede
abrir la base de datos y saber la contraseña al mirar la secuencia cifrada. De
esta manera, la integridad de la contraseña es mucho más segura, ya que sólo
puede ser leída por el servidor web.
Autenticación de cliente
HTTPS
HTTPS se logra cuando el
HTTP estándar es combinado con un Socket Layer Secure (SSL). Todo lo contenido
dentro del SSL opera en un circuito cerrado, sin ninguna interferencia
exterior. Esto permite que el navegador web verifique la legitimidad de cada
página que se encuentra en el sitio web mediante la lectura del Certificado de
Clave Pública (PKC o Criptografía asimétrica) del secure socket, y comparándolo
con el archivo guardado del certificado de seguridad del sitio. HTTPS es
ampliamente utilizado en sitios web de ecommerce o en cualquier lugar en el que
se accede a información confidencial. Esta forma de autenticación proporciona
un alto estándar de seguridad, porque cada operación de intercambio de
información entre el servidor y el navegador está cifrada y se envía a través
de un canal seguro.
No hay comentarios:
Publicar un comentario