Skip to Content

Gestione degli Utenti

Auris fornisce un sistema completo per la gestione del ciclo di vita degli utenti accessibile sia tramite la Console Admin che tramite le API REST. Gli amministratori possono elencare, creare, aggiornare, disabilitare, eliminare temporaneamente e ripristinare gli utenti senza toccare l’interfaccia admin nativa di Keycloak.


Elenco degli Utenti

L’elenco utenti supporta paginazione, ricerca full-text, filtraggio per ruolo e per stato. I risultati vengono restituiti nell’envelope di paginazione standard di Auris.

GET/api/usersRequires: manage:users

Restituisce un elenco paginato di utenti per il tenant corrente. Supporta i parametri query: page, limit, search (corrisponde a email, username, firstName, lastName), role (filtra per nome ruolo), status (active | disabled | deleted).

Struttura della risposta:

{ "data": [ { "id": "usr_01HX...", "email": "[email protected]", "username": "alice", "firstName": "Alice", "lastName": "Rossi", "enabled": true, "roles": ["member"], "createdAt": "2025-03-01T10:00:00Z", "lastLogin": "2025-06-10T08:45:00Z", "metadata": {} } ], "pagination": { "page": 1, "limit": 20, "total": 142, "totalPages": 8 } }

Guida alla Console: Vai su Console Admin → Utenti. La tabella si aggiorna automaticamente quando modifichi il termine di ricerca o applichi i filtri. Clicca su una riga per aprire il pannello di dettaglio utente.


Creazione degli Utenti

Gli utenti possono essere creati direttamente con una password, oppure senza password per attivare un’email di invito che chiede all’utente di impostare le proprie credenziali.

POST/api/usersRequires: manage:users

Crea un nuovo utente sia nel database di Auris che nel realm Keycloak sottostante.

Corpo della richiesta:

{ "email": "[email protected]", "username": "mario", "firstName": "Mario", "lastName": "Rossi", "password": "PasswordSicura123!", "sendInvite": false, "roles": ["member"], "metadata": { "department": "engineering", "employeeId": "EMP-4421" } }

Riferimento campi:

CampoTipoObbligatorioNote
emailstringSìDeve essere univoca nel tenant
usernamestringNoDi default è la parte locale dell’indirizzo email
firstNamestringNo
lastNamestringNo
passwordstringNoOmetti per inviare un invito al posto
sendInvitebooleanNoInvia un’email di configurazione quando password è omessa
rolesstring[]NoArray di nomi ruolo da assegnare alla creazione
metadataobjectNoJSON arbitrario memorizzato nel record utente

Se vengono forniti sia password che sendInvite: true, la password viene impostata e non viene inviata alcuna email di invito. Imposta sendInvite: true senza password per richiedere all’utente di definire le proprie credenziali al primo accesso.

Guida alla Console: Clicca il pulsante “Nuovo Utente” nella pagina Utenti. Il dialogo presenta un form a schede: Generale (nome, email), Credenziali (password o toggle invito) e Ruoli (selezione multipla).


Aggiornamento degli Utenti

PATCH/api/users/[id]Requires: manage:users

Aggiorna parzialmente un record utente. Solo i campi inclusi nel corpo della richiesta vengono modificati.

Campi aggiornabili:

{ "firstName": "Mario", "lastName": "Bianchi", "enabled": true, "roles": ["member", "billing-admin"], "metadata": { "department": "leadership" } }

L’aggiornamento di roles sostituisce completamente il set di ruoli dell’utente — includi tutti i ruoli desiderati, non solo quelli da aggiungere. Per aggiungere un singolo ruolo senza influenzare gli altri, leggi prima l’elenco ruoli corrente, aggiungi il nuovo ruolo, poi invia il set completo.

L’aggiornamento di enabled: false disabilita immediatamente l’utente in Keycloak, invalidando tutte le sessioni attive.


Eliminazione Temporanea e Ripristino

Auris usa l’eliminazione temporanea (soft delete) per preservare le tracce di audit. L’eliminazione di un utente contrassegna il record con deletedAt invece di rimuoverlo dal database o da Keycloak.

DELETE/api/users/[id]Requires: manage:users

Elimina temporaneamente l’utente impostando deletedAt. L’utente viene immediatamente disabilitato in Keycloak e non può effettuare il login.

Ripristino di un utente:

POST/api/users/[id]/restoreRequires: manage:users

Cancella deletedAt e riabilita l’utente in Keycloak.

Guida alla Console: La pagina Utenti ha una scheda filtro “Eliminati” che mostra gli utenti eliminati temporaneamente. Ogni riga utente eliminato ha un’azione “Ripristina” nel menu a tendina.

L’eliminazione definitiva (rimozione permanente di tutti i dati utente inclusi i log di audit) è un’operazione separata disponibile solo ai proprietari del tenant tramite Console → Impostazioni → Zona Pericolosa. L’eliminazione definitiva soddisfa i requisiti di cancellazione del GDPR.


Sessioni Utente

Auris traccia le sessioni Keycloak attive per utente. Gli amministratori possono visualizzare i dettagli delle sessioni e revocare sessioni individuali per forzare la ri-autenticazione — utile quando il dispositivo di un utente viene perso o compromesso.

GET/api/users/[id]/sessionsRequires: manage:users

Restituisce l’elenco delle sessioni attive per l’utente, incluse informazioni sul dispositivo, indirizzo IP e timestamp dell’ultima attività.

DELETE/api/users/[id]/sessions/[sessionId]Requires: manage:users

Revoca una singola sessione. L’utente viene disconnesso al prossimo utilizzo del token.

DELETE/api/users/[id]/sessionsRequires: manage:users

Revoca tutte le sessioni attive dell’utente.

Guida alla Console: Apri un pannello di dettaglio utente e seleziona la scheda “Sessioni”. Ogni sessione mostra browser/OS, indirizzo IP, ora di login e un pulsante “Revoca”.


Metadati Utente

I metadati consentono di memorizzare dati JSON arbitrari su un utente senza modificare lo schema di Auris. Vengono restituiti su ogni oggetto utente e sono accessibili nell’SDK di Management.

Casi d’uso comuni:

  • Preferenze specifiche dell’applicazione (theme, language, timezone)
  • Identificatori interni (employeeId, costCenter, managerId)
  • Feature flag o dati di autorizzazione
  • Tracciamento del progresso di onboarding

I metadati vengono memorizzati come oggetto JSON piatto o annidato. Non esiste uno schema imposto — la struttura è interamente definita dall’applicazione.

{ "metadata": { "department": "engineering", "employeeId": "EMP-4421", "onboarding": { "completed": true, "completedAt": "2025-04-15T09:00:00Z" } } }

I metadati non sono inclusi nel JWT di default. Per iniettare valori dei metadati nei token, configura i Custom JWT Claims in Console → Applicazioni → [App] → Custom Claims.


Management SDK

Usa il Management SDK per l’amministrazione degli utenti lato server. Il Management SDK si autentica tramite credenziali client M2M — non è destinato all’uso nel codice browser.

import { AurisClient } from '@auris/js' const auris = new AurisClient({ domain: 'https://auth.tuaapp.com', clientId: process.env.AURIS_CLIENT_ID, clientSecret: process.env.AURIS_CLIENT_SECRET, }) // Crea un management client autenticato con credenziali M2M const mgmt = auris.createManagementClient({ clientId: process.env.AURIS_MGMT_CLIENT_ID, clientSecret: process.env.AURIS_MGMT_CLIENT_SECRET, }) // Elenca gli utenti con paginazione const result = await mgmt.users.list({ page: 1, limit: 20 }) console.log(result.data) // User[] console.log(result.pagination) // { page, limit, total, totalPages } // Ottieni un utente specifico const user = await mgmt.users.get('usr_01HX...') // Crea un utente const newUser = await mgmt.users.create({ email: '[email protected]', firstName: 'Carla', roles: ['member'], sendInvite: true, }) // Aggiorna un utente await mgmt.users.update('usr_01HX...', { metadata: { department: 'product' }, }) // Disabilita un utente await mgmt.users.update('usr_01HX...', { enabled: false }) // Elimina temporaneamente un utente await mgmt.users.delete('usr_01HX...')

Permessi Richiesti

OperazionePermesso
Elenco utentimanage:users
Crea utentemanage:users
Aggiorna utentemanage:users
Elimina / ripristina utentemanage:users
Visualizza sessionimanage:users
Revoca sessionimanage:users

Pagine Correlate