Inicio de sesión único (SSO) con JWT de OAuth 2.0
La ciberseguridad se convirtió en un problema importante durante la pandemia, ya que los teletrabajadores generaron nuevas y numerosas oportunidades de ataque. Como resultado, las empresas están más preocupadas que nunca por...
IAM servicios como SSO, MFA, etc.
En este documento, le presentaremos uno de esos protocolos SSO OAuth 2.0, cómo funciona, para qué se utiliza, cómo entra en escena JWT, cómo puede beneficiarse su organización al usar OAuth 2.0 y JWT como parte de su IAM .
¿Qué es OAuth 2.0?
OAuth 2.0 (Open Authorization) es un marco de autorización que permite a las aplicaciones obtener acceso limitado a las cuentas de usuario en un servicio HTTP. Delega la autenticación del usuario al servicio que aloja la cuenta de usuario y autoriza a las aplicaciones de terceros a acceder a la cuenta de usuario.
OAuth 2.0 proporciona flujos de autorización para aplicaciones web y de escritorio y dispositivos móviles.
En esta página contiene información detallada sobre los puntos finales OAuth 2.0 que miniOrange expone en sus servidores de autorización.
OpenID Connect (OIDC) es una capa de identidad delgada sobre el protocolo OAuth 2.0 para gestionar la autenticación de usuarios. OAuth 2.0 es el protocolo estándar para la autorización y OIDC el protocolo para la autenticación de usuarios. Juntos, estos dos protocolos permiten acceder a múltiples aplicaciones y sitios web de forma segura, sin tener que iniciar sesión varias veces, a través del inicio de sesión único (SSO).
Para obtener más información sobre el protocolo OpenID Connect, visite esta página.
¿Qué es JWT?
JWT (JSON Web Token) es un estándar abierto (RFC 7519) que define una forma compacta y autónoma de transmitir información de forma segura entre partes como un objeto JSON. Esta información se puede verificar y es confiable porque está firmada digitalmente mediante un secreto (con el algoritmo HMAC) o un par de claves pública/privada mediante RSA o ECDSA.
Entendamos cómo funciona OAuth 2.0
En este escenario, puede lograr un inicio de sesión único (SSO) en su aplicación web mediante miniOrange IdP con el protocolo OAuth 2.0/OpenID Connect (OIDC). Su aplicación web actuará como un cliente OAuth 2.0.
Flujo de trabajo de inicio de sesión único (SSO) de OAuth 2.0
- Un usuario desconocido intenta acceder a WordPress (su aplicación web, por ejemplo).
- WordPress envía una solicitud de autorización a miniOrange (proveedor OAuth / servidor OpenID Connect).
- El servidor OAuth miniOrange solicita al usuario que inicie sesión y autorice la aplicación.
- El usuario es redirigido a la página de inicio de sesión donde inicia sesión.
- miniOrange autentica al usuario y envía el código de autorización a WordPress.
- WordPress envía su propio client_id, client_secret con el código de autorización que ha recibido de miniOrange.
- miniOrange autentica la solicitud y envía el token de acceso y JWT a WordPress.
- WordPress utiliza el token de acceso para acceder a los recursos en el servidor de recursos y valida el JWT (JSON Web Token).
- Usando token de acceso, token de identificación (JWT) e información de usuario, miniOrange permite a los usuarios acceder a funciones protegidas.
- Ahora, el usuario está autenticado y ha iniciado sesión. Por lo tanto, el usuario obtiene acceso a los recursos sin ingresar ninguna credencial.
Validación del JWT
JWT (JSON Web Token, generalmente denominado id_token) contiene los datos de identidad del usuario. La aplicación cliente lo utiliza para obtener información del usuario, como su nombre, dirección de correo electrónico, etc. En el punto de conexión de devolución de llamada, puede leer y analizar el token JWT (información del usuario). Estructura del token web JSON (JWT):
JWT consta de tres partes separadas por puntos (.)
(por ejemplo, xxxx.yyyyyyyyyyyy.zzzzzz), que son:
- Encabezamiento: Contiene el nombre del algoritmo de firma utilizado para firmar la carga útil.
- Capacidad de carga: Contiene atributos de usuario como identificación de correo electrónico, nombre, etc.
- Firma: El valor de la firma de la carga útil.
Una vez que tenga el JSON con la información del usuario, puede iniciar sesión pasando la información de correo electrónico y nombre de usuario a la función de autenticación local.
JWT contiene los siguientes atributos JSON:
| Campo |
Mareas Ideales para Lecciones |
| ISS |
URI HTTPS que indica el emisor |
| por debajo |
identificador del usuario en el emisor |
| aud |
client_id del cliente solicitante |
| nuncio apostólico |
el valor del parámetro nonce recibido del cliente |
| exp |
tiempo de vencimiento de este token |
| Yo en |
El momento en que se emitió este token |
| tiempo_autenticación |
hora en que ocurrió la autenticación |
| at_hash |
la primera mitad de un hash del token de acceso |
¿Por qué deberías utilizar OAuth 2.0?
miniOrange puede ayudarle a habilitar SSO mediante el protocolo OAuth 2.0 para los siguientes escenarios:
- Si su organización está buscando una sistema de autorización de autenticación pero no tiene tiempo ni recursos para implementarlo desde cero.
- Si su organización desea cambiar a un método de autenticación más seguro, es decir, autenticación basada en token.
- Si su organización está tratando de dar una experiencia de inicio de sesión perfecta a los usuarios, ahorrándoles la molestia de recordar múltiples conjuntos de nombres de usuario y contraseñas.
- Si desea que sus usuarios se autentiquen a través de Aplicaciones más confiables como Google, Facebook, etc. que garantizan la autenticidad de las identidades de los usuarios.
¿Qué podemos hacer por usted?
Si desea mejorar su negocio y reducir la carga de mantener múltiples credenciales para una cuenta que utiliza múltiples servicios o simplemente desea conocernos mejor, nos encantaría saber de usted.
Referencias externas