Auth0 pour la santé : certification HDS et hébergement de données de santé

Utilisez Auth0 dans un contexte HDS (Hébergement de Données de Santé) : architecture conforme, cloisonnement, audit trails et alternatives certifiées.

Par Auth0.Expert · 2025-05-12 · 13 min de lecture

HDS Santé Conformité Auth0

Auth0 pour la santé : certification HDS et données de santé

TL;DR

Auth0/Okta n'est pas certifié HDS (Hébergement de Données de Santé). Pour les applications de santé françaises, vous devez soit utiliser un hébergeur HDS certifié pour vos données patients, soit opter pour une architecture où Auth0 ne traite que des données d'identité non-sensibles.

Points de douleur

Architecture HDS conforme avec Auth0

Cette architecture illustre la séparation nécessaire : Auth0 ne gère que l'identité, tandis que toutes les données sensibles sont stockées chez un hébergeur HDS certifié.

Architecture recommandée :

┌─────────────────────────────────────────────────┐
│         Hébergeur HDS Certifié                   │
│   (OVHcloud HDS, Outscale, Orange Business)      │
│                                                  │
│  ┌──────────────┐    ┌───────────────────────┐   │
│  │   Votre App  │    │  DB Patients (HDS)    │   │
│  │   (Backend)  │───▶│  - Dossiers médicaux  │   │
│  └──────┬───────┘    │  - Données de santé   │   │
│         │            └───────────────────────┘   │
└─────────┼───────────────────────────────────────┘
          │ JWT Auth0 (identité seulement)
          ▼
    ┌───────────┐
    │   Auth0   │  ← Identité uniquement
    │  (non HDS)│     email, nom, rôle
    └───────────┘     PAS de données médicales
          ▲
    Professionnel
    de santé

Ce qu'Auth0 peut gérer (non-HDS)

Ce bloc montre un exemple de token JWT Auth0 qui ne contient que des informations d'identité professionnelle, sans aucune donnée médicale ni information patient.

// Token Auth0 pour professionnel de santé
// UNIQUEMENT des données d'identité professionnelle
{
  "sub": "auth0|praticien_123",
  "email": "[email protected]",
  "name": "Dr. Sophie Martin",

  // Données de rôle (non médicales) ✅
  "https://votre-app.fr/role": "medecin",
  "https://votre-app.fr/rpps": "10012345678",  // N° RPPS
  "https://votre-app.fr/specialite": "cardiologie",
  "https://votre-app.fr/etablissement": "CHU Bordeaux",

  // PAS dans Auth0 ❌
  // - données patients
  // - diagnostics
  // - ordonnances
  // - numéros sécu
}

Cet exemple montre comment Auth0 peut gérer l’identité, tout en respectant les exigences de la norme HDS.

Authentification forte pour professionnels de santé

Voici comment forcer l’utilisation de l’authentification multifacteur (MFA) pour renforcer la sécurité lors de la connexion des professionnels de santé.

// Auth0 Action : forcer MFA pour tous les médecins
exports.onExecutePostLogin = async (event, api) => {
  const role = event.user.app_metadata?.role;

  // MFA obligatoire pour tout personnel médical
  if (["medecin", "infirmier", "pharmacien"].includes(role)) {
    if (event.authentication?.methods?.includes("mfa")) {
      // MFA déjà effectué ✅
      return;
    }

    // Forcer MFA — idéalement WebAuthn (carte CPS ou clé FIDO2)
    api.authentication.challengeWithAny([
      { type: "webauthn-roaming" },  // Clé FIDO2
      { type: "webauthn-platform" }, // Touch ID / Face ID
      { type: "totp" }               // Authenticator app (fallback)
    ]);
  }
};

Ce code garantit qu’un professionnel de santé doit toujours réaliser une authentification forte adaptée à son usage, sécurisant ainsi l’accès aux ressources sensibles.

Pour intégrer une carte CPS ou un fournisseur SSO institutionnel, il faut configurer Auth0 avec une connexion OIDC ou SAML connectée au fournisseur officiel comme Pro Santé Connect.

// Idéalement : intégration carte CPS via certificat
// La carte CPS supporte l'authentification par certificat
// Configurez une connexion Auth0 Enterprise (SAML/OIDC) avec le fournisseur CPS-ENS

// Exemple de connexion via Pro Santé Connect (PSC)
// PSC est le fournisseur d'identité officiel des professionnels de santé
const proSanteConnectConfig = {
  name: "pro-sante-connect",
  strategy: "oidc",
  options: {
    client_id: process.env.PSC_CLIENT_ID,
    client_secret: process.env.PSC_CLIENT_SECRET,
    discovery_url: "https://auth.esante.gouv.fr/auth/realms/esante-wallet/.well-known/openid-configuration",
    scope: "openid profile email",
    // Attributs retournés : RPPS, specialite, nom, prenom
  }
};

Cette configuration permet d’utiliser l’identité qualifiée fournie par Pro Santé Connect pour sécuriser l’accès à vos applications santé avec Auth0.

Audit trail complet des accès

Ce code envoie systématiquement un journal d’accès authentifié à votre SIEM conforme HDS pour la traçabilité, clé pour la conformité.

# Action Auth0 : logger chaque accès à votre SIEM HDS
exports.onExecutePostLogin = async (event, api) => {
  // Logger dans votre système d'audit HDS
  await fetch(process.env.HDS_AUDIT_ENDPOINT, {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "X-HDS-API-Key": process.env.HDS_AUDIT_KEY
    },
    body: JSON.stringify({
      timestamp: new Date().toISOString(),
      event_type: "authentication",
      user_id: event.user.user_id,
      rpps: event.user.app_metadata?.rpps,
      role: event.user.app_metadata?.role,
      ip_address: event.request.ip,
      user_agent: event.request.user_agent,
      mfa_used: event.authentication?.methods?.includes("mfa"),
      auth_method: event.authentication?.methods,

      // Contexte HDS requis
      application: event.client.name,
      session_id: event.session?.id,
    })
  });
};

Pour chaque connexion, un log riche est envoyé vers un système d’audit conforme, ce qui facilite la conformité et les contrôles HDS.

Hébergeurs HDS certifiés (pour vos données médicales)

Voici une synthèse des principaux hébergeurs certifiés HDS pour abriter vos données médicales en toute conformité :

| Hébergeur | Certification | Notes | |---|---|---| | OVHcloud | HDS + ISO27001 | Hosting + infogérance | | Outscale (Dassault) | HDS + SecNumCloud | Souverain français | | Orange Business | HDS | Offre dédiée santé | | Microsoft Azure | HDS | Data center France | | AWS | HDS | Paris + Marseille | | Atos (Evidian) | HDS | Solutions IAM HDS |

Architecture alternative : IdP HDS

Si votre application requiert expressément un fournisseur d’identité certifié HDS, il existe plusieurs options déployables en France.

Options IdP HDS certifiés :
- Atos Evidian (IAM HDS)
- ForgeRock (peut être déployé on-premise HDS)
- Keycloak (self-hosted sur infrastructure HDS)
- Microsoft Entra ID (HDS certifié pour Azure France)

Checklist conformité HDS avec Auth0

Voici une checklist pratique pour vérifier votre conformité HDS avec Auth0 en production.

Architecture :
✅ Auth0 : identité seulement (email, nom, rôle)
✅ Données médicales : hébergeur HDS certifié
✅ Pas de données de santé dans user_metadata Auth0

Authentification :
✅ MFA obligatoire pour tous les professionnels
✅ WebAuthn / carte CPS pour accès données sensibles
✅ Session timeout court (15-30 min)
✅ Révocation immédiate des accès

Traçabilité :
✅ Log streaming vers SIEM hébergé HDS
✅ Audit trail immuable de tous les accès
✅ Conservation logs 10 ans (obligation HDS)
✅ Alertes accès anormaux

Auth0.Expert vous accompagne dans la conception d'architectures d'authentification conformes HDS pour les acteurs de la santé numérique.


Autres articles