Desglosando el componente de seguridad
-
Upload
joan-teixido -
Category
Documents
-
view
1.334 -
download
0
description
Transcript of Desglosando el componente de seguridad
![Page 1: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/1.jpg)
20-22 junio 2013 Madrid
![Page 2: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/2.jpg)
![Page 3: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/3.jpg)
Joan TeixidóDesarrollador backend en Onfan.com
![Page 4: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/4.jpg)
![Page 5: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/5.jpg)
gracias a mi familia...
![Page 6: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/6.jpg)
![Page 7: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/7.jpg)
gracias a...
@kriswallsmith
![Page 8: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/8.jpg)
¿Por qué?
![Page 9: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/9.jpg)
Objetivo
• Entender el flujo del componente de seguridad
• Conocer cuales son los protagonistas que intervienen en todo el proceso
![Page 10: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/10.jpg)
![Page 11: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/11.jpg)
autentificación <->
autorización
![Page 12: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/12.jpg)
kernel.request kernel.responsekernel.controller kernel.view
security listener
HttpKernel
kernel.exceptionsecurity listener
![Page 13: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/13.jpg)
FirewallEs solo un listener que
escucha al kernel.request
![Page 14: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/14.jpg)
routerfirewall
etc..
kernel.request
![Page 15: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/15.jpg)
listener A
firewall
listener Blistener C
AuthenticationProvider
Authentication Provider Manager
User Provider
![Page 16: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/16.jpg)
Firewall & FirewallMap
![Page 17: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/17.jpg)
Firewall
![Page 18: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/18.jpg)
firewall
kernel.request
listeners
![Page 19: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/19.jpg)
FirewallMap
• Contiene mapa de requestMatcher, colección de listeners y una exception listener
• Devuelve la colección de listeners y excepción en caso de coincidir la ruta
![Page 20: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/20.jpg)
Firewall
• Escucha al kernel.request
• Mapea las rutas que requieren del component de seguridad
• Ejecuta una batería de listeners si coincide la ruta del request
• Añade al dispatcher un exceptionListener
![Page 21: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/21.jpg)
listener A
firewall
listener Blistener C
AuthenticationProvider
Authentication Provider Manager
User Provider
RSecurity Context
![Page 22: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/22.jpg)
Security ListenersListeners asociados al firewallMap.
Implementan ListenerInterface.
Contienen el método:
function handle(GetResponseEvent $event) { }
![Page 23: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/23.jpg)
Listeners
![Page 24: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/24.jpg)
Security Listeners
![Page 25: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/25.jpg)
¿Qué tienen en común?
¿Qué más pueden hacer?
¿Cuándo se ejecutan?
![Page 26: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/26.jpg)
Security Listeners• Context Listener -> se ocupa de la persistencia en sesión
• UsernamePasswordFormAuthenticationListener -> loguea user
• AnonymousAuthenticationListener -> crea token anonimo
• AccesListener -> maneja el acceso (autorización)
• BasicAuthenticationListener -> login por basic headers
• SwitchUserListener
• ChannelListener
• LogoutListener
• RememberMeListener
![Page 27: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/27.jpg)
listener
firewall
authenticate
token
security context
• Tienen estados: autenticado /no autenticado
• Guarda la información del usuario
• Guarda los roles de los usuarios
• Almacena el token
• Capacidad para autenticar
• Puede autorizar un token
token
security context
![Page 28: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/28.jpg)
listener A
firewall
listener B
AuthenticationProviderManager
listener C
![Page 29: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/29.jpg)
Authentication Manager
![Page 30: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/30.jpg)
listener A
firewall
listener Blistener C
AuthenticationProvider
Authentication Provider Manager
![Page 31: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/31.jpg)
User Authentication Provider
![Page 32: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/32.jpg)
listener A
firewall
listener Blistener C
AuthenticationProvider
Authentication Provider Manager
User Provider
![Page 33: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/33.jpg)
User Provider
![Page 34: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/34.jpg)
Authentication Manager• LLama al authentication provider con el token sólo si el
token sirve para ese provider
• Maneja las excepciones
listener
manager
User Authentication Provider• LLama al user provider y obtiene el usuario.
• Valida el usuario (chequea password y otros controles)
• Marca el token como autenticado y lo devuelve
• Busca el usuario en el repositorio de usuarios (BD, file, service)
User Provider
![Page 35: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/35.jpg)
listener A
firewall
listener Blistener C
AuthenticationProvider
Authentication Provider Manager
User Provider
![Page 36: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/36.jpg)
Autorización
• Proceso por el que damos permiso a un usuario autenticado a acceder a un determinado recurso
![Page 37: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/37.jpg)
listener Afirewall
Autorización
listener C
Access Decision Manager VotersAccess MapAccess Listener
![Page 38: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/38.jpg)
Access Listener
![Page 39: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/39.jpg)
Access Map
![Page 40: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/40.jpg)
Access Decision Manager
![Page 41: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/41.jpg)
Voters
![Page 42: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/42.jpg)
¿Tipos de voters?
Acl Voter
Authenticated Voter
Role Voter
![Page 43: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/43.jpg)
listener Afirewall
Autorización
listener C
Access Decision Manager VotersAccess MapAccess Listener
![Page 44: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/44.jpg)
nuevo en symfony 2.4
![Page 45: Desglosando el componente de seguridad](https://reader035.fdocuments.co/reader035/viewer/2022081519/55883fb2d8b42a9e1a8b4587/html5/thumbnails/45.jpg)
finhttps://joind.in/8836
http://symfony.com/video/1/security-in-real-life/English
http://www.slideshare.net/kriswallsmith/love-and-loss-a-symfony-security-play