Auth0 et SOC 2 : ce que la certification impose pour votre IAM

La certification SOC 2 Type II impose des contrôles stricts sur l'authentification, les accès et les logs. Voici comment configurer Auth0 pour satisfaire les auditeurs.

Par Auth0.Expert · 2025-04-08 · 10 min de lecture

SOC2 Conformité Audit

Auth0 et SOC 2 : guide de conformité

TL;DR

SOC 2 Type II évalue vos contrôles sur 5 Trust Service Criteria. Auth0 couvre nativement la majorité des exigences d'authentification. Ce guide mappe les contrôles SOC 2 aux fonctionnalités Auth0.

---

Les 5 Trust Service Criteria

Ce tableau synthétise comment chaque critère SOC 2 correspond à des fonctionnalités Auth0 concrètes et prêtes à l'emploi.

| Critère | Code | Contrôles Auth0 concernés | |---------|------|--------------------------| | Security | CC | MFA, brute force, logs | | Availability | A | Uptime SLA, monitoring | | Processing Integrity | PI | Audit trail | | Confidentiality | C | Chiffrement, tokens | | Privacy | P | RGPD, data minimization |

---

CC6 : Logical and Physical Access Controls

Cette section détaille comment contrôler précisément l'accès logique et physique aux ressources via Auth0, pour répondre à SOC 2.

CC6.1 : Identifier et authentifier

Ce bloc liste les contrôles à vérifier pour garantir que tous les accès à votre infrastructure passent par Auth0, avec des exigences de sécurité adaptées selon les contextes.

# Vérifier que tous les accès à l'infra requièrent Auth0
# Checklist :
# ✅ Dashboard Auth0 : MFA obligatoire pour les admins
# ✅ AWS/Azure : SSO via Auth0 (SAML ou OIDC)
# ✅ GitHub/GitLab : SSO SAML Auth0
# ✅ Outils internes : OIDC Auth0
# ✅ Pas de comptes locaux (sauf break-glass)

CC6.2 : MFA obligatoire pour les accès privilégiés

Le code ci-dessous permet de forcer l'authentification multifacteur (MFA) pour les utilisateurs ayant des rôles sensibles, afin d'assurer une meilleure protection des accès critiques.

// Action Auth0 : forcer MFA pour les accès sensibles
exports.onExecutePostLogin = async (event, api) => {
  const sensitiveRoles = ['admin', 'security-admin', 'billing-admin'];
  const userRoles = event.authorization?.roles || [];

  if (userRoles.some(r => sensitiveRoles.includes(r))) {
    api.multifactor.enable('any', {
      allowRememberBrowser: false, // ← Jamais "remember" pour les admins
    });
  }
};

Ce script vérifie automatiquement les rôles de l'utilisateur après chaque connexion et active la MFA si nécessaire, renforçant ainsi la sécurité d'accès.

CC6.3 : Revoke access when no longer needed

Pour automatiser la gestion des comptes inactifs et réduire les risques, voici un script qui désactive les comptes inutilisés depuis 90 jours.

# Script de déprovisionning automatique
# Désactiver les comptes inactifs depuis > 90 jours

async def deprovision_inactive_users(mgmt_token: str, domain: str):
    from datetime import datetime, timedelta
    cutoff = (datetime.utcnow() - timedelta(days=90)).isoformat() + 'Z'

    users = await search_users(mgmt_token, domain,
        f"last_login:[* TO {cutoff}] AND NOT app_metadata.exempt_from_deprovisioning:true"
    )

    for user in users['users']:
        # Bloquer l'utilisateur (pas supprimer — garder l'audit trail)
        await update_user(mgmt_token, domain, user['user_id'], {'blocked': True})
        await send_deprovisioning_notification(user['email'])

    return len(users['users'])

Ce script identifie et bloque tous les comptes inactifs depuis plus de 90 jours, tout en conservant la traçabilité des accès pour l'audit.

---

CC7 : System Operations

Dans cette partie, nous expliquons comment surveiller les événements de sécurité avec Auth0 afin de répondre aux exigences SOC 2 sur l'exploitation du système.

Monitoring des événements de sécurité

Ce bloc définit les types d’événements Auth0 à surveiller en priorité pour détecter rapidement toute activité anormale ou malveillante.

# Exporter les logs Auth0 vers votre SIEM pour l'audit SOC 2
SECURITY_EVENT_TYPES = [
    'f',        # Login failure
    'fp',       # Wrong password
    'limit_wc', # Brute force
    'pwd_leak', # Breached password
    'slo',      # Logout
    'ss',       # Signup
    'admin',    # Admin operations
    'fcoa',     # Failed cross-origin auth
    'frd',      # Rule failure
]

Rapport d'audit mensuel

Cette requête SQL type permet de générer un rapport mensuel des incidents de sécurité, en comptabilisant les échecs de connexion et autres anomalies.

-- Requête sur vos logs exportés (exemple BigQuery)
SELECT
  DATE(timestamp) as date,
  type,
  COUNT(*) as count,
  COUNT(DISTINCT user_name) as unique_users
FROM auth0_logs
WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
  AND type IN ('f', 'fp', 'limit_wc', 'pwd_leak')
GROUP BY 1, 2
ORDER BY 1 DESC, 3 DESC;

Ce rapport synthétise les statistiques des principaux événements de sécurité pour un suivi efficace au fil du temps.

---

CC8 : Change Management

Ce volet explique comment garantir la traçabilité et la validation des changements de configuration Auth0 grâce à une intégration CI/CD.

Auth0 Deploy CLI pour tracer tous les changements de configuration :

# Chaque changement de configuration passe par Git
# → Review obligatoire (PR + approbation)
# → Déploiement automatique via CI/CD
# → Historique complet dans Git

name: SOC2 Auth0 Config Change
on:
  pull_request:
    paths: ['auth0-config/**']
    branches: [main]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - name: Validate Auth0 config
        run: a0deploy import --dry-run

      - name: Notify security team
        uses: slackapi/slack-github-action@v1
        with:
          channel-id: '#security-reviews'
          slack-message: "Auth0 config change in PR #${{ github.event.number }}"

Cette configuration garantit que tout changement Auth0 est audité, testé, validé et notifié à l’équipe sécurité.

---

Evidence pour les auditeurs SOC 2

Voici un tableau récapitulatif des preuves réclamées par les auditeurs SOC 2 et comment les fournir à partir d'Auth0.

| Evidence demandé | Source Auth0 | Comment l'extraire | |-----------------|-------------|-------------------| | Liste des utilisateurs avec accès | Management API /api/v2/users | Export mensuel | | Logs de connexion | Management API /api/v2/logs | Log Streaming | | Politique MFA | Dashboard screenshot | Capture mensuelle | | Comptes désactivés | Management API | Script automatique | | Changements de configuration | Auth0 Logs (admin type) | Log Streaming |

---

Auth0 est lui-même certifié

Avant de choisir un fournisseur IAM pour des besoins SOC 2, il est rassurant de savoir qu’Auth0 bénéficie déjà des certifications de sécurité majeures.

Auth0 (Okta) possède les certifications suivantes :

Téléchargez les rapports via votre Account Manager ou le Trust Center Auth0.

---

> 📋 Préparation SOC 2 : nous vous accompagnons dans la préparation de votre audit SOC 2 Type II, de l'inventaire des contrôles à la génération des evidences.

📞 +33 1 23 45 67 89 · 📧 [email protected]


Autres articles