desymfony 2011 - tutorial #4: formularios y seguridad

31
Tutorial #4 Formularios y Seguridad. Tutorial #4 Formularios y Seguridad. Javier López JORNADAS SYMFONY 2011 1-3 JULIO, CASTELLÓN DESYMFONY.COM

Upload: rightster

Post on 19-Jun-2015

17.999 views

Category:

Technology


1 download

DESCRIPTION

Introducción a la creación de formularios en Symfony2 así como el nuevo componente de Seguridad: security.yml, creación de página de login, etc ...

TRANSCRIPT

Page 1: deSymfony 2011 - Tutorial #4: Formularios y seguridad

Tutorial #4 Formularios y Seguridad.Tutorial #4 Formularios y Seguridad.

Javier López

JORNADAS SYMFONY 2011 1-3 JULIO, CASTELLÓN DESYMFONY.COM

Page 2: deSymfony 2011 - Tutorial #4: Formularios y seguridad
Page 3: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Importante

Algunas partes de este presentación no se pueden entender bien sin ver el vídeo de su impartición

Puedes ver el vídeo enhttp://bit.ly/sf-tutorial4

Puedes descargar el código de partida para la presentación enhttps://github.com/desymfony/desymfony/tree/tutorial4

Page 4: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Javier LópezJavier López

● Socio fundador de Flai Webnected S.L (www.flai.es)

● Programador en symfony desde symfony 1.0, allá por 2008

● Zend Certified Engineer

● Co-organizador de Desymfony

Quién es este tipo

Page 5: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

FormulariosFormularios

Page 6: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Formularios

● Más de dos años de desarrollo

● Principal razón del retraso de la versión 2

● Librería escrita desde 0

● Olvida casi todo lo que conocias de symfony 1.4

Algunas apuntes

Page 7: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Formularios ¿Qué vamos a hacer?

Page 8: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Formularios Qué vamos a hacer

● Crearemos la pantalla de registro = Ruta + Controlador + Vista

● Crearemos la clase del formulario de registro

Page 9: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

SeguridadSeguridad

Page 10: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Seguridad Algunas apuntes

Las 4 palabras mágicas para entender la seguridad:

● Firewalls (Autenticación)

● Access Control (Autorización)

● Providers (Dónde están mi usuarios)

● Encoders (Cómo se procesan las contraseñas)

Page 11: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Seguridad El proceso en imágenes

/

Cli

ent e

/

Fir

ewal

l

Ap

lica c

ión

Acc

ess

Co

ntr

ol

Autenticación Autorización

Page 12: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Seguridad Accediendo a una URL no protegida

/

Cli

ent e

/

Fir

ewal

l

Ap

lica c

ión

Acc

ess

Co

ntr

ol

Autenticación Autorización

Soy anónimoAnónimos

bienvenidos!No hay reglas

Para /

Page 13: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Seguridad Accediendo a una URL protegida

/perfil

Cli

ent e

/

Fir

ewal

l

Ap

lica c

ión

Acc

ess

Co

ntr

ol

Autenticación Autorización

Soy anónimoAnónimos

bienvenidos!Debes ser

usuario registrado

Lo sientohaz login

Page 14: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Seguridad Accediendo a una URL protegida sin permisos

/admin

Cli

ent e

/

Fir

ewal

l

Ap

lica c

ión

Acc

ess

Co

ntr

ol

Autenticación Autorización

Usuarioregistrado

BienvenidoJavier L.

Deber seradministrador

Lo siento,no puedes

pasar

Page 15: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:    firewalls: {}    access_control: {}    providers: {}    encoders:  {}

app/config/security.yml

Page 16: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:    secured_area:      pattern:    ^/      anonymous:  ~      form_login:        login_path:  /login        check_path:  /check      logout:        path:   /logout        target: /      

Definimos un único firewall para la aplicación.

Page 17: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:    secured_area:      pattern:    ^/      anonymous:  ~      form_login:        login_path:  /login        check_path:  /check      logout:        path:   /logout        target: /      

Cobertura de nuestro firewall. Todas las URLs

Page 18: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:    secured_area:      pattern:    ^/      anonymous:  ~      form_login:        login_path:  /login        check_path:  /check      logout:        path:   /logout        target: /      

Aceptamos usuarios anónimos.

Page 19: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:    secured_area:      pattern:    ^/      anonymous:  ~      form_login:        login_path:  /login        check_path:  /check      logout:        path:   /logout        target: /      

Método de autenticación, formulario. Existen otras opciones.

Page 20: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:    secured_area:      pattern:    ^/      anonymous:  ~      form_login:        login_path:  /login        check_path:  /check      logout:        path:   /logout        target: /      

La ruta para acceder al formulario de login

Page 21: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:    secured_area:      pattern:    ^/      anonymous:  ~      form_login:        login_path:  /login        check_path:  /check      logout:        path:   /logout        target: /      

Ruta para comprobar la autenticación del usuario. El formulario de login se envía a estaruta.

Page 22: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:    secured_area:      pattern:    ^/      anonymous:  ~      form_login:        login_path:  /login        check_path:  /check      logout:        path:   /logout        target: /      

Información para “desautenticar” al usuario

Page 23: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:   ## codigo anterior

  access_control:    ­ { path: ^/perfil        , roles: ROLE_USER }      

La URL “/perfil” sólo es accesible al ROLE_USER

Page 24: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:  access_control:       providers:    main:      entity:        class: Desymfony\DesymfonyBundle\Entity\Usuario        property: email

Nombre de proveedor de usuarios. Podré tener más: memoria, base de datos, xml, ...

Page 25: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:  access_control:       providers:    main:      entity:        class: Desymfony\DesymfonyBundle\Entity\Usuario        property: email

Nuestro proveedor es una entidad.

Page 26: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:  access_control:       providers:    main:      entity:        class: Desymfony\DesymfonyBundle\Entity\Usuario        property: email

Entidad responsable de proveernos de usuarios.Para poder comportarse como tal deberá implementar UserInterface

Page 27: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:  access_control:       providers:    main:      entity:        class: Desymfony\DesymfonyBundle\Entity\Usuario        property: email

Propiedad que servirá como nombre de usuario

Page 28: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

security:  firewalls:  access_control:       providers:  encoders:    Desymfony\DesymfonyBundle\Entity\Usuario: sha512  

Podemos definir encoders distintos para cada tipo de usuario.

Page 29: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

security.yml

Para saber más sobre todas las opciones de configuración

http://symfony.com/doc/2.0/reference/configuration/security.html

Security Configuration Reference

Page 30: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Seguridad Qué vamos a hacer

● Crearemos la página de login para que el usuario se pueda autenticar

● Modificaremos la entidad Usuario para que sea un proveedor de usuarios válido

Page 31: deSymfony 2011 - Tutorial #4: Formularios y seguridad

DESYMFONY.COM

Gracias.

@loalf

github.com/loalf

www.loalf.com