FastComments.com Blog

Mon Apr 13 2020
...

Ρύθμιση SSO με FastComments

Επισκόπηση

Τι είναι το SSO;

Το SSO, ή single-sign-on, είναι ένα σύνολο συμβάσεων που χρησιμοποιούνται για να επιτρέπουν σε εσάς ή τους χρήστες σας να χρησιμοποιούν το FastComments χωρίς να χρειάζεται να δημιουργήσουν άλλο λογαριασμό.

Υποθέτοντας ότι δεν επιτρέπετε ανώνυμες σχολιάσεις, απαιτείται ένας λογαριασμός για να σχολιάσετε με το FastComments. Κάνουμε αυτή τη διαδικασία εγγραφής πολύ εύκολη - ο χρήστης απλώς αφήνει το email του όταν σχολιάζει. Ωστόσο, κατανοούμε ότι ακόμη και αυτό είναι μια επιπλέον τριβή που κάποιες ιστοσελίδες θέλουν να αποφύγουν.

Πώς να το αποκτήσω;

Όλοι οι τύποι λογαριασμού αποκτούν αυτή τη στιγμή πρόσβαση στο SSO καθώς και υποστήριξη. Ωστόσο, ο μέγιστος αριθμός χρηστών SSO θα διαφέρει ανάλογα με το πακέτο σας.

Χρήστες WordPress

Αν χρησιμοποιείτε το πρόσθετο WordPress μας, τότε δεν χρειάζεται να γράψετε κώδικα! Απλώς πηγαίνετε στη σελίδα Διαχείρισης του πρόσθετου, κάντε κλικ στις Ρυθμίσεις SSO και, στη συνέχεια, Ενεργοποίηση.

Αυτό θα σας οδηγήσει σε έναν οδηγό με ένα κουμπί που θα δημιουργήσει το API key σας, θα το στείλει στην εγκατάσταση του WordPress σας και θα ενεργοποιήσει το SSO. Το έχουμε ενοποιήσει αυτό σε ένα μόνο κλικ για εσάς.

Σημειώστε ότι αν εγκαθιστάτε το πρόσθετο για πρώτη φορά, θα πρέπει να ακολουθήσετε τη διαδικασία ρύθμισης πριν δείτε τη σελίδα διαχείρισης με το κουμπί Ρυθμίσεις SSO.

Προσαρμοσμένες Ενσωματώσεις

Το SSO του FastComments χρησιμοποιεί την κρυπτογράφηση HMAC-SHA256 ως μηχανισμό για να υλοποιήσει το SSO. Αρχικά, θα αναλύσουμε την συνολική αρχιτεκτονική, θα παρέχουμε παραδείγματα και λεπτομερή βήματα. Ωστόσο, στο τέλος αυτού του άρθρου υπάρχουν οδηγίες για μεταφορά από Disqus και Commento.

Η ροή έχει ως εξής:

Διάγραμμα SSO FastComments

Δεν χρειάζεται να γράψετε νέα API endpoints με το SSO FastComments. Απλώς κρυπτογραφήστε τις πληροφορίες του χρήστη χρησιμοποιώντας το μυστικό σας κλειδί και περάστε το payload στο widget σχολίων.

Παρέχουμε πλήρη λειτουργικά παραδείγματα κώδικα σε πολλές γλώσσες/χρόνος εκτέλεσης, συμπεριλαμβανομένων των NodeJS, Java/Spring και vanilla PHP. Αν και χρησιμοποιούμε ExpressJS στο παράδειγμα NodeJS και Spring στο παράδειγμα Java, δεν απαιτούνται καμία πλατφόρμα/βιβλιοθήκες σε αυτές τις χρονικές εκτελέσεις για να υλοποιήσετε το SSO FastComments - οι εγγενείς πακέτα crypto δουλεύουν.

Μπορείτε να βρείτε το αποθετήριο παραδειγμάτων κώδικα εδώ:

Paradeigmata Kodika SSO FastComments

Αποκτήστε το μυστικό κλειδί API σας

Το μυστικό σας API μπορεί να ανακτηθεί από αυτή τη σελίδα. Μπορείτε επίσης να βρείτε αυτή τη σελίδα πηγαίνοντας στο Ο Λογαριασμός μου, κάνοντας κλικ στην καρτέλα API/SSO και στη συνέχεια κάνοντας κλικ στο "Αποκτήστε το μυστικό κλειδί API".

Παράμετροι Widget Σχολίων

Η τεκμηρίωση API υψηλού επιπέδου για το widget σχολίων μπορεί να βρεθεί εδώ και κάνοντας κλικ στις "Εμφάνιση Προχωρημένων Επιλογών". Αναζητήστε το SSO στη σελίδα.

Ας δούμε λεπτομερώς τι σημαίνουν αυτές οι παράμετροι.

Το widget σχολίων δέχεται ένα αντικείμενο ρύθμισης - το περνάτε ήδη αν χρησιμοποιείτε το FastComments για να περάσετε το customer id σας (που ονομάζεται tenantId).

Για να ενεργοποιήσετε το SSO, περάστε ένα νέο αντικείμενο "sso", το οποίο πρέπει να έχει τις ακόλουθες παραμέτρους. Οι τιμές πρέπει να δημιουργηθούν στην πλευρά του διακομιστή.

  • userDataJSONBase64: Τα δεδομένα του χρήστη σε μορφή JSON, τα οποία κωδικοποιούνται στη συνέχεια σε Base64.
  • verificationHash: Ο κατακερματισμός HMAC-SHA256 που δημιουργήθηκε από UNIX_TIME + userDataJSONBase64.
  • timestamp: Ο τρέχων unix χρόνος. Δεν πρέπει να είναι στο μέλλον ή περισσότερο από τρεις ώρες στο παρελθόν.
  • loginURL: Ένας URL που το widget σχολίων μπορεί να εμφανίσει για να συνδεθεί ο χρήστης.
  • logoutURL: Ένας URL που το widget σχολίων μπορεί να εμφανίσει για να αποσυνδεθεί ο χρήστης.
  • loginCallback: Όταν παρέχεται αντί για το URL σύνδεσης, μια συνάρτηση που το widget σχολίων θα καλέσει όταν κάνετε κλικ στο κουμπί σύνδεσης.
  • logoutCallback: Όταν παρέχεται αντί για το URL αποσύνδεσης, μια συνάρτηση που το widget σχολίων θα καλέσει όταν κάνετε κλικ στο κουμπί αποσύνδεσης.

Το Αντικείμενο Χρήστη

Το αντικείμενο Χρήστη περιέχει την εξής δομή:

  • id (string, απαιτούμενο) (1k χαρακτήρες max)
  • email (string, απαιτούμενο) (1k χαρακτήρες max). Σημείωση: Πρέπει να είναι μοναδικό.
  • username (string, απαιτούμενο) (1k χαρακτήρες max). Σημείωση: Το username δεν μπορεί να είναι email. Δεν χρειάζεται να είναι μοναδικό.
  • avatar (string, προαιρετικό) (3k χαρακτήρες max)
  • optedInNotifications (boolean, προαιρετικό)
  • displayLabel (string, προαιρετικό, 100 χαρακτήρες max). Αυτή η ετικέτα θα εμφανίζεται δίπλα στο όνομά τους.
  • websiteUrl (string, προαιρετικό, 2000 χαρακτήρες max). Το όνομα του χρήστη θα συνδέεται με αυτό.

Ειδοποιήσεις

Για να ενεργοποιήσετε ή να απενεργοποιήσετε τις ειδοποιήσεις, ορίστε την τιμή του optedInNotifications σε true ή false αντίστοιχα. Την πρώτη φορά που ο χρήστης φορτώνει τη σελίδα με αυτή την τιμή στο payload SSO, οι ρυθμίσεις ειδοποιήσεών τους θα ενημερωθούν.

Χρήστες VIP & Ειδικές Ετικέτες

Μπορείτε να εμφανίσετε μια ειδική ετικέτα δίπλα στο όνομα του χρήστη χρησιμοποιώντας το προαιρετικό πεδίο "displayLabel".

Μη αυθεντικοποιημένοι χρήστες

Για να αντιπροσωπεύσετε έναν μη αυθεντικοποιημένο χρήστη, απλά μην συμπληρώνετε το userDataJSONBase64, verificationHash ή timestamp. Παρέχετε ένα loginURL.

Άμεσες Ενδεικτικές Σειρές για Σειριοποίηση και Χάραξη Δεδομένων Χρήστη

Περισσότερες λεπτομέρειες ως παραδείγματα εδώ (js), εδώ (java) και εδώ (php).

Μετάβαση από Disqus SSO

Οι μεγαλύτερες διαφορές μεταξύ Disqus και FastComments SSO είναι ότι το Disqus χρησιμοποιεί SHA1 για κρυπτογράφηση ενώ εμείς χρησιμοποιούμε SHA256. Αυτό σημαίνει ότι η μετάβαση από το Disqus είναι εύκολη - αλλάξτε τον αλγόριθμο χάραξης που χρησιμοποιείται από SHA1 σε SHA256 και ενημερώστε τα ονόματα ιδιοτήτων που αποστέλλονται στο UI.

Μετάβαση από Commento SSO

Το Commento χρησιμοποιεί μια δραματικά διαφορετική προσέγγιση SSO - απαιτούν να έχετε ένα endpoint που καλούν για να αυθεντικοποιήσουν τον χρήστη. Το FastComments είναι το αντίθετο - απλά κωδικοποιήστε και χαράξτε τις πληροφορίες του χρήστη χρησιμοποιώντας το μυστικό σας κλειδί και περάστε το παρακάτω.

Κατανοούμε ότι οποιαδήποτε ενσωμάτωση μπορεί να είναι μια περίπλοκη και επώδυνη διαδικασία. Μην διστάσετε να επικοινωνήσετε με τον εκπρόσωπό σας ή να χρησιμοποιήσετε τη σελίδα υποστήριξης.