Afficher en Markdown

Authentification

Toutes les requetes API Proctorio necessitent une authentification a l'aide d'une API key. Votre API key identifie votre integration et autorise l'acces aux services Proctorio.

Obtenir une API Key

Les API keys sont fournies par votre gestionnaire de compte Proctorio lors de la configuration de l'integration. Chaque cle est :

  • Liee au compte de votre organisation
  • Limitee a des regions specifiques (AU, CA, DE, EU, IN, JP, SA, SG, UK, US)
  • Activee pour les endpoints requis par votre integration

Format de l'API Key

Votre API key est composee de deux parties :

api_key = {consumer_key}{MD5(secret)}
ComposantDescription
consumer_keyVotre identifiant unique (fourni lors de la configuration)
secretVotre cle secrete (fournie lors de la configuration)
MD5(secret)Le hash MD5 de votre cle secrete, en hexadecimal en minuscules

Formats de cle que vous pouvez recevoir

Selon la configuration de votre integration, vous pouvez recevoir des identifiants dans l'un des deux formats suivants :

Option 1 : API Key complete — Une chaine precalculee prete a l'emploi :

a1b2c3d4e5f67890a1b2c3d4e5f678906286c281a69bb4cd781276f71da08d53

Option 2 : Consumer Key + Secret — Deux valeurs separees que vous combinez :

Consumer Key: a1b2c3d4e5f67890a1b2c3d4e5f67890
Secret:       12345678abcdef0012345678abcdef00

Pour calculer l'API key complete a partir de l'Option 2 :

  1. Calculez le hash MD5 de votre cle secrete
  2. Concatenez : {consumer_key}{md5_hash}

Exemple : Calcul de l'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

Utiliser votre API Key

Incluez votre API key dans l'en-tete api_key de chaque requete :

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://..."}'

Format de l'en-tete

En-teteValeurObligatoire
api_keyVotre API keyOui
Content-Typeapplication/jsonOui (pour les requetes POST)

Endpoints regionaux

Votre API key est provisionnee pour des regions specifiques. Utilisez l'endpoint regional correspondant a votre cle :

RegionURL de base
Australiehttps://au1.proctorapi.com
Canadahttps://ca1.proctorapi.com
Allemagnehttps://de1.proctorapi.com
Europehttps://eu1.proctorapi.com
Indehttps://in1.proctorapi.com
Japonhttps://jp1.proctorapi.com
Afrique du Sudhttps://sa1.proctorapi.com
Singapourhttps://sg1.proctorapi.com
Royaume-Unihttps://uk1.proctorapi.com
Etats-Unishttps://us1.proctorapi.com

L'utilisation d'une mauvaise region renvoie une erreur 401 avec le code 2155 - Incorrect region.

Reponses d'erreur

Les echecs d'authentification renvoient 401 Unauthorized avec l'un de ces codes :

CodeMessageSignification
2154Compte non actifVotre compte est desactive ou suspendu
2155Region incorrecteL'API key n'est pas valide pour cet endpoint regional
2655api_key invalideL'API key est manquante, malformee ou revoquee

Bonnes pratiques de securite

  • N'exposez jamais votre API key dans du code cote client, des depots publics ou des requetes navigateur
  • Utilisez des variables d'environnement pour stocker les cles dans votre application serveur
  • Effectuez une rotation des cles periodiquement en demandant une nouvelle cle a votre gestionnaire de compte
  • Utilisez des cles separees pour les environnements de developpement/pre-production et de production
  • Surveillez l'utilisation via votre tableau de bord Proctorio pour detecter toute activite inattendue

Exemple : Utilisation des variables d'environnement

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://...' })
});