lunes, 6 de abril de 2015

AUTENTICACION

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