Por lo general, juego 20 preguntas (generalmente terminaré con una lista más larga de preguntas y viceversa) cuando trabajo con el equipo de desarrollo para elaborar una estrategia / arquitectura de seguridad correcta. Así que juguemos 20 preguntas.
a) ¿Desea autenticar usuarios en su aplicación?
b) ¿Desea autorizar lo que un usuario puede o no puede hacer en su aplicación? incluidos, entre otros, el acceso a páginas web, datos que el usuario puede o no puede ver, etc.
- ¿Cuáles son las mejores empresas de desarrollo de aplicaciones móviles en Nueva Zelanda?
- ¿Cómo se hizo tan popular la aplicación Flickr?
- ¿Cuál es el proceso de prueba de aplicaciones móviles de la manera correcta?
- Si alguien crea una nueva cuenta con mi número anterior de WhatsApp, ¿verán mis conversaciones?
- ¿Cuál es el mejor contenedor móvil (iónico, teléfono, etc.)?
c) ¿De dónde obtiene los datos? ¿Desde su propia aplicación o desde un servicio de terceros diferente? (podría ser su servicio alojado por otra aplicación u otro dominio)
d) ¿Cuáles son los mecanismos de seguridad para dichos Servicios? (Suponiendo REST)
e) ¿Los datos devueltos por dichos servicios son globales, es decir, para que cualquiera los vea o solo solicite al usuario? Un buen ejemplo sería que la API de Twitter para obtener tweets podría ser pública, lo que puede devolver todos los Tweets públicos, pero la API para obtener solo sus tweets debería funcionar dentro del contexto de su identidad.
Ahora tienes idea. La seguridad de su aplicación tiene algún tipo de relación directa con los servicios en los que se basa su aplicación. Ya sea 1: 1 (datos específicos de usuario final a usuario final servidos a través de REST API) o Muchos: 1 (Muchos usuarios finales pero una aplicación confiable puede obtener todos los datos y enviarlos a su aplicación)
Con esto en mente, debe hacer la siguiente pregunta. ¿Quién proporciona la capa de autorización a su API REST? Recuerde que cuando usa OAuth / OPennID con proveedores de autenticación social como Facebook / Twitter, etc., su aplicación solo obtiene un comportamiento de tipo de inicio de sesión único, y aún debe crear su propio token interno que pueda mantener la sesión / identidad / contexto de usuario autenticado. ¿Cómo se une la capa OAuth del proveedor de Identidad Social con su aplicación?
La siguiente pregunta es, cuando tiene que invocar servicios externos de terceros, es para el usuario final o para su aplicación. La verdadera pregunta es si necesita propagación de identidad o no.
Estas preguntas lo ayudarán a comprender si una solución de OAuth en particular es lo suficientemente buena para usted o no. Nota para aquellos que son nuevos en OAuth, no se trata de autenticación, todo se trata de Autorización.