Outil CLI (@auris/cli)
@auris/cli est l’outil en ligne de commande officiel pour Auris IAM. Il permet de gérer tes tenants Auris directement depuis le terminal ou de l’intégrer dans des pipelines CI/CD.
Installation
# Installation globale (recommandé)
npm install -g @auris/cli
# Ou utilisation sans installation
npx @auris/cli --helpAuthentification
Le CLI supporte deux méthodes d’authentification :
Authentification Interactive (Browser PKCE)
auris loginLance un flux PKCE dans le navigateur. Après une connexion réussie, les tokens sont mémorisés dans ~/.aurisrc. Recommandé pour l’usage local.
Authentification Machine-to-Machine (CI/CD)
Définis les variables d’environnement suivantes sans lancer auris login :
AURIS_DOMAIN=auth.votredomaine.com
AURIS_CLIENT_ID=app_xxxxx
AURIS_CLIENT_SECRET=cs_live_xxxxx
AURIS_TENANT=my-tenantNe commite jamais AURIS_CLIENT_SECRET dans ton dépôt de code. Utilise des secrets chiffrés dans ton système CI/CD (GitHub Actions secrets, GitLab CI variables, etc.).
Configuration
Le fichier de configuration est stocké dans ~/.aurisrc (format JSON) :
{
"domain": "auth.votredomaine.com",
"clientId": "app_xxxxx",
"tenant": "my-tenant",
"outputFormat": "table"
}Options de configuration :
| Clé | Valeurs | Défaut | Description |
|---|---|---|---|
domain | string | — | Domaine du tenant Auris |
clientId | string | — | Client ID de l’application |
tenant | string | 'default' | Identifiant tenant actif |
outputFormat | 'table' | 'json' | 'table' | Format de sortie par défaut |
Pour gérer plusieurs tenants, utilise des fichiers de config distincts et l’option --config :
auris --config ~/.aurisrc-prod users list
auris --config ~/.aurisrc-staging users listVariables d’Environnement
| Variable | Description |
|---|---|
AURIS_DOMAIN | Domaine du tenant |
AURIS_CLIENT_ID | Client ID de l’application |
AURIS_CLIENT_SECRET | Client secret (M2M uniquement) |
AURIS_TENANT | Identifiant tenant |
AURIS_CONFIG_PATH | Chemin vers un fichier de config alternatif |
AURIS_OUTPUT_FORMAT | table ou json |
Les variables d’environnement ont priorité sur les valeurs du fichier de config ~/.aurisrc.
Options Globales
Ces options peuvent être utilisées avec n’importe quelle commande :
| Option | Description |
|---|---|
--json | Forcer la sortie JSON (utile pour les scripts) |
--tenant <id> | Surcharger le tenant pour cette commande uniquement |
--config <path> | Utiliser un fichier de config alternatif |
--no-color | Désactiver les couleurs dans la sortie terminal |
--quiet | Supprimer toute sortie sauf les erreurs |
--verbose | Afficher les détails de débogage (requêtes HTTP, etc.) |
--help | Afficher l’aide pour la commande courante |
--version | Afficher la version du CLI |
Commandes
auris init
Lance un assistant interactif pour créer ou mettre à jour le fichier de configuration.
auris init # Configure ~/.aurisrc
auris init --global # Identique à auris initauris login
Authentifie l’utilisateur via un flux PKCE dans le navigateur.
auris login
auris login --tenant my-other-tenantauris whoami
Affiche les informations de l’utilisateur ou du client M2M actuellement authentifié.
auris whoamiSortie :
Utilisateur : [email protected]
ID : usr_abc123
Rôles : admin, editor
Tenant : my-tenantauris test
Vérifie la connectivité avec l’API Auris et valide la configuration courante.
auris testauris applications
Gère les applications enregistrées dans ton tenant.
# Lister toutes les applications
auris applications list
auris applications list --type web
auris applications list --status active
# Créer une application
auris applications create
auris applications create --name "Mon App" --type web --non-interactiveOptions de applications list :
| Option | Description |
|---|---|
--type | Filtrer par type : web, native, spa, m2m |
--status | Filtrer par statut : active, inactive |
auris users
Gère les utilisateurs du tenant.
auris users list
auris users list
auris users list --search alice
auris users list --role admin
auris users list --status active
auris users list --page 2 --limit 25 --jsonOptions :
| Option | Description |
|---|---|
--page | Numéro de page (défaut : 1) |
--limit | Résultats par page (défaut : 20, max : 100) |
--search | Recherche textuelle sur email et nom |
--role | Filtrer par nom de rôle |
--status | Filtrer par statut : active, inactive |
--json | Sortie JSON |
auris users get
auris users get usr_abc123
auris users get [email protected]auris users create
# Interactif (assistant)
auris users create
# Non-interactif (tous les flags)
auris users create \
--email [email protected] \
--first-name Bob \
--last-name Smith \
--username bob.smith \
--role editor \
--send-invite \
--non-interactiveOptions :
| Option | Description |
|---|---|
--email | Adresse email (obligatoire en mode non-interactif) |
--first-name | Prénom |
--last-name | Nom de famille |
--username | Nom d’utilisateur |
--role | Rôle à assigner (peut être répété pour plusieurs rôles) |
--send-invite | Envoyer un email d’invitation avec lien de définition du mot de passe |
--non-interactive | Ne pas afficher l’assistant — utiliser uniquement les flags |
auris users update
auris users update [email protected] --first-name Alicia
auris users update usr_abc123 --role manager
auris users update usr_abc123 --disable
auris users update usr_abc123 --enableOptions :
| Option | Description |
|---|---|
--first-name | Mettre à jour le prénom |
--last-name | Mettre à jour le nom de famille |
--username | Mettre à jour le nom d’utilisateur |
--role | Remplacer les rôles (peut être répété) |
--enable | Réactiver un compte désactivé |
--disable | Désactiver le compte (l’utilisateur ne peut plus se connecter) |
auris users delete
auris users delete usr_abc123
auris users delete [email protected] --yes # Ignorer la confirmationLa suppression d’un utilisateur est irréversible. Utilise --disable si tu souhaites seulement empêcher temporairement la connexion.
auris roles
Gère les rôles du tenant.
# Lister tous les rôles
auris roles list
# Obtenir les détails d'un rôle (avec ses permissions)
auris roles get admin
auris roles get role_abc123
# Créer un rôle
auris roles create
auris roles create --name "Gestionnaire de Contenu" --description "Peut créer et modifier les contenus"auris permissions
Liste les permissions disponibles dans le tenant.
auris permissions list
auris permissions list --role editor
auris permissions list --category users
auris permissions list --jsonOptions :
| Option | Description |
|---|---|
--role | Filtrer par permissions assignés à un rôle |
--category | Filtrer par catégorie de permission |
--json | Sortie JSON |
auris logs
Consulte les journaux d’audit du tenant en temps réel ou en différé.
# Afficher les dernières entrées
auris logs
# Filtrer par niveau
auris logs --level error
# Filtrer par action
auris logs --action user.login
# Filtrer par plage de dates
auris logs --since "2024-01-15" --until "2024-01-16"
# Limiter le nombre de résultats
auris logs --limit 50
# Suivre en temps réel (comme tail -f)
auris logs --follow
# Sortie JSON pour traitement
auris logs --json | jq '.[] | select(.action == "user.login.failed")'Options :
| Option | Description |
|---|---|
--level | Filtrer par niveau : info, warning, error |
--action | Filtrer par nom d’action (ex. user.login, role.created) |
--since | Afficher les entrées depuis cette date (ISO 8601 ou relatif : 1h, 7d) |
--until | Afficher les entrées jusqu’à cette date |
--limit | Nombre maximum d’entrées à afficher (défaut : 20) |
--follow | Suivre les nouvelles entrées en continu |
--json | Sortie JSON |
auris generate
Génère des templates de code de démarrage pour ta stack.
# Lister les templates disponibles
auris generate --list
# Générer un template
auris generate --framework nextjs --output ./src/auth
# Templates disponibles
auris generate login-page --framework react
auris generate callback-page --framework nextjs
auris generate middleware --framework nextjs
auris generate api-route --framework nextjs
auris generate php-loginOptions :
| Option | Description |
|---|---|
--list | Afficher tous les templates disponibles |
--framework | Framework cible : nextjs, react, php, laravel |
--output | Dossier de destination (défaut : répertoire courant) |
Codes de Sortie
| Code | Signification |
|---|---|
0 | Succès |
1 | Erreur générique |
2 | Erreur de configuration (fichier de config manquant ou invalide) |
3 | Erreur d’authentification (non connecté ou token expiré) |
4 | Ressource non trouvée |
5 | Permission refusé |
Utilise ces codes dans tes scripts shell pour gérer les erreurs :
auris users get [email protected]
if [ $? -eq 4 ]; then
echo "L'utilisateur n'existe pas, création en cours..."
auris users create --email [email protected] --non-interactive
fiUtilisation en CI/CD
GitHub Actions
# .github/workflows/provision.yml
name: Provisionnement des Utilisateurs
on:
workflow_dispatch:
inputs:
email:
description: 'Email de l'utilisateur à créer'
required: true
jobs:
provision:
runs-on: ubuntu-latest
steps:
- name: Installer Auris CLI
run: npm install -g @auris/cli
- name: Créer l'utilisateur
env:
AURIS_DOMAIN: ${{ secrets.AURIS_DOMAIN }}
AURIS_CLIENT_ID: ${{ secrets.AURIS_CLIENT_ID }}
AURIS_CLIENT_SECRET: ${{ secrets.AURIS_CLIENT_SECRET }}
AURIS_TENANT: ${{ secrets.AURIS_TENANT }}
run: |
auris users create \
--email "${{ github.event.inputs.email }}" \
--role viewer \
--send-invite \
--non-interactiveScript Shell
#!/bin/bash
# provision-team.sh — Crée plusieurs utilisateurs depuis un fichier CSV
set -euo pipefail
CSV_FILE="${1:-users.csv}"
if [ ! -f "$CSV_FILE" ]; then
echo "Erreur : fichier $CSV_FILE introuvable"
exit 1
fi
auris test || { echo "Erreur : CLI non authentifié"; exit 3; }
while IFS=',' read -r email first_name last_name role; do
echo "Provisionnement de $email avec le rôle $role..."
if auris users get "$email" --json > /dev/null 2>&1; then
echo " Utilisateur $email existe déjà, mise à jour du rôle..."
auris users update "$email" --role "$role"
else
auris users create \
--email "$email" \
--first-name "$first_name" \
--last-name "$last_name" \
--role "$role" \
--send-invite \
--non-interactive
fi
echo " ✓ $email provisionné"
done < "$CSV_FILE"
echo "Provisionnement terminé."Corrélés
- SDK JavaScript — SDK JavaScript pour l’intégration dans tes applications
- Référence API — Documentation complète de la REST API
- Journaux d’Audit — Consulter les journaux d’audit depuis la Console