Autenticación HTTP CI-2454 Servicios Web Prof. Braulio José Solano Rojas ECCI, UCR Autenticación básica HTTP ● La implementación de autenticación básica HTTP es la técnica más simple para forzar controles de acceso a recursos web porque no requiere de cookies, identificador de sesión y páginas de acceso. En su lugar la autenticación básica HTTP utiliza encabezados HTTP normales que implican que ningún handshake debe ser realizado con anticipación. Autenticación básica HTTP ● Servidor: ● Texto claro. Base64. ● Debe ser enviado con el 401. ● Encabezado: – WWW-Authenticate: Basic realm="nmrs_m7VKmomQ2YM3:" Autenticación básica HTTP ● ● Cliente: Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== Autenticación HTTP Básica Autenticación HTTP Digest ● http://evertpot.com/223/ Autenticación HTTP en un servicio web RESTful en Glasfish Nuevo dominio en Glassfish ● ● En la interfaz administrativa de Glassfish que usualmente se encuentra en <scheme>://<servidor>:4848/ se debe ir a Configuraciones > server-config > Seguridad > Dominios y crear un nuevo dominio. En el dominio podemos configurar una tabla de usuarios asociada a nuestros recursos JDBC. Nuevo dominio en Glassfish Nuevo dominio en Glassfish ● Por ejemplo, asumiendo que creamos un dominio llamado reinojdbc utilizando un recurso JNDI llamado rest, con los usuarios y los grupos en una tabla llamada usuarios con la clave encriptada en MD5, tendríamos los parámetros tal como en las siguientes filminas. Nuevo dominio en Glassfish Nuevo dominio en Glassfish Descriptor Standard Deployment (web.xml) ● ● ● En nuestro proyecto en Netbeans agregamos un nuevo descriptor Standard Deployment. Se crea un archivo web.xml en la configuración de nuestro proyecto. En realm-name se utilizará el nombre de dominio creado en el paso anterior. Descriptor Standard Deployment (web.xml) Descriptor Standard Deployment (web.xml) Descriptor Glassfish ● ● En nuestro proyecto en Netbeans agregamos un nuevo descriptor Glassfish. Es necesario agregar un rol que corresponde con el nombre de rol creado en el paso anterior. Descriptor Glassfish Descriptor Glassfish Utilización del rol en el código ● ● Es posible utilizar el rol en el código por medio de una anotación. Dicha anotación se puede utilizar para la clase o para los métodos. Si están en ambos la anotación del método sobre-escribe la anotación de la clase. Utilización del rol en el código ¡Gracias por su atención! ¿Preguntas?