Permessi: Ispezionare i privilegi della sessione per facilitare il debugging

Tradotto automaticamente da Deepl

Oggi è possibile usufruire di una potente funzione per filtrare l’accesso ai dati, essenziale per impedire l’accesso di malintenzionati alla vostra applicazione.

Questa funzione utilizza privilegi che consentono determinate azioni sui dati. Questi privilegi vengono assegnati agli utenti attraverso i ruoli e memorizzati nella sessione durante l’autenticazione.

In 4D 20R6, abbiamo migliorato questa funzionalità consentendo di ispezionare i privilegi nella sessione, il che è molto utile per il debug.

Continuate a leggere per saperne di più.

HDI_GetPrivilegi

una nuova funzione getPrivilegi() sull’oggetto Sessione

Vediamo un esempio.

Nel file roles.json, abbiamo il privilegio medium che contiene il privilegio simple. Il ruolo Medium contiene il privilegio medium.

{
 "privileges": [
  {
   "privilege": "simple",
   "includes": []
  },
  {
   "privilege": "medium",
   "includes": [
     "simple"
    ]
  }
 ],
 "roles": [
  {
   "role": "Medium",
   "privileges": [
    "medium"
   ]
  }
 ],
 "permissions": {
  "allowed": [] // Set up the allowed actions here
 }
}

Nella classe Datastore, c’è una funzione authentify() che assegna tutti i privilegi del ruolo dato al ruolo Session.

exposed Function authentify($role : Text) : Text
	
	Session.clearPrivileges()
	Session.setPrivileges({roles: $role})
	
	return "Authentication done with "+$role

Nella classe Datastore è stata implementata anche una funzione getPrivileges(). Essa restituisce i privilegi della classe Session.

exposed Function getPrivileges() : Collection
	return Session.getPrivileges()

Se la funzione authentify() viene chiamata con il ruolo Medio, la funzione getPrivileges() restituisce:

[
"simple",
"medium"
]

Nuova API RESt /$info/privilegi

Esiste anche una nuova API REST per ottenere i privilegi nella sessione. Anche la chiamata a /$info/privilegi nell’esempio precedente restituisce:

{
 "privileges": [
  {
  "privilege": "simple"
  },
  {
  "privilege": "medium"
  }
 ]
}

Questo facilita il debug. Per saperne di più, consultare la documentazione.

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert è entrata a far parte del team 4D Product come Product Owner nel 2017. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Marie-Sophie si è laureata presso la scuola di ingegneria ESIGELEC e ha iniziato la sua carriera come ingegnere presso IBM nel 1995. Ha partecipato a vari progetti (di manutenzione o di costruzione) e ha lavorato come sviluppatrice Cobol. In seguito ha lavorato come progettista UML e sviluppatore Java. Ultimamente i suoi ruoli principali erano l'analisi e la scrittura dei requisiti funzionali, il coordinamento dei team di business e di sviluppo.