No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Por qué son importantes OAuth y OIDC?

4/25
Recursos

Aportes 10

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

JWT (JSON Web Token) es un estándar abierto que se utiliza para la creación de tokens de acceso y autenticación en aplicaciones web y móviles. JWT se basa en JSON y proporciona una forma segura de transmitir información entre aplicaciones.
Ventaja
JWT es fácil de implementar y utilizar, ya que se basa en JSON y es compatible con muchos lenguajes de programación.
Desventaja
JWT puede ser vulnerable a ataques de fuerza bruta y ataques de diccionario si la clave de firma no se configura correctamente. Por lo tanto, es importante utilizar una clave de firma fuerte y mantenerla segura.

Por ejemplo IBM tiene sus propios protocolos de autenticacion,son el estándar Java Authentication and Authorization Service (JAAS) y el estándar Web Services Security (WS-Security).

Una ventaja de JAAS:
JAAS proporciona una infraestructura basada en políticas para determinar de forma segura quién invoca una aplicación. Utilizando esta infraestructura conectable, todo el ecosistema de IBM pueden permanecer independientes de las tecnologías de autenticación subyacentes.

Me encanta como esta construido visualmente este curso, las diapositivas son hermosas y ese resumen al final de la clase es super vital para ver si a uno se le llego a perder un concepto clave

Encontre las siguientes:

  • SAML 2.0: un protocolo basado en XML que permite el inicio de sesión unificado entre distintas aplicaciones.

  • Kerberos: un protocolo de autenticación de red que utiliza criptografía para proveer seguridad para información sensible.

  • **Azure Active Directory: **servicio de directorio basado en la nube que puede utilizarse para administrar las identidades de usuarios y el control de accesos.

  • Autenticación basada en formularios: este es un método de autenticación heredada que aun es respaldado por EWS.

  • **JSON Web Token (JWT): **una alternativa popular a OAuth que te permite crear y validar tokens por ti mismo.

  • **NTLM: **este es también un protocolo de Microsoft. Es más seguro que la autenticación básica y ya es compatible con muchos productos de la compañía.

La información completa aquí
https://blog.invgate.com/es/microsoft-degrada-la-autenticacion-basica

  1. SAML

Ventajas

  • Ampliamente adoptado en entornos empresariales.
  • Proveedor de identidad único (IdP) centralizado.
  • Marco sólido para la federación de identidades.

Desventajas

  • Configuración y mantenimiento más complejos.
  • Requiere infraestructura y intercambio de metadatos adicionales.
  • Mayor sobrecarga en las solicitudes y respuestas.

Diferencias con OAuth y OIDC:

  • SAML es un protocolo de autenticación de amplia aplicación, mientras que OAuth es un estándar de autorización para aplicaciones, dispositivos o API.
  • SAML otorga acceso, OAuth determina a que se puede y no acceder.
  1. Kerberos

Ventajas

  • Protocolo robusto y seguro ampliamente utilizado en entornos empresariales. (Por ejemplo Microsoft)
  • Autenticación basada en tickets y cifrado de extremo a extremo.
  • Capacidad para autenticar una vez y obtener acceso a varios servicios.
  • Autenticación mutua.

Desventajas

  • Configuración y administración más complejas.
  • Requiere infraestructura de servidor de autenticación dedicada (KDC).
  • Menor flexibilidad en términos de autorización granular.

Diferencias con OAuth y OIDC:

  • Kerberos se centra en la autenticación y el cifrado de extremo a extremo ya que es un protocolo de autenticación de red, permitiendo la autenticación única (SSO) en diferentes servicios. OAuth/OIDC se centran tanto en la autenticación como en la autorización, y proporcionan un flujo más flexible y granular para el acceso a recursos protegidos.

Fuentes de consulta:
¿Qué es SAML?
SAML vs OAuth
Kerberos Authentication Overview

LDAP, Permite tener diferenciado por departamento a los usuarios y tener una relación de recursos a los que dar permisos.

  • PRO: está centralizado todo

  • CONTRA: complejidad de configuración

En los cursos hemos utilizado Passportjs como metodo de Autenticacion y JWT (JSON Web Token) para Autorizar y definir los permisos que tiene accesos nuestros clientes. Pasportjs es una librería de Node que nos brinda distintas formas de hacerlo , como por ejemplo: Google, Facebook, Github, etc.

Comparto otro punto de vista sobre la frase: "La autenticación estaba resuelta, pero no había una manera confiable de dar autorización a terceros" La autenticación estaba resuelta entre 2 partes, ahora al involucrar un tercero, la cosa se complica, y es ahí donde surge la necesidad de encontrar una forma de brindar acceso limitado a ciertos recursos de un usuario a un tercero sin revelar las credenciales del usuario. Y esa forma se llama OAuth 2.0, que es un framework de autorización estándar abierto que explica como hacerlo, no lo implementa, podemos encontrar distintas implementaciones de la misma, librerías, servicios o hacer nuestra propia implementación.
La identificación con formulario y cruzado contra una db y la autorización basada en la tabla de accesos configurados para cada vista o modelo de datos. * PRO: Muy simple de implementar * CONTRA: No respeta estándar y solo se conoce localmente.

Se me ocurre lo siguiente en el mundo Linux:
OIDC – user y Password / Con esto se identifica cada user
OAuth – Sistema de permisos UNIX UGO - Con esto puedo dar acceso y privilegios de escritura, lectura y ejecucion a los recursos del sistema, dependiendo de la identidad del User.