ORDA – Permessi – Limitare/consentire l’accesso web alle risorse con un solo clic

Tradotto automaticamente da Deepl

Scoprite qui come, nei processi web, potete proteggere le vostre risorse (dati + logica aziendale) da accessi dannosi e da utenti non autorizzati… in un solo clic.

In modalità di sviluppo, impostate la proprietà Restrict access by default su FALSE per concentrarvi sull’organizzazione del codice, sul modello dei dati, sull’architettura delle pagine Qodly, sui test… senza alcuna restrizione all’uso dei dati o alla chiamata di funzioni.

Quando si è pronti a implementare i profili utente, basta impostare la proprietà Restrict access by default su TRUE per garantire che nessuno acceda ai dati e alla logica aziendale senza essere esplicitamente autorizzato.

Promemoria

Da 4D 20, 4D offre un sistema potente e completamente personalizzabile per proteggere le risorse (dati e logica aziendale) da utenti non autorizzati.

Questo sistema offre un livello di granularità personalizzabile e si basa sulla presenza di privilegi nella sessione. I privilegi devono essere impostati nel file roles.json e autorizzati a eseguire alcune azioni (lettura, creazione, …) su alcune risorse (classi di dati, attributi, funzioni).

I privilegi si applicano ai processi web che utilizzano sessioni web scalabili, ad es: richieste REST, datastore remoti, applicazioni Qodly.

Quando all’utente viene concesso di entrare nell’applicazione, l’implementazione dell’autenticazione deve inserire i privilegi appropriati nella sessione.

Quindi, quando l’applicazione riceve una richiesta web, viene effettuato un controllo sulla presenza di privilegi nella sessione. Solo le azioni autorizzate possono essere eseguite.

Se l’azione sulla risorsa non è consentita, viene segnalato un errore di autorizzazione.

la proprietà Limita accesso per impostazione predefinita

Con la 4D21, nel file roles.json è disponibile una nuova proprietà booleana: restrictedByDefault.

Permette di impostare il comportamento predefinito per quanto riguarda gli accessi web alle risorse sottostanti:

Questo ha un impatto solo sulle risorse per le quali non sono state impostate le autorizzazioni.

Se FALSO: le risorse sono accessibili per impostazione predefinita.

Se non si impostano permessi, tutte le risorse sono accessibili per qualsiasi azione di creazione, lettura, aggiornamento

Se si impostano i permessi, tutte le risorse non coinvolte nei permessi rimangono accessibili.

Se VERO: l’accesso alle risorse è limitato per impostazione predefinita.

Se non si impostano permessi, nessuna risorsa è accessibile.

Se si impostano i permessi, tutte le risorse non coinvolte nei permessi rimangono inaccessibili.

L’interfaccia di Qodly Ruoli e privilegi

Forse avete già utilizzato l’interfaccia Ruoli e privilegi dello studio Qodly. Offre un’interfaccia intuitiva per impostare i permessi della vostra applicazione. Questa interfaccia offre ora la possibilità di aggiornare la proprietà Limita accesso per impostazione predefinita.

con versioni precedenti di 4D

Se l’applicazione viene eseguita con una versione precedente di 4D, è equivalente ad avere restrictedByDefault impostato su FALSE. È possibile ottenere un livello di sicurezza simile creando un privilegio all, che consente di eseguire tutte le azioni sul Datastore.

E non dare mai questo privilegio all a nessun utente.

blank

Avvio di un nuovo progetto

Quando si crea un nuovo progetto, il file roles.json viene impostato così com’è:

blank

Poiché restrictedByDefault è False, questo aiuta ad avviare un nuovo sviluppo. Ci si può concentrare sul codice, sulla progettazione dei moduli, sulle chiamate di funzione e sull’accesso ai dati senza essere ostacolati.

pratica migliore

Per una sicurezza ottimale, quando si è pronti a implementare i profili utente, si consiglia di impostare la proprietà restrictedByDefault su True e di impostare i privilegi in modo da garantire:

le risorse sono protette da accessi esterni dannosi

– aogni utente è concesso di eseguire solo azioni autorizzate sui dati consentiti

esempio

Nell’esempio seguente, il modello di dati è:

blank

Nel file roles.json:

blank

quindi:

– è impossibile accedere alla classe di dati SecretInfos (lettura, creazione, aggiornamento, …)

– il privilegio viewPeople è necessario per leggere la classe di dati People, mentre le altre azioni sulla classe di dati People non sono concesse.

L’HDI allegato lo dimostra.

Non aspettate a impostare i permessi per proteggere la vostra applicazione e i vostri dati, gestendo profili utente accurati e appropriati.

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.