Desafíos en la supervisión de aplicaciones que utilizan OAuth

En el ecosistema de Internet de aplicaciones cada vez más entrelazadas, cuando una aplicación desea realizar alguna acción en otra aplicación en nombre de un usuario, surge la necesidad de cómo hacerlo sin compartir la contraseña de una aplicación a otra. Un ejemplo común de esto es el inicio de sesión con Facebook por aplicaciones que quieren publicar algo en tu biografía o quieren acceder a tu Google Drive. Si compartes tu contraseña de Facebook con este tipo de aplicaciones para que puedan acceder a tu biografía y una violación de datos ocurre con esas aplicaciones, tus credenciales de Facebook también entran en amenaza. Además, al compartir su contraseña está dando a tales aplicaciones el control total de su cuenta de Facebook en lugar de acceso limitado. Para resolver este desafío, se definió un protocolo, denominado OAuth.

 

Oauth

OAuth es un protocolo/marco de autorización de estándar abierto que permite a las aplicaciones obtener acceso limitado a las cuentas de usuario de otra aplicación sin compartir una contraseña. Estas aplicaciones se proporcionan con un token de autorización que se puede utilizar para utilizar los servicios de otra aplicación en su nombre sin comprometer su contraseña. OAuth se puede utilizar para autorizar aplicaciones, API, dispositivos y servidores.

En un nivel alto, es un proceso delegado seguro de autorización y acceso limitado a través de HTTP en lugar de usar sus credenciales que minimiza el riesgo de seguridad. Si se produce alguna infracción de seguridad y se roban tus datos de la aplicación que tiene acceso a tu Facebook, tu contraseña de Facebook está a salvo. No te preocupes.

OAuth tiene dos versiones: OAuth 1.0a y OAuth 2.0. Ambas versiones difieren completamente entre sí en términos de especificaciones y no son compatibles para ser utilizadas juntas. Pero la versión de OAuth 2.0 se utiliza más ampliamente y nos centraremos en esta sólo mientras nos referimos a OAuth a menos que se mencione explícitamente.

Actores y Flujo

Hay cuatro actores, también conocidos como roles, en un flujo de OAuth.

  1. Propietario de recursos (usuario): el propietario de los datos respectivos que residen en el servidor de recursos. El propietario del recurso autoriza el acceso a la cuenta que está limitado al ámbito de la autorización concedida.
  2. Servidor de recursos (API): es donde se hospedan la cuenta de usuario o los recursos en un entorno protegido.
  3. Cliente (aplicación): la aplicación que solicita acceso a la cuenta de usuario.
  4. Servidor de la autorización (API) – El servidor de la autorización realiza la verificación de la identidad para publicar el token de acceso.

 

Estos actores interactúan entre sí en función del protocolo OAuth. Tenga en cuenta que el protocolo OAuth tiene que ver con la autorización, no con la autenticación. El flujo general de un protocolo OAuth es el siguiente:

  1. El cliente desea tener acceso al servidor de recursos y solicita permiso al usuario.
  2. El usuario autoriza la solicitud o la deniega.
  3. En caso de autorización, el cliente obtiene una concesión de autorización.
  4. El cliente, a continuación, presenta esta concesión de autorización y su identidad al servidor de autorización y solicita un token de acceso.
  5. Si el cliente tiene ambos, una identidad válida y una concesión de autorización, el servidor de autorización le proporciona un token de acceso.
  6. El cliente, a continuación, va al servidor de recursos y solicita el acceso a los recursos presentándole el token de acceso.
  7. El servidor de recursos proporciona el acceso limitado permitido al cliente solo si el token es válido.

 

Desafíos en la supervisión de aplicaciones habilitadas para OAuth

La implementación de OAuth permite a la aplicación obtener acceso a los recursos del servidor en otras aplicaciones con protección de la privacidad y una gran experiencia de usuario. Pero al mismo tiempo, OAuth plantea algunos desafíos en la supervisión de la aplicación. Echemos un vistazo a esos desafíos.

 

Gestión de tokens – La implementación de OAuth requiere la administración de tokens con administración de estado. Esto significa que estos tokens se actualizan y rotan. Si se produce un error de autorización, se hace difícil averiguar qué actor del protocolo OAuth tiene errores. Se convierte en una pesadilla de depuración.

Dependencia de solicitud/respuesta de OAuth – ¿Qué sucede si su proveedor de OAuth cambió algo en su mecanismo? Incluso el más mínimo cambio en los parámetros de solicitud/respuesta puede interrumpir toda la aplicación. Puede tardar un tiempo antes de averiguar si los desarrolladores no están prestando atención a las nuevas versiones de su proveedor de OAuth.

Devoluciones de llamada – Dependiendo de la implementación, puede tomar más de una llamada a la API entre todos los actores para una transacción de OAuth correcta. En la mayoría de los casos, el método de devoluciones de llamada se utiliza para lograr esto que puede ser lo suficientemente complejo como para rastrear si algo se interrumpe en el medio. Las herramientas de supervisión tradicionales no son suficientes para identificar errores de devolución de llamada, aumentar el tiempo de depuración y, por lo tanto, aumentar el tiempo de inactividad.

Configuración – Esto es importante para facilitar la vida de su equipo de DevOps. Si utiliza una herramienta de supervisión que no se especializa en tareas HTTP(S) altamente configurables, tendrá dificultades para supervisar los flujos de OAuth que implican la expiración/renovación de tokens y varias llamadas a la API a través de HTTP.

 

La solución para supervisar aplicaciones habilitadas para OAuth

La supervisión sintética es una excelente opción cuando tratamos con dependencias de terceros, HTTP(S), API REST, rutas de usuario complejas y mecanismo de inicio de sesión personalizado como OAuth, etc.

La supervisión sintética funciona simulando los comportamientos del usuario final con scripts personalizados, en un entorno altamente configurable para admitir la flexibilidad de la arquitectura y, a continuación, supervisando el tráfico y el flujo de forma proactiva. Esto ayuda a detectar y resolver problemas antes de que los usuarios reales se enfrenten a ellos. La plataforma Dotcom-Monitor utiliza una herramienta de scripting de punto y clic, denominada EveryStep Web Recorder, para crear scripts que pueden simular rutas de usuario, así como para comprobar el contenido que se devuelve como respuesta a acciones específicas. Para superar los desafíos de supervisión planteados por la implementación de OAuth, deberá utilizar herramientas de supervisión sintética especializadas con las siguientes capacidades imprescindibles:

 

Supervisión de transacciones web de varios pasos – Como mencionamos brevemente, una transacción de OAuth correcta es un proceso de varios pasos entre sus actores. La supervisión sintética le ofrece la capacidad de configurar la supervisión de varios pasos para las transacciones de OAuth y supervisarlas continuamente para detectar la disponibilidad y el rendimiento. La supervisión multitarea le indicará exactamente qué paso es responsable del flujo roto para que pueda solucionarlo rápidamente.

Scripts personalizados con tareas HTTP/S – La implementación real de OAuth difiere de las aplicaciones a las aplicaciones en función de la arquitectura y las directivas de seguridad.

 

La herramienta de supervisión de servicios web sintéticos le permite escribir tareas HTTP altamente configurables y scripts personalizados para rutas de usuario complejas. Esto le ayudará a supervisar el flujo de extremo a extremo de la transacción de OAuth de la aplicación y el estado general de las API y devoluciones de llamada. Además, si necesita comprobar los datos, como los nombres de usuario, que se devuelven como respuesta, puede configurar los scripts con EveryStep Web Recorder para comprobar esas palabras clave específicas.

Además de estas capacidades, las herramientas de supervisión sintética son un activo valioso para supervisar dependencias de terceros, servicios web y protocolos (protocolos SOAP, REST, TCP e ICMP) e infraestructura. Dotcom-Monitor le permite configurar transacciones de varios pasos para la API web basada en OAuth mediante la tarea HTTP(s) y comprobar continuamente el tiempo de actividad, el rendimiento y la funcionalidad 24/7.

Pruebe la plataforma completa Dotcom-Monitor gratis durante 30 días.

 

Latest Web Performance Articles​

Las 25 mejores herramientas de supervisión de servidores

En este artículo, ofrecemos nuestras selecciones de expertos de las 25 mejores herramientas de monitoreo de servidores para ayudar a monitorear el tiempo de actividad de su sitio web y brindar a sus usuarios la mejor experiencia, comenzando con nuestra propia solución en Dotcom-Monitor. Descubra por qué la supervisión de servidores es una parte esencial de cualquier estrategia de supervisión.

Las 20 mejores herramientas de monitoreo sintético

El monitoreo sintético permite a los equipos monitorear y medir el rendimiento del sitio web y las aplicaciones web durante todo el día desde todos los puntos de vista imaginables, y recibir alertas antes de que los problemas comiencen a afectar a los usuarios reales. Aquí están nuestras mejores opciones para herramientas de monitoreo sintético, liderando con las nuestras en Dotcom-Monitor.

Start Dotcom-Monitor for free today​

No Credit Card Required