Autenticación
Para interactuar con la API de Token Requestor debe autenticar sus peticiones, de esta forma identificamos y validamos la información para que sus operaciones sean seguras. La API utiliza Web Services Security Username Token Profile 1.1.
Credenciales API
En la integración con Token Requestor usted debe contar con las credenciales login y secretKey de consumidor.
- login: Identificador del sitio, puede considerarse público, pues viaja como dato plano en las peticiones API.
- secretKey: Llave secreta del sitio, debe ser privada, a partir de este dato se generará un nuevo tranKey que será enviado en las peticiones.
Estas credenciales son propias del sitio y deben ser tratadas de forma segura. No comparta sus credenciales en áreas de acceso público como Github, código del lado de cliente u otros lugares de fácil acceso para terceros.
Objeto Authentication
El parámetro auth
debe ser enviado en todas la peticiones API y contiene el grupo de propiedades necesarias para verificar la autenticación.
- Name
auth.login
- Type
- string
- is Required
- REQUIRED
- Description
Identificador del sitio
- Name
auth.tranKey
- Type
- string
- is Required
- REQUIRED
- Description
Credencial tranKey generado. A continuación se explica en detalle.
- Name
auth.nonce
- Type
- string
- is Required
- REQUIRED
- Description
Valor aleatorio para cada solicitud codificado en Base64.
- Name
auth.seed
- Type
- string
- is Required
- REQUIRED
- Description
Fecha actual, la cual se genera en formato ISO 8601.
Autenticación de Ejemplo
{
"auth": {
"login":"1441d14df19ec88431e513bb990326e1",
"tranKey":"DGYymv6ohpYwtLWon/iADE/COoo9JXt4jqyk6D006PY=",
"nonce":"enQ4dXh3YWhkMWM=",
"seed":"2023-06-21T09:56:06-05:00"
},
...
}
Cómo generar tu autenticación
Debes conocer y preparar los siguientes datos:
login: Credencial login
provista al inicar tu integración. Identificador del sitio.
secretKey: Credencial secretKey
provista al iniciar tu integración. Llave secreta del sitio.
seed: Se trata de la fecha en la que se generó la autenticación. La fecha debe estar en formato ISO 8601.
Ejemplo: 2023-06-21T09:56:06-05:00
nonce: Valor arbitrario que identifica a una petición cómo única.
Se genera y se utiliza para otras operaciones.
Al momento de enviarlo, debe ser codificado en base 64.
Ejemplo: base64('927342197')
tranKey: Se genera en cada solicitud de forma programática.
Se genera con la siguiente fórmula Base64(SHA-256(nonce + seed + secretKey))
esta fórmula debe ser traducida según el lenguaje de programación utilizado.
Generate authentication
$login = "siteLogin";
$secretKey = "siteSecretKey";
$seed = date('c');
$rawNonce = rand();
$tranKey = base64_encode(hash('sha256', $rawNonce.$seed.$secretKey, true));
$nonce = base64_encode($rawNonce);
$body = [
"auth" => [
"login" => $login,
"tranKey" => $tranKey,
"nonce" => $nonce,
"seed" => $seed,
],
// ... other params
];