Header Ads Widget

Ticker

6/recent/ticker-posts

Cómo OAuth aumenta la seguridad de la API y la administración de acceso

 El desarrollo de aplicaciones en Android, iOS, macOS, Windows 10 y Linux se ha acelerado rápidamente en los últimos años con la ayuda de API estandarizadas (interfaces de programación de aplicaciones).

Sin embargo, con la creciente dependencia de las API, asegurar la comunicación y el intercambio de información se ha convertido en una prioridad. La autenticación OAuth ha sido fundamental para transmitir información de forma segura entre usuarios y servidores y entre dos plataformas.

En los últimos años, OAuth se ha vuelto muy influyente debido a su rápida y amplia adopción en múltiples sectores. Creado y respaldado por titanes de la tecnología como Google, Twitter y varias otras empresas líderes, OAuth experimentó una evolución sustancial de OAuth 1.0 a OAuth 2.0. Con aún más capacidades y vías o protocolos seguros, OAuth 2.0 se ha convertido en el favorito de múltiples plataformas, incluidas Instagram, LinkedIn, Microsoft, Netflix, PayPal y otras.

¿Qué es el estándar de autenticación OAuth?

OAuth significa un protocolo o marco de autorización de estándar abierto. Es esencialmente un conjunto de reglas y estándares que rigen cómo los servidores y servicios no relacionados pueden permitir de forma segura el acceso autenticado a sus activos. El intercambio de información puede tener lugar sin compartir realmente la credencial de inicio de sesión única, relacionada e inicial. En el lenguaje de la autenticación, esto se conoce como autorización delegada segura, de terceros, agente de usuario.

Por lo general, una aplicación cliente de terceros registrada utiliza llamadas API específicas para recuperar o solicitar un token de acceso particular para acceder a los recursos protegidos por OAuth. Además de OAuth, las capas de seguridad adicionales, como OpenID Connect , implementan un protocolo de inicio de sesión único además del proceso de autorización de OAuth. Sin embargo, este artículo se limita a discutir el estándar OAuth.

OAuth: autenticación frente a autorización

OAuth se diseñó inicialmente para proporcionar un mecanismo de autorización seguro para sitios web. El conjunto de protocolos define un procedimiento estándar para que los usuarios finales otorguen acceso a sitios web de terceros a sus recursos privados almacenados en un proveedor de servicios. Esta fue la intención principal detrás de la primera versión, OAuth 1.0.

Sin embargo, dada su simplicidad y eficiencia, el mecanismo fue adoptado rápidamente por muchos sitios web y plataformas. Las principales empresas se dieron cuenta de que los beneficios potenciales de OAuth iban más allá de la mera autorización y también lo reutilizaron para la autenticación.

Si bien la autorización y la autenticación pueden parecer similares entre sí, existen algunas diferencias fundamentales, y la mayoría de los sitios web modernos necesitan esta última con más urgencia. De manera similar, OAuth puede ofrecer bastantes servicios relacionados con la seguridad, y la autorización es solo el principal.

Sin embargo, también es fundamental para una serie de cosas diferentes e incluso se puede usar solo con gran efecto. Si bien en su versión inicial, OAuth cumplió bien su propósito de autorización, los sitios web aprendieron rápidamente a usar la plataforma para hacer mucho más, y la autenticación es uno de ellos. Después de la reutilización, el protocolo OAuth ahora puede permitir que un usuario demuestre su identidad a una parte de confianza, utilizando su sesión existente con el proveedor de servicios. Es seguro decir que la industria web se ha movido decisivamente hacia la adopción de OAuth para la autenticación.

La diferencia fundamental entre la autorización OAuth y la autenticación OAuth es lo que define OAuth 1.0 y OAuth 2.0. Además, ni la documentación de OAuth 1.0 ni la de OAuth 2.0 están específicamente diseñadas para la autenticación. Aún así, OAuth es ahora un protocolo de autenticación y autorización de facto.

Comprensión de OAuth 1.0 y OAuth 2.0

El OAuth 1.0 inicial era bastante versátil y eficaz. Sin embargo, fue diseñado principalmente para tecnología web tradicional y no para plataformas móviles. Esto exigió la evolución de los protocolos y procedimientos para acomodar y proteger las aplicaciones o aplicaciones móviles.

Además, con el crecimiento exponencial de los teléfonos inteligentes Android, los datos intercambiados entre millones de aplicaciones y dispositivos móviles necesitaban un protocolo de autenticación aún más potente y confiable. OAuth 2.0 ofrece lo mismo con éxito.

Antes de que se lanzara OAuth, existía OpenID para la autenticación de usuarios de terceros. Sin embargo, OpenID tenía su propio conjunto de limitaciones, que OAuth 1.0 fue diseñado para abordar. OAuth 2.0 lleva el tema de la autenticación segura mucho más allá.

Debido a que se extiende mucho más allá de ser un "protocolo", OAuth 2.0 se denomina "marco" de autorización. El marco OAuth 2.0 ofrece la delegación de autenticación de usuarios en forma de token de acceso. Cualquier aplicación que use OAuth 2.0 puede usar este sistema de tokens.

La forma en que esto funciona es el token de acceso que se presenta a la API. El servidor que recibe el token sabe cómo validarlo y asegurarse de que esté activo. Desde la perspectiva de la aplicación, es una cadena opaca.

Aquí hay una diferencia básica entre OAuth 1.0 y OAuth 2.0:

Seguridad de OAuth 2.0 y API

El punto de partida común para cualquier organización es el uso de claves API para reforzar la seguridad. Suelen ser más fáciles de implementar pero tienen opciones limitadas de permisos. OAuth 2.0 tiene el enfoque más avanzado para otorgar acceso. Según el protocolo OAuth 2.0, la aplicación solicita autorización de acceso al propietario del recurso.

La implementación de OAuth 2.0 para la seguridad de API comienza con el registro de la aplicación con el servicio y la solicitud de claves de API. Los desarrolladores suelen registrar información muy básica, como el nombre de la aplicación, un sitio web, un logotipo, etc. Además, los creadores también deben registrar un URI de redireccionamiento utilizado para redirigir a los usuarios a través de rutas seguras.

El primer paso de OAuth 2.0 es obtener la autorización del usuario. Esto podría ser en forma de código de autorización o contraseña.

¿Cómo ayuda OAuth 2.0 a la seguridad de la API?

Con el uso creciente de API, especialmente en aplicaciones móviles, están demostrando ser cada vez más un punto de vulnerabilidad importante Las API a menudo se diseñan internamente para cumplir funciones pequeñas y, por lo tanto, a menudo evaden los equipos de cumplimiento y seguridad pública.

OAuth 2.0 está diseñado específicamente como un enfoque más avanzado y refinado para otorgar acceso. Con los tokens creados y otorgados por OAuth 2.0 , existe seguridad avanzada, como una función de alcance que permite a los desarrolladores establecer permisos detallados para las aplicaciones. Sin embargo, el atributo más deseado es la disponibilidad de los tokens por tiempo limitado. Como estos tokens caducan, no se pueden reutilizar.

Como se mencionó anteriormente, OAuth está diseñado como un marco en lugar de un protocolo. Un protocolo describe cómo se estructuran y comunican los datos. También gobierna cómo se comportan e interactúan los puntos finales.

Mientras tanto, un marco actúa como un acuerdo operativo general. Esto se puede ampliar para que sirva para múltiples propósitos. A través de estas expansiones o extensiones, OAuth 2.0 ofrece:

  • JSON Web Tokens (JWT) : JWT se puede utilizar para definir cargas útiles para pasar datos entre sistemas con mecanismos de caducidad integrados y firmas para la validación.
  • OpenID Connect : esto permite la estandarización de esos tokens para compartir información de perfil de usuario.
  • Puntos finales : estos introspectan y revocan esos tokens. Básicamente, una plataforma puede detectar si un token se ha modificado y restringir el acceso de una aplicación de inmediato.
  • El tipo de concesión de dispositivo : esto extiende OAuth a dispositivos con posibilidades de entrada limitadas, como Smart TV de Android, IoT, etc.
  • Flujo de código de autorización + tipo de concesión PKCE : están específicamente destinados a admitir aplicaciones móviles nativas que se ejecutan en Android e iOS.

¿Cómo ayuda OAuth 2.0 a la gestión de acceso a la API?

No hay duda de que OAuth 2.0 ha transformado la seguridad de la API y la administración de acceso. El marco ha simplificado cada vez más la participación del usuario con las aplicaciones al tiempo que protege su información personal. En pocas palabras, al utilizar OAuth2.0, una aplicación puede acceder a los datos del usuario sin la necesidad de exponer las credenciales del usuario a la aplicación. La API otorgará acceso al propietario del recurso (usuario) solo cuando reciba un token válido y con restricción de tiempo de la aplicación que se genera a través del marco OAuth 2.0.

Sin embargo, es esencial tener en cuenta que OAuth2.0 no es un protocolo de autenticación en el sentido tradicional. Además, OAuth 2.0 no puede proteger las API por sí solo. Necesita algunas herramientas y protocolos más para proteger las API de solicitudes y datos maliciosos, y actuar como una plataforma de administración de acceso integral.

Publicar un comentario

0 Comentarios