
Jezik 🇸🇮 Slovenščina
Ozadje
Implementacija
Kaj je nadzor dostopa? 
With FastComments SSO Access Control, sometimes referred to as RBAC, uporabnike lahko omejimo, da dostopajo le do določenih strani ali nitk komentarjev. Poleg tega se lahko uporabniki med seboj @mentionajo le v isti skupini.
Podrobneje
V skupine lahko uvrstimo Users in po želji tudi Pages.
Ko so Users uvrščeni v skupine in je v nastavitvah pripomočka omogočeno Limit Comments by SSO User Groups, bodo uporabniki videli le komentarje uporabnikov iz svojih skupin in bodo lahko @mentionali le uporabnike v istih skupinah.
Poleg tega je mogoče Pages uvrstiti v skupine, in takrat lahko uporabniki dostopajo le do komentarjev za strani, do katerih imajo dostop.
Temu pravimo skupine na ravni uporabnika oziroma skupine na ravni strani.
Torej, katera je prava za vas?
Uporabite skupine na ravni uporabnika, če...
- Želite uporabiti isto vrednost
urlId(URL strani ali ID članka), vendar omejiti komentarje glede na skupino. - Na primer, želite imeti skupini "Nov uporabnik" in "Izkušen uporabnik", ki si nikoli ne bi videle komentarjev drug drugega na istih straneh.
Uporabite skupine na ravni strani, če...
- Vaše skupine imajo določene strani.
- Na primer, uporabniki v skupini "Javne strani" nikoli ne bi smeli pregledovati člankov, označenih kot "Top Secret".
Kako deluje 
FastComments nadzor dostopa deluje tako, da dodeli Pages in Users v želene skupine.
Skupina je preprosto identifikator v obliki niza, kot GREEN ali abc-123.
Users in Pages niso omejeni le na eno skupino. Users so omejeni na 100, Pages pa na 1000 skupin.
Dostop do neavtoriziranih strani
Če uporabnik poskuša dostopati do strani, do katere nima dostopa, bo videl sporočilo o napaki, kot je spodaj:
Besedilo sporočila je mogoče prilagoditi.
Specifikacija 
Opredelitev, kako več uporabnikov medsebojno deluje, in testiranje tega je zapleteno. Tukaj je naslednja specifikacija, ki jo upoštevamo za nadzor dostopa, ki jo lahko uporabite za testiranje vaše implementacije:
Page with null group ids, user with null group ids - bi smel imeti dostop.
Page with null group ids, user with group ids - bi smel imeti dostop.
Page with group ids, user with null group ids - bi smel imeti dostop.
Page with group ids, user with empty list - NE bi smel imeti dostopa.
Page with group ids, user with group ids - intersection exists - bi smel imeti dostop.
Page with group ids, user with group ids - intersection does not exist - NE bi smel imeti dostopa.
Page with empty list of group ids (nihče nima dostopa), user with null - NE bi smel imeti dostopa.
SSO User A = Ni definiranih group ids (null = polni dostop).
SSO User B = Ni definiranih group ids (null = polni dostop).
A lahko @B.
SSO User A = Ni definiranih group ids (null = polni dostop).
SSO User B = Group ids definirani.
A lahko @B.
SSO User A = Group ids definirani.
SSO User B = Ni definiranih group ids (null = polni dostop).
A lahko @B.
SSO User A = Group ids = [a].
SSO User B = Group ids = [b].
A NE more @B.
SSO User A = Group ids = [a].
SSO User B = Group ids = [a, b].
A lahko @B.
Implementacija 
Označevanje uporabnikov v drugih skupinah
Če dva uporabnika pripadata dvema različnima množicama skupin in ni preseka, se ne bosta mogla @mention-ati.
Če uporabnik ročno vpiše @mention in odda svoj komentar, bo ostalo navadno besedilo. Drugi uporabnik ne bo označen.
Vzdrževanje skupin
Groups so definirane z uporabo API virov Pages in SSOUsers.
Pages API lahko pokličete, da definirate nabor skupin, ki smejo dostopati do strani. Privzeto imajo dostop vse skupine in uporabniki, ki ne pripadajo nobeni skupini.
Podobno lahko SSOUsers API pokličete, da definirate skupine, povezane z vsakim uporabnikom.
Za oba vira ni omejitev, kdaj je mogoče nastaviti ali posodobiti skupine.
Če je cilj le omejiti, da se uporabniki med seboj ne @mention-ajo, potem Pages ni potrebno upoštevati.
Opomba!
Določanje in posodabljanje SSO uporabniških skupin ne zahteva uporabe API-ja in se lahko namesto tega samodejno posodobi z določanjem group ids v SSO payload, poslanem v pripomoček za komentarje. Vendar za velike sezname skupin to ni priporočljivo, saj bi moral uporabnik poslati ta payload ob vsakem nalaganju strani.
Primeri API klicev 
Tu bomo korak za korakom prikazali uporabo FastComments API za nastavitev nadzora dostopa.
Preden začnemo, upoštevajte, da ni treba izrecno ustvariti strukture Group. Skupine so preprosto identifikatorji, dodani Users in Pages. Dodajanje skupine uporabniku ali strani samodejno "ustvari" skupino.
Najprej ustvarimo dva uporabnika, User A in User B; začela bosta v Group X:


Zdaj ustvarimo Page. Poimenujmo jo Confidential Page in doslej nobeden od teh uporabnikov ne bo imel dostopa do nje, saj bo v skupini CONFIDENTIAL:

Uporabnika A in B trenutno NIMATA dostopa do nove strani. Vendar pa, ker sta v isti skupini GROUP-X, se lahko med sabo @mention.
Posodobimo User B, da bo zdaj lahko dostopal do strani:

User B zdaj pripada obema skupinama. Naši uporabniki se lahko še vedno med sabo @mentionajo, vendar si našo zaupno stran lahko ogleda samo User B.
Poskrbimo, da bo User B lahko ogledal samo zaupno stran:

Zdaj lahko ogleda zaupno stran, vendar se noben od naših uporabnikov ne more več medsebojno @mentionati, saj so v različnih skupinah.
Vendar pa bo vsak uporabnik, ki ni del nadzora dostopa, lahko dostopal do naše strani. Da to preprečite, poskrbite, da noben SSO uporabnik nima groupIds nastavljenih na null. Na primer, ustvarimo User C, ki ima dostop do vsega:

S tem, ko groupIds nastavite na null, pomeni, da niso omejeni z nadzorom dostopa.
Zdaj ustvarimo stran, do katere ima dostop vsak:

S tem, ko accessibleByGroupIds nastavite na null, rečemo, da ta Page ni nadzorovana z nadzorom dostopa, in oba uporabnika lahko dostopita do nje.
S tem zaključujemo pregled uporabe API za nadzor dostopa.