Skip to Content

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 --help

Authentification

Le CLI supporte deux méthodes d’authentification :

Authentification Interactive (Browser PKCE)

auris login

Lance 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-tenant

Ne 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éValeursDéfautDescription
domainstring—Domaine du tenant Auris
clientIdstring—Client ID de l’application
tenantstring'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 list

Variables d’Environnement

VariableDescription
AURIS_DOMAINDomaine du tenant
AURIS_CLIENT_IDClient ID de l’application
AURIS_CLIENT_SECRETClient secret (M2M uniquement)
AURIS_TENANTIdentifiant tenant
AURIS_CONFIG_PATHChemin vers un fichier de config alternatif
AURIS_OUTPUT_FORMATtable 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 :

OptionDescription
--jsonForcer 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-colorDésactiver les couleurs dans la sortie terminal
--quietSupprimer toute sortie sauf les erreurs
--verboseAfficher les détails de débogage (requêtes HTTP, etc.)
--helpAfficher l’aide pour la commande courante
--versionAfficher 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 init

auris login

Authentifie l’utilisateur via un flux PKCE dans le navigateur.

auris login auris login --tenant my-other-tenant

auris whoami

Affiche les informations de l’utilisateur ou du client M2M actuellement authentifié.

auris whoami

Sortie :

Utilisateur : [email protected] ID : usr_abc123 Rôles : admin, editor Tenant : my-tenant

auris test

Vérifie la connectivité avec l’API Auris et valide la configuration courante.

auris test

auris 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-interactive

Options de applications list :

OptionDescription
--typeFiltrer par type : web, native, spa, m2m
--statusFiltrer 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 --json

Options :

OptionDescription
--pageNuméro de page (défaut : 1)
--limitRésultats par page (défaut : 20, max : 100)
--searchRecherche textuelle sur email et nom
--roleFiltrer par nom de rôle
--statusFiltrer par statut : active, inactive
--jsonSortie 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-interactive

Options :

OptionDescription
--emailAdresse email (obligatoire en mode non-interactif)
--first-namePrénom
--last-nameNom de famille
--usernameNom d’utilisateur
--roleRôle à assigner (peut être répété pour plusieurs rôles)
--send-inviteEnvoyer un email d’invitation avec lien de définition du mot de passe
--non-interactiveNe 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 --enable

Options :

OptionDescription
--first-nameMettre à jour le prénom
--last-nameMettre à jour le nom de famille
--usernameMettre à jour le nom d’utilisateur
--roleRemplacer les rôles (peut être répété)
--enableRéactiver un compte désactivé
--disableDé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 confirmation

La 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 --json

Options :

OptionDescription
--roleFiltrer par permissions assignés à un rôle
--categoryFiltrer par catégorie de permission
--jsonSortie 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 :

OptionDescription
--levelFiltrer par niveau : info, warning, error
--actionFiltrer par nom d’action (ex. user.login, role.created)
--sinceAfficher les entrées depuis cette date (ISO 8601 ou relatif : 1h, 7d)
--untilAfficher les entrées jusqu’à cette date
--limitNombre maximum d’entrées à afficher (défaut : 20)
--followSuivre les nouvelles entrées en continu
--jsonSortie 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-login

Options :

OptionDescription
--listAfficher tous les templates disponibles
--frameworkFramework cible : nextjs, react, php, laravel
--outputDossier de destination (défaut : répertoire courant)

Codes de Sortie

CodeSignification
0Succès
1Erreur générique
2Erreur de configuration (fichier de config manquant ou invalide)
3Erreur d’authentification (non connecté ou token expiré)
4Ressource non trouvée
5Permission 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 fi

Utilisation 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-interactive

Script 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