FastComments.com

Wat is toegangscontrole? Internal Link

Met FastComments SSO-toegangscontrole, soms aangeduid als RBAC, kunnen gebruikers beperkt worden tot alleen toegang tot bepaalde pagina's of reactiedraden. Daarnaast, kunnen gebruikers elkaar alleen @mentionen binnen dezelfde groep.

In detail

We kunnen Users en optioneel Pages in groepen plaatsen.

Wanneer Users in groepen worden geplaatst, en Limit Comments by SSO User Groups is ingeschakeld in Widget Settings, zullen gebruikers alleen reacties zien van gebruikers in hun eigen groepen en zullen ze alleen in staat zijn om @mention gebruikers in dezelfde groepen.

Daarnaast kunnen Pages in groepen worden geplaatst, en dan kunnen gebruikers alleen toegang krijgen tot reacties voor pagina's waarvoor ze toegang hebben.

We noemen dit "User-Level" groepen versus "Page-Level" groepen.

Dus welke is geschikt voor jou?

Gebruik User-Level-groepen als...

  • Je wilt dezelfde urlId waarde (pagina-URL of artikel-ID) gebruiken, maar reacties per groep beperken.
  • Bijvoorbeeld, je wilt groepen "New User" en "Veteran User" hebben, en ze mogen elkaars reacties op dezelfde pagina's nooit zien.

Gebruik Page-Level-groepen als...

  • Je groepen hebben specifieke pagina's.
  • Bijvoorbeeld, gebruikers in de groep "Public Pages" mogen nooit artikelen bekijken op de "Top Secret"-pagina's.

Hoe het werkt Internal Link

FastComments Access Control werkt door Pages en Users aan de gewenste groepen toe te wijzen.

Een groep is simpelweg een string-identificator, zoals GREEN of abc-123.

Users en Pages zijn niet beperkt tot slechts één groep. Ze zijn respectievelijk beperkt tot 100 en 1000 groepen.

Toegang tot niet-geautoriseerde pagina's

Als een gebruiker probeert toegang te krijgen tot een pagina waarvoor hij/zij geen toegang heeft, ziet hij/zij een foutmelding zoals hieronder:

Voorbeeld van autorisatiefout
Voorbeeld van autorisatiefout

De berichttekst kan worden aangepast.

De specificatie Internal Link


Het definiëren van hoe meerdere gebruikers met elkaar omgaan, en het testen daarvan, is gecompliceerd. Hier is de volgende specificatie die wij hanteren voor toegangscontrole, die je kunt gebruiken om je implementatie te testen:

Pagina met null group ids, gebruiker met null group ids - moet toegang hebben.
Pagina met null group ids, gebruiker met group ids - moet toegang hebben.
Pagina met group ids, gebruiker met null group ids - moet toegang hebben.
Pagina met group ids, gebruiker met empty list - moet GEEN toegang hebben.
Pagina met group ids, gebruiker met group ids - intersection exists - moet toegang hebben.
Pagina met group ids, gebruiker met group ids - intersection does not exist - moet GEEN toegang hebben.
Pagina met empty list of group ids (niemand heeft toegang), gebruiker met null - moet GEEN toegang hebben.

SSO User A = Geen group ids gedefinieerd (null = volledige toegang).
SSO User B = Geen group ids gedefinieerd (null = volledige toegang).
A kan @B.

SSO User A = Geen group ids gedefinieerd (null = volledige toegang).
SSO User B = Group ids gedefinieerd.
A kan @B.

SSO User A = Group ids gedefinieerd.
SSO User B = Geen group ids gedefinieerd (null = volledige toegang).
A kan @B.

SSO User A = Group ids = [a].
SSO User B = Group ids = [b].
A kan NIET @B.

SSO User A = Group ids = [a].
SSO User B = Group ids = [a, b].
A kan @B.

Implementatie Internal Link

Het noemen van gebruikers in andere groepen

Als twee gebruikers tot twee verschillende sets groepen behoren en er geen overlap is, kunnen ze elkaar niet @mentionen.

Als een gebruiker handmatig een @mention typt en zijn commentaar indient, blijft dit als platte tekst. De andere gebruiker wordt niet getagd.

Het beheren van de groepen

Groups worden gedefinieerd met behulp van de API-resources Pages en SSOUsers, respectievelijk.

De Pages API kan worden aangeroepen om de set groepen te definiëren die toegang tot de pagina hebben. Standaard hebben alle groepen, en gebruikers die tot geen groep behoren, toegang.

Op dezelfde manier kan de SSOUsers API worden aangeroepen om de groepen te definiëren die aan elke gebruiker zijn gekoppeld.

Voor beide resources zijn er geen beperkingen met betrekking tot wanneer de groepen kunnen worden ingesteld of bijgewerkt.

Als het alleen de bedoeling is te voorkomen dat gebruikers elkaar @mention'en, hoeven Pages niet in overweging te worden genomen.

Opmerking!

Het definiëren en bijwerken van de SSO-gebruikersgroepen vereist niet het gebruik van de API en kan in plaats daarvan automatisch worden bijgewerkt door de groep-id's in de SSO-payload op te nemen die naar de commentaar-widget wordt gestuurd. Voor grote lijsten met groepen wordt dit echter niet aanbevolen, omdat de gebruiker deze payload bij elke paginalading zou moeten indienen.