HomeGuíasREST API
REST APILog In

Autenticación

Antes de realizar una solicitud a cualquiera de nuestras APIs, deberá solicitar un token de acceso, consulte la sección Autenticación con OAuth 2.0.

Por ejemplo, si quisieramos un listado de productos, deberíamos de enviar la cabecera Authorization con la cadena Bearer como valor concatenado al access-token proveído por nuestro servidor de autenticación.

curl --location --request GET 'https://api.osigu.com/v1/products/search' \
--header 'Authorization: Bearer f45203f1-666f-4bb7-a020-6af1995f7b2a'

Nuestros servicios únicamente pueden son accesibles por HTTPS. Las llamadas que se realicen a través de HTTP simple fallarán.

📘

Note

Es importante que el Client-ID y Client-Secret proporcionado, nunca se encuentren de manera pública o de fácil acceso como por ejemplo en programación client-side.

Nuestro servidor OAuth2 provee los siguientes tipos de autenticación:

ModoDescripción
client_credentialsSe utiliza para el consumo de nuestras APIs, y en la implementación de nuestros widgets.
passwordEste método usualmente no es utilizado en nuestras integraciones con terceros, y sirve para la autenticación de un usuario por medio de un usuario y password.
refresh_tokenCuando un token es generado utilizando usuario y password, acompañado con el access token se da un refresh token con el que se puede puede solicitar de nuevo un access token si este ya ha vencido.
authorization_codeEste es utilizado cuando un tercero desea autenticar a un usuario utilizando nuestro formulario de autenticación dispuesto en el servidor de autenticación.

Widgets y APIs

Para el uso de nuestros widgets y consumo de nuestros APIs, entregamos a cada uno de nuestros clientes dos llaves según la integración deseada, estos son conocidos como Client-ID y Client-Secret.

Para estos dos tipos de integración, el modo a utilizar será client_credentials. El siguiente ejemplo muestra como se realiza una solicitud de un access token en el ambiente de sandbox:

curl --location --request POST 'https://sandbox.osigu.com/v1/oauth/token?grant_type=client_credentials' \
--header 'Authorization: Basic bWVkaWNhbC1jYXRhbG9ncy1hcGk6NGY4MzdiNzQtNWMzYi00ZTY2LTk0NDYtMjI3YjMyNDJiMDU2'

El request requiere que se realice una autenticación de tipo Basic Auth, donde el Client-ID es el username y el Client-Secret es el password, ambos valores forman la cadena enviada en el header llamado Authorization.

Dependiendo de cliente con el que este realizando la solicitud, podrá enviar los valores de username y password por separado y el se encargará de hacer la codificación en base64, pero también se puede lograr concatenando los valores de la siguiente manera Client-ID + : + Client-Secret y la cadena resultante se codifica en base64.

Si la autenticación es exitosa, la solicitud al recurso /v1/oauth/token?grant_type=client_credentials retornará una respuesta como en el siguiente ejemplo.

{
  "access_token": "da77faca-0600-4e03-a7a2-f78a6675e605",
  "token_type": "bearer",
  "expires_in": 86399,
  "scope": "read write",
  "extensions": {}
}

Si la autenticación no es válida con los valores proporcionados de Client-ID y Client-Secret obtendrá la siguiente respuesta.

{
  "error": "unauthorized",
  "error_description": "Full authentication is required to access this resource"
}