Motore Actions
Le Actions sono funzioni JavaScript personalizzate che vengono eseguite durante i flussi di autenticazione in un ambiente sandbox. Consentono di estendere il comportamento di Auris senza modificare il codice core.
Trigger Disponibili
| Trigger | Quando si attiva |
|---|---|
pre_login | Prima che Keycloak autentichi l’utente |
post_login | Dopo l’autenticazione riuscita, prima del rilascio del token |
pre_signup | Prima della creazione di un nuovo account utente |
post_signup | Dopo la creazione di un nuovo account utente |
post_change_password | Dopo un cambio password |
pre_m2m_token | Prima del rilascio di un token machine-to-machine |
Creare un’Action
Vai su Actions
Nella sidebar della Console, clicca su Actions.
Clicca Crea Action
Clicca Crea Action nell’angolo in alto a destra.
Configura l’action
| Campo | Descrizione |
|---|---|
| Nome | Etichetta descrittiva (es. “Verifica stato abbonamento”) |
| Trigger | Quale evento attiva questa action |
| Timeout | Tempo massimo di esecuzione in ms (default: 5000) |
Scrivi il codice
L’editor di codice ha intellisense per il tipo AurisActionContext. L’action riceve un oggetto context con accesso a utente, tenant, applicazione ed evento.
// Esempio: Aggiunge una claim personalizzata al token
module.exports = async function(context) {
const { user, token } = context;
// Aggiungi una claim personalizzata
token.claims['app_tier'] = user.metadata?.subscription_tier ?? 'free';
// Nega il login se l'account è sospeso
if (user.metadata?.suspended) {
context.deny('Account sospeso. Contatta il supporto.');
}
};Testa l’action
Usa il pannello Test con un payload di test sintetico per verificare il comportamento prima di deployare.
Deploya
Clicca Salva & Deploya. L’action è attiva immediatamente per tutti i login successivi.
Blueprint Editor
Per logica visuale senza scrivere JavaScript, usa il Blueprint Editor — un’interfaccia drag-and-drop con nodi tipizzati.
- Nodo Trigger — L’evento auth che avvia il flusso
- Nodi Condizione — Logica if/then (confronti campi, operatori)
- Nodi Logic Gate — Combinatori AND/OR
- Nodi Azione — Operazioni da eseguire (nega, imposta claim, imposta metadati, log)
Ambiente Sandbox
Le Actions vengono eseguite in un ambiente sandbox V8. Le seguenti API sono bloccate: require, import, process, eval, fs, child_process.
Le API disponibili includono: fetch (HTTP), accesso a context.user, context.tenant, context.token, e un’istanza console per il logging.
Le Actions vengono eseguite sincronamente nel flusso di autenticazione. Se un’action supera il timeout, il login viene bloccato. Testa le tue actions con attenzione prima di deployarle in produzione.