2010-04-19 18 views
7

Digamos que tenemos un sitio web que usa un servicio web para todas sus funciones (es decir, para recuperar y actualizar datos de/a db), ¿cómo autentica las solicitudes el servicio web?Seguridad y autenticación en servicios web

Según tengo entendido, en un "sitio web" java tradicional, un usuario proporciona un nombre de usuario & contraseña y, una vez validado, se asigna una jsessionid al usuario (navegador del cliente). El navegador del cliente le pregunta al sitio web algo, el sitio comprueba el jsessionid y garantiza que el usuario esté registrado y autenticado. ¿Hay un servicio web equivalente a esto? Si es así, ¿qué?

Respuesta

5

Por lo general, para los servicios web, la solución más fácil es usar la Autenticación básica. Para algo más complejo, "Api Key \ Token" se pasa con cada solicitud para autorizar/autenticar a los usuarios. Otra solución es OAuth.

Twitter, por ejemplo, use Basic Authentication y OAuth.

1

¿Su servicio web incluso necesita ser accesible públicamente?

Es posible que no tenga que preocuparse por los complicados esquemas de autenticación si no hay motivos para permitir que el tráfico público llegue incluso al servicio web.

+0

Aunque no está disponible "públicamente", hay un par de situaciones que pueden ser problemas de seguridad. Por ejemplo, supongamos que el sitio web utiliza JavaScript (es decir, dwr) o aplicaciones flexibles para comunicarse directamente con el servicio web, en lugar de a través del sitio web. Si bien el servicio no está disponible "públicamente", un usuario decente puede deducir de la javascript o flex por lo menos la dirección del servicio web y tratar de usar mal esa información. Este es el tema que me causa curiosidad. – King

+0

Dado que JavaScript y Flex son aplicaciones que se ejecutan en el cliente, esto significa que su servicio web * está * disponible públicamente. –

Cuestiones relacionadas