in Architettura Software

Auth0 – Ottenere ruoli nell’access token

In Auth0 può essere utile ottenere i ruoli associati ad un utente, direttamente all’interno dell’access token.

L’aggiunta dei ruoli, può essere effettuata utilizzando una rule dedicata. Le ruole sono delle funzioni javascript che vengono eseguite quando un utente effettua l’autenticazione. Vengono eseguite una sola volta quando il processo di autenticazione è terminato. Le rule accettano come parametro lo user, il context ed il callback (con il quale ritornano al flusso principale).

La rule che permette di aggiungere i ruoli all’access token è la seguente:

function (user, context, callback) {
  const namespace = 'http:/XXXX.net';
  const assignedRoles = (context.authorization || {}).roles;

  let idTokenClaims = context.idToken || {};
  let accessTokenClaims = context.accessToken || {};

  idTokenClaims[`${namespace}/roles`] = assignedRoles;
  accessTokenClaims[`${namespace}/roles`] = assignedRoles;

  context.idToken = idTokenClaims;
  context.accessToken = accessTokenClaims;

  callback(null, user, context);
}

E’ necessario modificare il nome del namespace a cui si fa riferimento (tipicamente il nome del dominio). Alla riga 3 vengono richiesti i ruoli che poi successivamente vengono aggiunti al token da restituire.