¿Qué es y cómo configurar una API Identity?

¿Qué es una API Identity?

API Identity es un tipo de API que creamos solo para facilitar la autenticación a través del flujo Password de OAuth.

En primer lugar, vamos a entender mejor qué es el flujo Password:

Flujo Password de OAuth

En el flujo Password, el nombre de usuario y la contraseña de un usuario final, almacenados en un servicio externo, se utilizan para generar el token de acceso necesario para enviar peticiones a una API.

La operación sigue el siguiente diagrama (fuente: The OAuth 2.0 Authorization Framework):

+----------+
| Resource |
|  Owner   |
|          |
+----------+
     v
     |    Resource Owner
    (A) Password Credentials
     |
     v
+---------+                                  +---------------+
|         |>--(B)---- Resource Owner ------->|               |
|         |         Password Credentials     | Authorization |
| Client  |                                  |     Server    |
|         |<--(C)---- Access Token ---------<|               |
|         |    (w/ Optional Refresh Token)   |               |
+---------+                                  +---------------+

Es decir, el usuario informa de su nombre de usuario y contraseña al cliente, que los pasa al servidor de autorización en una petición POST que conduce a la generación de un token de acceso. En respuesta a esto, el servidor de autorización envía un token de acceso que ahora se puede usar para enviar peticiones a la API.

¿Cuándo usarlo?

Dado que el flujo Password establece que el nombre de usuario y la contraseña del usuario se comparten con el cliente, es más común usarlo para permitir el acceso a otras aplicaciones del mismo servicio, pero no a aplicaciones de terceros (en este caso, flujos más seguros, como Authorization Code, son preferibles).

Ahora, la cuestión más importante:

¿Cómo entra la API Identity en el flujo que acabamos de describir?

Cuando se envía una llamada POST para la generación de tokens via Password a la API OAuth, ella identifica la API Identity vinculada a la API a través de la app que se introduce en el header Authorization. El nombre de usuario y la contraseña deben estar presentes en el cuerpo de la petición. A continuación, la API OAuth envía una llamada a la API Identity para validar el nombre de usuario y la contraseña, lo que Identity hace llamando al enpoint de autenticación que tiene registrado. Si la información es válida, la API Identity responde positivamente a la API OAuth, que genera el token necesario para acceder a la API. En caso contrario, el token no se genera.

Un detalle importante: es posible vincular varias APIs Identity a la misma API. Así, en este flujo de autenticación, OAuth llamará a cada una de las APIs Identity vinculadas, desde la más reciente a la más antigua, y tan pronto como el nombre de usuario y la contraseña sean validados, detendrá la validación y responderá positivamente a OAuth. Si se llama a todas las APIs Identity y no se valida el nombre de usuario y la contraseña, no se genera el token. Este funcionamiento de la API Identity permite al Manager concentrar los servidores de autenticación internos para sus APIs.

En resumen, pues, tenemos este flujo (con un ejemplo de llamada a dos APIs Identity):

api identity es

Todas las APIs que requieren el flujo Password para generar y validar tokens de acceso deben estar vinculadas a una API Identity (este vínculo se realiza en el registro de la API Identity). Esta API y la API Identity deben implementarse en el mismo entorno. Aparte de eso, para que la API Identity pueda controlar las llamadas para la generación de tokens, debe implementarse en el mismo entorno que el flujo POST/access-token (es decir, en el mismo entorno que la API OAuth, que viene con el Manager).

¿Cómo configurar una API Identity?

La configuración de una API Identity sigue los mismos pasos que para una API normal. La diferencia es que hay un paso adicional en el caso de la API Identity, en el que necesitamos vincularla a la API que requerirá tokens de acceso generados por el flujo Password.

Consulte más detalles sobre cómo funciona la API Identity aquí y sobre cómo configurarla aquí.

Ver más

  • Detallamos las llamadas necesarias para obtener tokens de acceso a través del flujo Password aquí.

  • Si desea leer más sobre las diferencias entre los flujos de OAuth, acceda a The OAuth 2.0 Authorization Framework.

Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]