Buscando orientación general sobre cómo proteger la aplicación de la API web para aplicaciones y usuarios de clientes

2

Tengo un servicio web creado con WebAPI que acepta solicitudes JSON y responde en consecuencia. La arquitectura central está construida pero no hay ninguna autenticación / autorización.

Después de un montón de buscar y buscar en Google alrededor de proyectos de muestra, no estoy seguro de por dónde empezar. He encontrado un montón de material de 2008 y 2009, pero no un montón de guías / flujos de trabajo recientes para WebAPI / aplicaciones de página única. Creo que el flujo de trabajo debería ser el siguiente:

  1. Verifique si el usuario está conectado: ¿Cómo se puede hacer esto con javascript? ¿Puedo enviar una cookie a mi webAPI? Si es así, ¿envío esa cookie como un parámetro en el cuerpo de la solicitud?

  2. Permita que el usuario inicie sesión / registre: ¿Cómo se encriptan / descifran estos datos? Seguramente no puedo enviar contraseñas por cable ... ¿es aquí donde entra SSL?

  3. Bríndeles acceso a lo que tienen derechos de acceso: creo que obtuve esto: solo puedo autorizar en los controladores por solicitud.

Cualquier información sería impresionante.

    
pregunta RobVious 04.04.2013 - 15:52
fuente

2 respuestas

2

La forma más fácil es usar una conexión SSL, hacer que proporcionen credenciales de autenticación y luego devolver un token de sesión para usar con futuras solicitudes de esa sesión. Luego puede expirar el token de la sesión después de la cantidad de tiempo que desee (en cuyo momento será necesario que envíen otro mensaje de autenticación).

Por supuesto, se supone que no hay una gestión de sesión integrada en WebAPI. Es un poco antes de mi tiempo, así que no estoy tan familiarizado con eso. La mayoría de las veces terminé usando servicios basados en WCF donde hay mucho por hacer en términos de gestión de sesión.

    
respondido por el AJ Henderson 04.04.2013 - 16:11
fuente
2
  1. Las cookies se utilizan para mantener las sesiones, pero tienen muchos peligros ocultos. Asegúrese de que los datos se devuelven & La aplicación está bien encriptada, el valor TTL no es demasiado largo y utiliza métodos que se sabe que funcionan (es mejor no reinventar la rueda) enlace describe cómo .net maneja las sesiones.

  2. El inicio de sesión / registro (o cualquier información confidencial) NECESITA que se cifre por el cable. No es tan difícil oler y si te preocupa la seguridad, ese es EL primer paso.

  3. Los derechos de acceso son buenos para bloquearlos dentro de la aplicación web. Sin embargo, también debe bloquear el servidor web, la casilla en la que se está ejecutando, cualquier puerto abierto, etc. enlace es una buena lectura y un lugar para comenzar para comprender e implementar la seguridad de la aplicación web.

respondido por el drunkenRabbit 04.04.2013 - 17:41
fuente

Lea otras preguntas en las etiquetas