Autenticación
Las API de Docebo utilizan el marco OAuth 2.0 en la mayoría de escenarios de terceros, incluyendo la autenticación y autorización para servidores web y aplicaciones instaladas y del cliente. Las credenciales de la aplicación OAuth 2.0 se pueden obtener en la página de configuración de la aplicación API y SSO de Docebo. Para más información, véase Activar y gestionar la aplicación API y SSO.
Su aplicación del cliente solicitará un token de acceso al LMS, extraerá un token de la respuesta y lo enviará a todas las API REST a las que desee acceder.
Activación y configuración de la aplicación API y SSO de Docebo
En primer lugar deberá activar y configurar la aplicación de API y SSO en su plataforma Docebo. Puede obtener más información sobre cómo configurar correctamente la aplicación y obtener sus credenciales OAuth 2.0 en Activar y gestionar la aplicación API y SSO.
Obtención de un token de acceso
Antes de que su aplicación pueda acceder a los datos privados de la plataforma Docebo Learn con una API de Docebo, debe obtener un token de acceso que le permita acceder a dicho recurso REST. Un solo token de acceso puede acceder a múltiples API. El parámetro scope
controla el conjunto de recursos y operaciones que permite un token de acceso.
Para obtener un token de acceso, deberá realizar una llamada a este extremo. Tenga en cuenta que el comportamiento de las siguientes llamadas a la API dependerá del nivel de usuario utilizado para obtener el token de acceso, en función de los permisos definidos en la plataforma.
https://<yoursubdomain.docebosaas.com>/oauth2/token
Para obtener información relacionada con el token OAuth2 y los parámetros que se deben incluir en las solicitudes que se indican más abajo, consulte la documentación oficial de OAuth2 (se abre en una nueva pestaña).
Uso del tipo de concesión Credenciales de contraseña del propietario del recurso
A continuación se muestra una llamada de ejemplo con el tipo de concesión establecido como Credenciales de contraseña del propietario de recurso:
curl -X POST https://<yoursubdomain.docebosaas.com>/oauth2/token \
-F client_id=<your_client_id> \
-F client_secret=<your_client_secret> \
-F grant_type=password \
-F scope=api \
-F username=<your_username> \
-F password=<your_password>
Respuesta:
{
"access_token": "87b567fa3de847fb3adef9492b294bb83f8cd266",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "api",
"refresh_token":"7db6e6a331223fa0473cfcdf62eb8fec26407a5b"
}
Uso del tipo de concesión Credenciales de cliente
A continuación se muestra una llamada de ejemplo con el tipo de concesión establecido como Credenciales de cliente:
curl -X POST https://<yoursubdomain.docebosaas.com>/oauth2/token \
-F client_id=My-Client-Name \
-F client_secret=ed8c18b099c1f9b8714aaef87001fa3de3a7183d \
-F grant_type=client_credentials \
-F scope=api
Respuesta:
{
"access_token": "87b567fa3de847fb3adef9492b294bb83f8cd266",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "api"
}
A tener en cuenta: Con las nuevas API 7.0, que se encuentran en https://YOURLMS.docebosaas.com/api-browser/
, el sistema necesitará un permiso de usuarios específico para funcionar correctamente. Por este motivo, no podrá utilizar credenciales del cliente para llamar a este tipo de API.
Uso del tipo de concesión Código de autorización + concesión implícita
Si su aplicación emplea la concesión Código de autorización, debe utilizar la siguiente URL para dar inicio al flujo de autorización:
https://<yoursubdomain.docebosaas.com>/oauth2/authorize
Uso del tipo de concesión Portador JWT
Los tokens web JSON son un método RFC 7519 abierto y estándar del sector para representar reclamaciones de forma segura entre dos partes. Para obtener más información, consulte RFC-7519 (se abre en una nueva pestaña). Puede utilizar la tecnología JWT para obtener un token de acceso para acceder a las API de Docebo.
Puede generar un token JWT con el método que prefiera. En el sitio jwt.io (se abre en una nueva pestaña) encontrará algunos ejemplos, así como bibliotecas de muchos lenguajes de programación.
Para crear un token WEB JSON que se pueda usar para autenticarse en Docebo, debe configurar el algoritmo de firma como RS256 y cargar su clave pública a la aplicación API y SSO en su plataforma después de seleccionar el tipo de concesión Portador JWT. A continuación se muestra un ejemplo de clave pública:
-----BEGIN PUBLIC KEY-----
MIGeMA0GCSqGSIb3DQEBAQUAA4GMADCBiAKBgGOrtjv/oPcaWIQL7h3DwvGbWFhH
fAIP02pPPw1Cp8h0SUkmGAWUGKCNH2WuIeNxPlRZKmW86aivknrRtEN3QW6eEsFZ
ZSIKVmUPekKrSpvYmYwkTCnwCb4gpDu1ZPEde8VXhQjLRl7ielUktzzbXW7v1HmI
fDASHvMvIl4kwGA/AgMBAAE=
-----END PUBLIC KEY-----
Para que el LMS pueda autenticar al usuario, es necesaria la siguiente información:
-
Iss
(Reclamación de emisor) - Debe contener el ID de cliente configurado dentro de la plataforma Docebo Learn para el SSO.
-
sub
(Reclamación de objeto) - Debe contener el nombre de usuario que desee utilizar para iniciar sesión en la plataforma Docebo Learn.
-
aud
(Reclamación de destinatario) - Debe contener el nombre de host de la plataforma Docebo Learn (sin protocolo) en la que desee autenticarse.
-
iat
(Reclamación de fecha de envío) - Debe contener la fecha de creación del token en formato de marca de tiempo Unix.
-
exp
(Reclamación de vencimiento) - Debe contener la fecha de vencimiento en formato de marca de tiempo Unix.
La carga útil del token, por lo tanto, tendrá este aspecto:
{
"alg": "RS256",
"typ": "JWT"
}
{
"iss": "<your_client_id>",
"sub": "<docebo_username>",
"aud": "<yoursubdomain.docebosaas.com>",
"iat": "1510649850",
"exp": "2554329600"
}
Una vez que firme el token con su clave privada, obtendrá un token JWT codificado listo para ser enviado para la autenticación. Un token JWT codificado tiene un aspecto similar a esto:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJjbGllbnRfaWRfaGVyZSIsInN1YiI6
InVzZXJuYW1lX2hlcmUiLCJhdWQiOiJ5b3VybG1zLmRvY2Vib3NhYXMuY29tIiwiaWF0IjoiMTUxM
DY0OTg1MCIsImV4cCI6IjI1NTQzMjk2MDAifQ.mrA_k6OClsczj9kEz_jeGZxlusCmzOJWLyDGEp5
A3BttCBna9aKP2_AqCaiwhntjrQ9L6NBEH9oxHr4pM2G9tyeSEGxD0VLVe3CoDljzMgvMdyyK8HP4
0QtALCYEuVF2BIpS8Mz2KhvysKhzVJR71suwaAYnR0I7G8_kAlUR9Ck
A continuación podrá enviar los datos al extremo de autenticación. Aquí le mostramos una llamada de ejemplo con el tipo de concesión establecido como Portador JWT:
curl -X POST
https://<yoursubdomain.docebosaas.com>/oauth2/token \
-F grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer \
-F scope=api \
-F assertion=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJEb2NlYm9PRU0iLCJ\
zdWIiOiJyaWNjYXJkby5nYWxpbWJlcnRpQGRvY2Viby5jb20iLCJhdWQiOiJyZ2FsaW1iZXJ0aS\
5kb2NlYm9zYWFzLmNvbSIsImlhdCI6IjE1MTA2NDk4NTAiLCJleHAiOiIyNTU0MzI5NjAwIn0.n\
0Sr0Cy3wjE7C-TqJLTi1JfZjnWnXcKoCidCtz4o8HsaHI0LomM5Ln3gWOqJXq5EI67yDr9L_EwA\
44-_lFKVjV8FAmUU72ZU6indDXP7SaCMEmqQu5tbo9AnW_RKHGoAXPWspH95iZe_VaM0SFjmHbo\
ZXGgPmEt3aNfhaJBBzIcLuk1EIcGZEqtN4ENVp_MREtCMrFg3yMyx47dcf0rmBvizkmthTW1so8\
TG7OXgTfNR0tzPNAOPGbRqciSgfcBNb_ftalW0gE3unAnXpfqMD-8gcUq-c43DfTOiCeNm-ZBLm\
rVoKeUXshyDjf0JOrP8kReIQ9mWIyI0-gvh5-UMVQ
Respuesta:
{
"access_token": "87b567fa3de672fb3adef9492b294bb83f8cd266",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "api"
}
Envío del token de acceso a una API
Después de obtener un token de acceso, su aplicación debe proporcionar el token a todas las llamadas a la API de Docebo en el encabezado de autorización HTTP en el formato:
Bearer <access_token>
Ejemplo:
curl -X GET https://<yoursubdomain.docebosaas.com>/learn/v1/courses \
-H 'Authorization: Bearer 2af6ac532cfef197b00f69639aeeef86621d1975'
Actualización del token de acceso
Dado que los tokens tienen una duración limitada de 14 días, su aplicación puede obtener un token nuevo mediante el extremo del token si necesita acceder a una API de Docebo más allá de la duración de un token de acceso individual. Un token de actualización permite a su aplicación obtener nuevos tokens de acceso.
Asegúrese de seguir las directrices descritas en la documentación oficial de OAuth (se abre en una nueva pestaña) con respecto al uso y almacenamiento seguro de un token de actualización.
Envío del token de acceso para el inicio de sesión único
Tras obtener un token de acceso, su aplicación deberá insertarlo en un formato de URL específico que permita el SSO. El formato es el siguiente:
https://<YOURLMS>.docebosaas.com/learn;type=oauth2_response;access_token=<token>;expires_in=4000;token_type=bearer;scope=api
A tener en cuenta: Si está utilizando un dominio personalizado, deberá reemplazar YOURLMS.docebosaas.com
con la URL de su dominio personalizado.