Autenticación OAuth2 en Plataforma con OAuth2 Server

ES | EN

La plataforma incluye un servidor de Autenticación basado en OAuth2 que permite a los usuarios autenticarse en la plataforma.

Es el método de autenticación recomendado para realizar autenticación contra plataforma (Oauth Server), Implementa el estándar OAuth e incluye todo el ciclo de gestión de Tokens. Además posibilita la utilización de los Dominios de Seguridad (Realms) integrados con dicha gestión.

Para ampliar la información se puede consultar la siguiente entrada: ¿Cómo usar Tokens OAuth2 en Plataforma?

Como introducción básica, a continuación se incluye el ejemplo de generación de un Token OAuth2 para un usuario:

Generación de token utilizando servidor OAuth2

El endpoint que permite generar tokens Oauth2 se correspondería con:

https://<myserver>/oauth-server/oauth/token

Utilizaremos el entorno de plataforma desplegado en nuestro cloudlab para mostrar los ejemplos:

https://lab.onesaitplatform.com/oauth-server/oauth/token

Será una petición POST, y debe incluir:

  • Headers:
    • Authorization: (onesaitplatform:onesaitplatform en base64) Son las credenciales por defecto de la plataforma.
  • Body:
    • grant_type: password (para peticiones User/Password)
    • username: id de usuario
    • password: contraseña de usuario

Utilizando Postman para realizar esta petición:


La respuesta tendrá esté formato:


A destacar:

  • access_token: Token de acceso
  • refresh_token: Token de refresco (de un solo uso).
  • expires_in: Tiempo restante de validez (segundos).
  • authorities: Roles asignados al usuario (genéricos de plataforma al utilizar la autenticación por defecto).

Autenticación utilizando el servidor de login del Panel de Control

Además de la utilización de token genérico OAuth2, se proporciona la posibilidad de autenticarnos a través del panel de control de la plataforma utilizando identificador de usuario y contraseña. Esta implementación se utilizará para pruebas sencillas y validaciones simples de usuarios.

El endpoint que se expone es el siguiente:

https://<myserver>/controlpanel/swagger-ui.html#/Login_Oauth_service

Utilizaremos el entorno de plataforma desplegado en nuestro CloudLab para mostrar los ejemplos:

https://lab.onesaitplatform.com/controlpanel/swagger-ui.html#/Login_Oauth_service

Se trata de una petición POST, y debe incluir:

  • Body: (json)
    • username: id de usuario
    • password: contraseña de usuario
    • vertical (Opcional - si se usara multitenancy)

Un ejemplo de body sería:

{"username": "developer",
"password": "XXXXXX"}

La petición quedaría

El resultado incluiría información del usuario en plataforma (y los roles por defecto con los que cuenta).