
Lingua 🇮🇹 Italiano
Contesto
Implementazione
Che cos'è il controllo accessi? 
Con FastComments SSO Access Control, talvolta indicato come RBAC, gli utenti possono essere limitati ad accedere solo a determinate pagine o thread di commenti. Inoltre, gli utenti possono @mentionarsi solo tra loro nello stesso gruppo.
In dettaglio
Possiamo inserire Users e opzionalmente Pages in gruppi.
Quando i Users sono inseriti in gruppi, e l'opzione Limit Comments by SSO User Groups è abilitata nelle impostazioni del widget, allora gli utenti vedranno solo i commenti degli utenti nel loro stesso gruppo e potranno @mentionare solo utenti nello stesso gruppo.
Inoltre, le Pages possono essere inserite in gruppi, e allora gli utenti possono accedere ai commenti solo per le pagine a cui hanno accesso.
Li chiamiamo gruppi "User-Level" rispetto ai gruppi "Page-Level".
Quindi quale è quello giusto per te?
Usa i gruppi User-Level se...
- Vuoi usare lo stesso valore
urlId(URL della pagina, o ID dell'articolo), ma limitare i commenti per gruppo. - Per esempio, vuoi avere i gruppi "New User" e "Veteran User", e non dovrebbero mai vedere i commenti l'uno dell'altro sulle stesse pagine.
Usa i gruppi Page-Level se...
- I tuoi gruppi hanno pagine specifiche.
- Per esempio, gli utenti nel gruppo "Public Pages" non dovrebbero mai visualizzare gli articoli "Top Secret".
Come funziona 
Il controllo accessi di FastComments funziona assegnando Pages e Users ai gruppi desiderati.
Un gruppo è semplicemente un identificatore di stringa, come GREEN o abc-123.
Users e Pages non sono limitati a un solo gruppo. Sono limitati rispettivamente a 100 e 1000 gruppi.
Accesso a pagine non autorizzate
Se un utente prova ad accedere a una pagina a cui non ha accesso, vedrà un messaggio di errore, come qui sotto:
Il testo del messaggio può essere personalizzato.
La specifica 
Definire come più utenti interagiscono e testarlo è complicato. Ecco la seguente specifica che seguiamo per il controllo degli accessi, che puoi usare per testare la tua implementazione:
Pagina con null group ids, utente con null group ids - dovrebbe avere accesso.
Pagina con null group ids, utente con group ids - dovrebbe avere accesso.
Pagina con group ids, utente con null group ids - dovrebbe avere accesso.
Pagina con group ids, utente con empty list - NON dovrebbe avere accesso.
Pagina con group ids, utente con group ids - esiste intersezione - dovrebbe avere accesso.
Pagina con group ids, utente con group ids - non esiste intersezione - NON dovrebbe avere accesso.
Pagina con empty list di group ids (nessuno ha accesso), utente con null - NON dovrebbe avere accesso.
SSO User A = No group ids defined (null = full access).
SSO User B = No group ids defined (null = full access).
A può @B.
SSO User A = No group ids defined (null = full access).
SSO User B = Group ids defined.
A può @B.
SSO User A = Group ids defined.
SSO User B = No group ids defined (null = full access).
A può @B.
SSO User A = Group ids = [a].
SSO User B = Group ids = [b].
A NON può @B.
SSO User A = Group ids = [a].
SSO User B = Group ids = [a, b].
A può @B.Implementazione 
Menzionare utenti in altri gruppi
Se due utenti appartengono a due diversi insiemi di gruppi e non c'è intersezione, non potranno @mentionarsi a vicenda.
Se un utente digita manualmente un @mention e invia il suo commento, rimarrà testo semplice. L'altro utente non verrà taggato.
Gestione dei gruppi
Groups sono definiti utilizzando rispettivamente le risorse API Pages e SSOUsers.
L'API Pages può essere invocata per definire l'insieme di gruppi autorizzati ad accedere alla pagina. Per impostazione predefinita, tutti i gruppi e gli utenti che non appartengono a un gruppo hanno accesso.
Allo stesso modo, l'API SSOUsers può essere invocata per definire i gruppi associati a ciascun utente.
Per entrambe le risorse, non ci sono limitazioni su quando i gruppi possono essere impostati o aggiornati.
Se si desidera soltanto impedire che gli utenti si @mentionino a vicenda, allora non è necessario prendere in considerazione le Pages.
Nota!
La definizione e l'aggiornamento dei gruppi utente SSO non richiede l'uso dell'API e può invece essere aggiornato automaticamente definendo gli id dei gruppi nel payload SSO passato al widget dei commenti. Tuttavia, per elenchi estesi di gruppi, questo non è raccomandato poiché l'utente dovrebbe inviare questo payload ad ogni caricamento della pagina.
Esempi di chiamate API 
Qui esamineremo come chiamare l'API di FastComments per configurare il controllo degli accessi.
Prima di iniziare, nota che non dobbiamo creare esplicitamente una struttura Group. I gruppi sono semplicemente identificatori aggiunti a Users e Pages. Aggiungere un gruppo a un utente o a una pagina "crea" automaticamente il gruppo.
Per prima cosa, creiamo due utenti, User A e User B, e li inseriremo inizialmente in Group X:


Ora creiamo una Page. La chiameremo la nostra Confidential Page, e per ora nessuno di questi utenti avrà accesso ad essa poiché sarà
nel gruppo CONFIDENTIAL:

Gli utenti A e B attualmente NON hanno accesso alla nuova pagina. Tuttavia, poiché sono nello stesso gruppo, GROUP-X, possono @mentionarsi a vicenda.
Aggiorniamo User B in modo che ora possa accedere alla pagina:

User B ora appartiene a entrambi i gruppi. I nostri utenti possono ancora @mentionarsi a vicenda, ma solo User B può visualizzare la nostra pagina riservata.
Facciamo in modo che solo User B possa visualizzare la pagina riservata:

Ora può visualizzare la pagina riservata, ma nessuno dei nostri utenti può più @mentionarsi a vicenda, poiché si trovano in gruppi diversi.
Tuttavia, qualsiasi utente che non fa parte del controllo degli accessi potrà accedere alla nostra pagina. Per evitarlo, assicurati che nessun Utente SSO abbia
i propri groupIds impostati su null. Ad esempio, creiamo User C, che ha accesso a tutto:

Impostando groupIds su null, dichiariamo che non sono limitati dal controllo degli accessi.
Ora, creiamo una pagina a cui tutti hanno accesso:

Impostando accessibleByGroupIds su null, dichiariamo che questa Page non è controllata tramite il controllo degli accessi, e entrambi gli utenti possono accedervi.
Questo completa la nostra panoramica sull'API per il Controllo degli Accessi.