Centre d'aide/Sécurité

Sécurité

Apertur est conçu avec la sécurité à chaque niveau. Ce guide couvre les outils et les meilleures pratiques pour protéger vos clés API, vérifier les données des webhooks et sécuriser votre compte.

Sécurité des clés API

Les clés API sont le principal moyen d'authentification auprès de l'API Apertur. Les garder en sécurité est essentiel pour protéger votre compte et les données de vos utilisateurs.

Liste d'adresses IP autorisées

Restreignez votre clé API à des adresses IP ou des plages CIDR spécifiques afin que seuls vos serveurs puissent effectuer des requêtes.

  1. Ouvrez votre projet et allez dans Paramètres > Clés API.
  2. Cliquez sur la clé que vous souhaitez restreindre.
  3. Sous Liste d'IP autorisées, ajoutez les adresses IP de vos serveurs.
  4. Cliquez sur Enregistrer. Les requêtes provenant d'autres adresses IP seront rejetées avec une erreur 403.

Restrictions de domaine

Pour les clés côté client (le cas échéant), restreignez la clé à des domaines spécifiques pour empêcher toute utilisation non autorisée.

  1. Ouvrez votre projet et allez dans Paramètres > Clés API.
  2. Cliquez sur la clé que vous souhaitez restreindre.
  3. Sous Domaines autorisés, ajoutez les domaines de votre site Web.
  4. Cliquez sur Enregistrer. Les requêtes provenant d'autres origines seront rejetées.

Rotation des clés

Effectuez une rotation de vos clés API régulièrement, surtout si vous soupçonnez qu'une clé a été compromise. Vous pouvez créer une nouvelle clé et migrer votre intégration avant de révoquer l'ancienne — les deux clés peuvent être actives simultanément pendant la transition.

Important

Ne commettez jamais de clés API dans le contrôle de version, ne les intégrez pas dans du code côté client et ne les partagez pas en texte clair. Utilisez des variables d'environnement ou un gestionnaire de secrets.

TOTP pour les clés API

Pour une couche de sécurité supplémentaire, vous pouvez exiger un mot de passe à usage unique basé sur le temps (TOTP) avec chaque requête API utilisant une clé spécifique.

  1. Ouvrez les paramètres de votre clé API et cliquez sur Activer le TOTP.
  2. Scannez le QR code avec votre application d'authentification (Google Authenticator, Authy, 1Password, etc.).
  3. Entrez le code à 6 chiffres pour vérifier la configuration.
  4. Dorénavant, incluez le code TOTP dans l'en-tête X-APTR-TOTP avec chaque requête.

Le nom de l'en-tête est X-APTR-TOTP. Les codes sont valides pendant 30 secondes avec une tolérance d'un pas de temps.

curl -X POST https://api.apertur.ca/v1/sessions \
  -H "Authorization: Bearer aptr_xxxx" \
  -H "X-APTR-TOTP: 123456" \
  -H "Content-Type: application/json" \
  -d '{ "delivery_mode": "webhook", "webhook_url": "https://..." }'

Conseil

Le TOTP pour les clés API est idéal pour les environnements à haute sécurité tels que les services financiers ou le secteur de la santé. Pour la plupart des cas d'utilisation, la liste d'adresses IP autorisées offre une protection suffisante.

Certificats client (mTLS)

Le TLS mutuel (mTLS) fournit le plus haut niveau d'authentification API en exigeant un certificat client avec chaque requête, en plus de votre clé API.

  1. Générez un certificat client et une clé privée (ou utilisez-en un émis par l'autorité de certification de votre organisation).
  2. Téléversez le certificat dans les paramètres de votre clé API sous Certificats client.
  3. Apertur validera le certificat à chaque requête.
  4. Incluez à la fois le certificat et la clé lors de vos appels API (voir l'exemple ci-dessous).
  5. Les requêtes sans certificat client valide seront rejetées avec une erreur 403.
# cURL with client certificate
curl -X POST https://api.apertur.ca/v1/sessions \
  --cert client.crt \
  --key client.key \
  -H "Authorization: Bearer aptr_xxxx" \
  -H "Content-Type: application/json" \
  -d '{ "delivery_mode": "webhook", "webhook_url": "https://..." }'

Mots de passe de session

Vous pouvez protéger des sessions de téléversement individuelles avec un mot de passe. Lorsqu'il est défini, les utilisateurs finaux doivent entrer le mot de passe avant de pouvoir téléverser des photos.

curl -X POST https://api.apertur.ca/v1/sessions \
  -H "Authorization: Bearer aptr_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "delivery_mode": "webhook",
    "webhook_url": "https://your-app.com/webhook",
    "password": "claim-4521-pin"
  }'

Les mots de passe sont hachés à l'aide de bcrypt sur le serveur. Apertur ne stocke jamais les mots de passe en clair et ils ne peuvent pas être récupérés après la création.

Cas d'utilisation

Les mots de passe de session sont utiles pour les flux de travail sensibles, comme les réclamations d'assurance ou les soumissions de photos médicales, où vous souhaitez vous assurer que seul le destinataire prévu peut téléverser.

SDK Origin Validation

When using the aptr-connect SDK, you can restrict which domains are allowed to use your public key by configuring allowed domains on your OAuth app. The server validates the Origin header of incoming requests against your allowed domains list.

Wildcards are supported: *.example.com matches any subdomain at any depth. Leave the list empty during development to allow all origins.

Configure allowed domains in your partner OAuth app settings.

Vérification des signatures de webhook

Chaque livraison de webhook inclut un en-tête X-APTR-Signature contenant une signature HMAC-SHA256 du corps de la requête. Vérifiez cette signature pour vous assurer que les données ont été envoyées par Apertur et n'ont pas été altérées.

Node.js
const crypto = require("crypto");

function verifyWebhook(body, signatureHeader, secret) {
  const expected = "sha256=" +
    crypto.createHmac("sha256", secret)
      .update(body)
      .digest("hex");

  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signatureHeader)
  );
}

// In your Express handler:
app.post("/webhook", express.raw({ type: "*/*" }), (req, res) => {
  if (!verifyWebhook(req.body, req.headers["x-aptr-signature"], WEBHOOK_SECRET)) {
    return res.status(401).send("Invalid signature");
  }
  // Safe to process...
  res.status(200).end();
});
Python
import hmac
import hashlib

def verify_webhook(body: bytes, signature: str, secret: str) -> bool:
    expected = "sha256=" + hmac.new(
        secret.encode(), body, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, signature)

Note de sécurité

Utilisez toujours une fonction de comparaison à temps constant (comme timingSafeEqual ou hmac.compare_digest) pour prévenir les attaques temporelles lors de la vérification des signatures.

Sécurité du compte

Au-delà de la sécurité des clés API, protégez votre compte Apertur lui-même avec ces mesures.

Authentification à deux facteurs (2FA)

Activez la 2FA pour exiger une deuxième étape de vérification lors de la connexion.

  1. Allez dans Paramètres du compte > Sécurité.
  2. Cliquez sur Activer l'authentification à deux facteurs.
  3. Scannez le QR code avec votre application d'authentification.
  4. Entrez le code de vérification et sauvegardez vos codes de récupération dans un endroit sûr.
  5. Dorénavant, vous aurez besoin de votre code d'authentification chaque fois que vous vous connecterez.

Clés d'accès

Les clés d'accès offrent une expérience de connexion sans mot de passe et résistante à l'hameçonnage, utilisant la biométrie ou une clé de sécurité matérielle.

  1. Allez dans Paramètres du compte > Sécurité.
  2. Cliquez sur Ajouter une clé d'accès.
  3. Suivez les instructions de votre navigateur pour enregistrer une clé d'accès (empreinte digitale, Face ID ou clé de sécurité).
  4. Vous pouvez maintenant vous connecter avec votre clé d'accès au lieu d'un mot de passe.

Alertes de connexion

Apertur envoie une notification par courriel lorsque votre compte est accédé depuis un nouvel appareil ou un nouvel emplacement. Examinez ces alertes rapidement et changez votre mot de passe si vous ne reconnaissez pas l'activité.

Cet article vous a-t-il été utile?

Besoin d'aide supplémentaire? Contactez notre équipe de soutien.