Autenticacion
Todas las solicitudes a la API de Proctorio requieren autenticacion mediante una API key. Su API key identifica su integracion y autoriza el acceso a los servicios de Proctorio.
Obtencion de una API Key
Las API keys son proporcionadas por su administrador de cuenta de Proctorio durante la configuracion de la integracion. Cada clave es:
- Vinculada a la cuenta de su organizacion
- Limitada a regiones especificas (AU, CA, DE, EU, IN, JP, SA, SG, UK, US)
- Habilitada para los endpoints que su integracion requiere
Formato de la API Key
Su API key se compone de dos partes:
api_key = {consumer_key}{MD5(secret)} | Componente | Descripcion |
|---|---|
consumer_key | Su identificador unico (proporcionado durante la configuracion) |
secret | Su clave secreta (proporcionada durante la configuracion) |
MD5(secret) | El hash MD5 de su clave secreta, en formato hexadecimal en minusculas |
Formatos de clave que puede recibir
Dependiendo de la configuracion de su integracion, puede recibir credenciales en uno de dos formatos:
Opcion 1: API Key completa — Una cadena precalculada lista para usar:
a1b2c3d4e5f67890a1b2c3d4e5f678906286c281a69bb4cd781276f71da08d53 Opcion 2: Consumer Key + Secret — Dos valores separados que usted combina:
Consumer Key: a1b2c3d4e5f67890a1b2c3d4e5f67890
Secret: 12345678abcdef0012345678abcdef00 Para calcular la API key completa a partir de la Opcion 2:
- Calcule el hash MD5 de su clave secreta
- Concatene: {consumer_key}{md5_hash}
Ejemplo: Calculo de la API Key
import hashlib
consumer_key = "a1b2c3d4e5f67890a1b2c3d4e5f67890"
secret = "12345678abcdef0012345678abcdef00"
# Compute MD5 hash of secret
md5_hash = hashlib.md5(secret.encode()).hexdigest()
# md5_hash = "6286c281a69bb4cd781276f71da08d53"
# Combine to form API key
api_key = consumer_key + md5_hash
# Result: a1b2c3d4e5f67890a1b2c3d4e5f678906286c281a69bb4cd781276f71da08d53 import { createHash } from 'crypto';
const consumerKey = 'a1b2c3d4e5f67890a1b2c3d4e5f67890';
const secret = '12345678abcdef0012345678abcdef00';
// Compute MD5 hash of secret
const md5Hash = createHash('md5').update(secret).digest('hex');
// md5Hash = "6286c281a69bb4cd781276f71da08d53"
// Combine to form API key
const apiKey = consumerKey + md5Hash;
// Result: a1b2c3d4e5f67890a1b2c3d4e5f678906286c281a69bb4cd781276f71da08d53 Uso de su API Key
Incluya su API key en el encabezado api_key de cada solicitud:
curl -X POST https://us1.proctorapi.com/v2/candidate/launch \
-H "api_key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"launch_url": "https://..."}' Formato del encabezado
| Encabezado | Valor | Obligatorio |
|---|---|---|
api_key | Su API key | Si |
Content-Type | application/json | Si (para solicitudes POST) |
Endpoints regionales
Su API key esta aprovisionada para regiones especificas. Utilice el endpoint regional que corresponda a su clave:
| Region | URL base |
|---|---|
| Australia | https://au1.proctorapi.com |
| Canada | https://ca1.proctorapi.com |
| Alemania | https://de1.proctorapi.com |
| Europa | https://eu1.proctorapi.com |
| India | https://in1.proctorapi.com |
| Japon | https://jp1.proctorapi.com |
| Sudafrica | https://sa1.proctorapi.com |
| Singapur | https://sg1.proctorapi.com |
| Reino Unido | https://uk1.proctorapi.com |
| Estados Unidos | https://us1.proctorapi.com |
Usar la region incorrecta devuelve un error 401 con el codigo 2155 - Incorrect region.
Respuestas de error
Los fallos de autenticacion devuelven 401 Unauthorized con uno de estos codigos:
| Codigo | Mensaje | Significado |
|---|---|---|
| 2154 | Cuenta no activa | Su cuenta esta deshabilitada o suspendida |
| 2155 | Region incorrecta | La API key no es valida para este endpoint regional |
| 2655 | api_key invalida | La API key falta, tiene un formato incorrecto o ha sido revocada |
Mejores practicas de seguridad
- Nunca exponga su API key en codigo del lado del cliente, repositorios publicos o solicitudes del navegador
- Utilice variables de entorno para almacenar las claves en su aplicacion de servidor
- Rote las claves periodicamente solicitando una nueva clave a su administrador de cuenta
- Utilice claves separadas para los entornos de desarrollo/pruebas y produccion
- Monitoree el uso a traves de su panel de Proctorio para detectar actividad inesperada
Ejemplo: Uso de variables de entorno
import os
import requests
API_KEY = os.environ.get('PROCTORIO_API_KEY')
response = requests.post(
'https://us1.proctorapi.com/v2/candidate/launch',
headers={
'api_key': API_KEY,
'Content-Type': 'application/json'
},
json={'launch_url': 'https://...'}
) const API_KEY = process.env.PROCTORIO_API_KEY;
const response = await fetch('https://us1.proctorapi.com/v2/candidate/launch', {
method: 'POST',
headers: {
'api_key': API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({ launch_url: 'https://...' })
});