Concevoir son architecture de tenants Auth0 : dev, staging, prod

Comment structurer vos tenants Auth0 pour le développement, les tests et la production ? Stratégies d'isolation, de promotion et de configuration as code.

Par Auth0.Expert · 2025-02-20 · 9 min de lecture

Architecture DevOps Tenants

Architecture de tenants Auth0 : dev / staging / prod

TL;DR

Ne partagez jamais un tenant Auth0 entre développement et production. Ce guide présente les patterns d'architecture multi-tenant et comment automatiser la promotion des configurations.

---

Pattern recommandé : 3 tenants

Ce tableau présente le découpage classique entre tenants Auth0 pour isoler les environnements et sécuriser le cycle de développement.

myapp-dev.eu.auth0.com    → Développeurs locaux, données fictives
myapp-staging.eu.auth0.com → Tests d'intégration, CI/CD
myapp.eu.auth0.com         → Production

Pourquoi pas le même tenant ?

---

Auth0 Deploy CLI : configuration as code

Cette partie montre comment installer et configurer Auth0 Deploy CLI pour gérer vos configurations infrastructure as code.

npm install -g auth0-deploy-cli

Ce fichier YAML permet de paramétrer vos accès Auth0 et de gérer les variables d'environnement pour le déploiement.

# config.yaml
AUTH0_DOMAIN: myapp-dev.eu.auth0.com
AUTH0_CLIENT_ID: your_deploy_client_id
AUTH0_CLIENT_SECRET: your_deploy_secret
AUTH0_KEYWORD_REPLACE_MAPPINGS:
  API_URL: http://localhost:8001
  APP_URL: http://localhost:3000

Ces commandes automatisent l'export et l'import de configuration entre tenants, pour un déploiement sécurisé et répétable.

# Exporter la config de dev
a0deploy export --config_file config-dev.yaml --format yaml --output_folder tenant-config/

# Importer sur staging
a0deploy import --config_file config-staging.yaml --input_file tenant-config/

Ce processus permet de transférer facilement une configuration validée de développement vers l'environnement de staging, tout en conservant les bonnes pratiques de déploiement.

---

Structure de dossiers Configuration as Code

Cette arborescence explique comment organiser les fichiers de configuration Auth0 pour chaque ressource (actions, apps, connexions).

tenant-config/
├── actions/
│   ├── post-login-add-roles.js
│   └── pre-registration-validation.js
├── clients/
│   ├── spa-app.json
│   └── mobile-app.json
├── connections/
│   ├── google-oauth2.json
│   └── enterprise-azure-ad.json
├── resource-servers/
│   └── main-api.json
├── rules/       # Legacy, à migrer vers actions
└── tenant.yaml

Cette structure permet de versionner et de partager l’ensemble des configurations Auth0 dans votre repo Git.

---

Keyword Replacement : un seul fichier, N environnements

Vous pouvez utiliser des mots-clés pour adapter votre configuration à chaque environnement sans dupliquer les fichiers.

// clients/spa-app.json
{
  "name": "spa-app",
  "callbacks": ["##APP_URL##/callback"],
  "allowed_logout_urls": ["##APP_URL##"],
  "web_origins": ["##APP_URL##"]
}

Voici un exemple d’utilisation du mapping de variables pour cibler local en dev, et le domaine officiel en prod.

# config-dev.yaml
AUTH0_KEYWORD_REPLACE_MAPPINGS:
  APP_URL: http://localhost:3000

# config-prod.yaml
AUTH0_KEYWORD_REPLACE_MAPPINGS:
  APP_URL: https://app.mycompany.com

---

Pipeline CI/CD GitHub Actions

Cette section décrit comment automatiser les déploiements Auth0 via GitHub Actions dès qu’une configuration est modifiée dans le dépôt.

name: Deploy Auth0 Config
on:
  push:
    branches: [main]
    paths: ['tenant-config/**']

jobs:
  deploy-staging:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm install -g auth0-deploy-cli
      - run: |
          a0deploy import             --config_file config-staging.yaml             --input_file tenant-config/
        env:
          AUTH0_CLIENT_SECRET: ${{ secrets.AUTH0_STAGING_SECRET }}

  deploy-prod:
    needs: [deploy-staging, run-integration-tests]
    runs-on: ubuntu-latest
    environment: production
    steps:
      - run: |
          a0deploy import             --config_file config-prod.yaml             --input_file tenant-config/
        env:
          AUTH0_CLIENT_SECRET: ${{ secrets.AUTH0_PROD_SECRET }}

Ce workflow CI/CD garantit que vos modifications Auth0 sont testées puis déployées vers la production de façon contrôlée et sécurisée.

---

Checklist avant mise en production

Voici la liste des contrôles à effectuer avant de migrer une configuration Auth0 en prod, pour éviter les failles de sécurité et garantir la conformité.

---

> 🏗️ Besoin d'une architecture Auth0 sur mesure ? Nous concevons et implémentons votre stratégie multi-tenant en tenant compte de vos contraintes de conformité et de scalabilité.

📧 [email protected]


Autres articles