Asegurando la API REST a la que se accederá desde diferentes clientes

2

He desarrollado una API REST / JSON. La API expone muchas características. La API será consumida por las aplicaciones que diseñamos internamente (aplicaciones móviles y aplicaciones web), por las aplicaciones diseñadas por nuestros revendedores y por las aplicaciones diseñadas por las empresas. Estoy buscando asegurar la aplicación implementando autenticación y autorización. He "buscado en Google" mucho, pero mi investigación me ha dejado más preguntas que respuestas.

  1. Nuestra aplicación interna será utilizada por usuarios finales registrados en la aplicación. En esencia, nuestra aplicación es solo un cliente que recibe la solicitud del usuario final, la lleva a la API REST y recupera los datos para el usuario final. Nuestra aplicación interna debe poder realizar todas las operaciones expuestas por la API REST. ¿Cuál es la mejor manera de manejar el inicio de sesión de usuario en nuestra aplicación interna? HTTP básico sobre SSL o OAuth?

  2. Nuestras aplicaciones de revendedor pueden crear usuarios como si fueran sus propios usuarios, pero en última instancia, los detalles del usuario se almacenan en nuestra base de datos. La aplicación de revendedor solo actuará como un cliente que recibe la solicitud del usuario y obtiene los datos del usuario. Las aplicaciones de nuestros revendedores solo deben estar restringidas a algunas operaciones de la API REST. ¿Qué mecanismo de seguridad utilizaré para implementar este tipo de autorización e inicio de sesión de usuario?

Espero que mi pregunta sea clara. Gracias por la ayuda.

    
pregunta Akinkunle Allen 11.06.2014 - 03:51
fuente

1 respuesta

1

Suponiendo que su aplicación es una aplicación web, OAuth2 proporcionará la mejor experiencia de usuario. HTTP Basic Auth no es una gran experiencia de usuario.

También puede permitir que sus revendedores utilicen la autenticación OAuth2, ya sea cambiando el nombre de la página OAuth, envolviéndola u otras técnicas. La aplicación de revendedor podría estar limitada en los ámbitos disponibles y, por lo tanto, puede limitar las operaciones disponibles para las aplicaciones de revendedor.

    
respondido por el David 11.06.2014 - 05:45
fuente

Lea otras preguntas en las etiquetas