
Γλώσσα 🇬🇷 Ελληνικά
Υπόβαθρο
Υλοποίηση
Τι είναι ο έλεγχος πρόσβασης; 
Με το FastComments SSO Access Control, που μερικές φορές αναφέρεται ως RBAC, οι χρήστες μπορούν να περιοριστούν ώστε να έχουν πρόσβαση μόνο σε ορισμένες σελίδες ή σε συγκεκριμένα νήματα σχολίων. Επιπλέον, οι χρήστες μπορούν να @mention ο ένας τον άλλο μόνο στην ίδια ομάδα.
Λεπτομέρειες
Μπορούμε να τοποθετήσουμε Users και προαιρετικά Pages σε ομάδες.
Όταν οι Users τοποθετούνται σε ομάδες, και το Limit Comments by SSO User Groups είναι ενεργοποιημένο στις Ρυθμίσεις Widget, τότε οι χρήστες θα βλέπουν μόνο σχόλια από χρήστες στην ίδια ομάδα και θα μπορούν να @mention μόνο χρήστες στην ίδια ομάδα.
Επιπλέον, οι Pages μπορούν να τοποθετηθούν σε ομάδες, και τότε οι χρήστες μπορούν να έχουν πρόσβαση μόνο στα σχόλια για τις σελίδες στις οποίες έχουν πρόσβαση.
Αυτό το ονομάζουμε ομάδες "User-Level" σε αντίθεση με ομάδες "Page-Level".
So which one is right for you?
Use User-Level Groups if...
- Θέλετε να χρησιμοποιήσετε την ίδια τιμή
urlId(διεύθυνση σελίδας, ή αναγνωριστικό άρθρου), αλλά να περιορίσετε τα σχόλια ανά ομάδα. - Για παράδειγμα, θέλετε να έχετε ομάδες "New User" και "Veteran User", και να μην βλέπουν ποτέ τα σχόλια ο ένας του άλλου στις ίδιες σελίδες.
Use Page-Level Groups if...
- Οι ομάδες σας περιλαμβάνουν συγκεκριμένες σελίδες.
- Για παράδειγμα, οι χρήστες στην ομάδα "Public Pages" δεν θα πρέπει ποτέ να βλέπουν άρθρα στις σελίδες "Top Secret".
Πώς λειτουργεί 
Το FastComments Access Control λειτουργεί αναθέτοντας τις Pages και Users στις επιθυμητές ομάδες.
Μια ομάδα είναι απλά ένας αναγνωριστής συμβολοσειράς, όπως GREEN ή abc-123.
Users και Pages δεν περιορίζονται μόνο σε μία ομάδα. Περιορίζονται σε 100 και 1000 ομάδες, αντίστοιχα.
Πρόσβαση σε μη εξουσιοδοτημένες σελίδες
Εάν ένας χρήστης προσπαθήσει να αποκτήσει πρόσβαση σε μια σελίδα στην οποία δεν έχει πρόσβαση, θα δει ένα μήνυμα σφάλματος, όπως παρακάτω:
Το κείμενο του μηνύματος μπορεί να προσαρμοστεί.
Η προδιαγραφή 
Ο καθορισμός του τρόπου με τον οποίο πολλαπλοί χρήστες αλληλεπιδρούν, και η δοκιμή του, είναι περίπλοκος. Εδώ είναι η παρακάτω προδιαγραφή που ακολουθούμε για τον έλεγχο πρόσβασης, την οποία μπορείτε να χρησιμοποιήσετε για να δοκιμάσετε την υλοποίησή σας:
Page with null group ids, user with null group ids - should have access.
Page with null group ids, user with group ids - should have access.
Page with group ids, user with null group ids - should have access.
Page with group ids, user with empty list - should NOT have access.
Page with group ids, user with group ids - intersection exists - should have access.
Page with group ids, user with group ids - intersection does not exist - should NOT have access.
Page with empty list of group ids (nobody has access), user with null - should NOT have access.
SSO User A = No group ids defined (null = full access).
SSO User B = No group ids defined (null = full access).
A can @B.
SSO User A = No group ids defined (null = full access).
SSO User B = Group ids defined.
A can @B.
SSO User A = Group ids defined.
SSO User B = No group ids defined (null = full access).
A can @B.
SSO User A = Group ids = [a].
SSO User B = Group ids = [b].
A can NOT @B.
SSO User A = Group ids = [a].
SSO User B = Group ids = [a, b].
A can @B.Υλοποίηση 
Αναφορά χρηστών σε άλλες ομάδες
Εάν δύο χρήστες ανήκουν σε δύο διαφορετικά σύνολα ομάδων και δεν υπάρχει επικάλυψη, δεν θα μπορούν να @mention ο ένας τον άλλο.
Εάν ένας χρήστης πληκτρολογήσει χειροκίνητα ένα @mention και υποβάλει το σχόλιό του, αυτό θα παραμείνει ως απλό κείμενο. Ο άλλος χρήστης δεν θα επισημανθεί.
Διαχείριση ομάδων
Groups ορίζονται χρησιμοποιώντας τους πόρους API Pages και SSOUsers, αντίστοιχα.
Το API Pages μπορεί να κληθεί για να ορίσει το σύνολο των ομάδων που επιτρέπεται να έχουν πρόσβαση στη σελίδα. Από προεπιλογή, όλες οι ομάδες, καθώς και οι χρήστες που δεν ανήκουν σε κάποια ομάδα, έχουν
πρόσβαση.
Ομοίως, το API SSOUsers μπορεί να κληθεί για να ορίσει τις ομάδες που σχετίζονται με κάθε χρήστη.
Για και τους δύο πόρους, δεν υπάρχουν περιορισμοί ως προς το πότε οι ομάδες μπορούν να οριστούν ή να ενημερωθούν.
Αν επιθυμείται μόνο να περιοριστεί η δυνατότητα των χρηστών να @mention'ουν ο ένας τον άλλο, τότε οι Pages δεν χρειάζεται να ληφθούν υπόψη.
Σημείωση!
Ο ορισμός και η ενημέρωση των ομάδων χρηστών SSO δεν απαιτεί τη χρήση του API, και αντίθετα μπορεί να ενημερωθεί αυτόματα ορίζοντας τα ids των ομάδων στο payload του SSO που περνάει στο widget σχολίων. Ωστόσο, για μεγάλες λίστες ομάδων, αυτό δεν συνιστάται καθώς ο χρήστης θα πρέπει να υποβάλει αυτό το payload σε κάθε φόρτωση σελίδας.
Παραδείγματα κλήσεων API 
Εδώ θα δούμε πώς να καλέσουμε το FastComments API για να ρυθμίσουμε τον έλεγχο πρόσβασης.
Πριν ξεκινήσουμε, σημειώστε ότι δεν χρειάζεται να δημιουργήσουμε ρητά μια δομή Group. Οι ομάδες είναι απλώς αναγνωριστικά
που προστίθενται σε Users και Pages. Η προσθήκη μιας ομάδας σε έναν χρήστη ή σε μια σελίδα "δημιουργεί" αυτόματα την ομάδα.
First, let's create two users, User A and User B, we'll start them out in Group X:


Now let's create a Page. We'll call it our Confidential Page, and so far none of these users will have access to it as it will
be in the group CONFIDENTIAL:

Users A and B currently DO NOT have access to the new page. However, since they are in the same group, GROUP-X, they can @mention each other.
Let's update User B so they can now access the page:

User B now belongs to both groups. Our users can still @mention each other, but only User B can view our confidential page.
Let's make it so User B can only view the confidential page:

Now they can view the confidential page, but neither of our users can @mention each other, as they are in different groups.
However, any user that is not part of access control will be able to access our page. To prevent this, ensure no SSO Users have
their groupIds set to null. For example, let's create User C, which has access to everything:

By setting groupIds to null, we say they are not limited by access control.
Now, let's create a page that everyone has access to:

By setting accessibleByGroupIds to null, we say this Page is not controlled via access control, and both users can access it.
This completes our API walk-through for Access Control.