Μετάβαση στο περιεχόμενο
Τεκμηρίωση · Χώροι εργασίας, εκδότες και διακριτικά

Έννοιες

Λίγες ιδέες εξηγούν σχεδόν τα πάντα στο Usher: πού βρίσκονται τα πράγματα, ποιος εκδίδει διακριτικά, πού συνδέονται οι χρήστες και πόσο διαρκεί κάθε διακριτικό.

Χώροι εργασίας, έργα και περιβάλλοντα

  • Ο χώρος εργασίας είναι η ομάδα ή η εταιρεία σας στο Usher Console. Τα μέλη του και το αρχείο ελέγχου του ανήκουν σε αυτόν.
  • Το έργο είναι ένα προϊόν: η εφαρμογή ιστού σας ή μια πύλη συνεργατών. Ένας χώρος εργασίας μπορεί να έχει πολλά.
  • Το περιβάλλον είναι ένα αντίγραφο ενός έργου σε λειτουργία, συνήθως ανάπτυξης και παραγωγής. Στα περιβάλλοντα βρίσκονται οι χρήστες, οι εφαρμογές, τα κλειδιά και οι ρυθμίσεις.

Χώρος εργασίας · Acme Ltd

Έργο · Web

  • ανάπτυξη · wise-otter-42
  • παραγωγή · acme

Έργο · Πύλη συνεργατών

  • ανάπτυξη · calm-heron-17
  • παραγωγή · acme-partners
Κάθε περιβάλλον είναι ξεχωριστός εκδότης, με δικούς του χρήστες, κλειδιά και Lobby.

Τα περιβάλλοντα δεν μοιράζονται τίποτα σημαντικό. Το καθένα έχει το δικό του σχήμα Postgres, τα δικά του κλειδιά υπογραφής και τα δικά του μυστικά, σφραγισμένα με το δικό του κλειδί δεδομένων. Ένας χρήστης που εγγράφεται στην ανάπτυξη δεν υπάρχει στην παραγωγή, και ένα διακριτικό από το ένα δεν μπορεί ποτέ να επαληθευτεί με τα κλειδιά του άλλου.

Ένας διαχειριστής του χώρου εργασίας μπορεί να διαγράψει ένα έργο από το τέλος της Επισκόπησής του, αφού πληκτρολογήσει το όνομά του. Όλα τα περιβάλλοντά του διαγράφονται μαζί: οι χρήστες, οι εφαρμογές, τα κλειδιά και οι ρυθμίσεις τους, και κάθε περίοδος σύνδεσης και διακριτικό που έδωσαν. Οι διευθύνσεις του σταματούν να απαντούν και δεν δίνονται ποτέ ξανά, ώστε μια εφαρμογή που ακόμη εμπιστεύεται μία από αυτές να μην μπορεί να ξεγελαστεί από το έργο κάποιου άλλου.

Εκδότες

Κάθε περιβάλλον είναι ξεχωριστός εκδότης OpenID Connect, στον δικό του κεντρικό υπολογιστή στον τομέα μισθωτών:

Εκδότης
https://<handle>.usherid.com
  • Τα περιβάλλοντα παραγωγής έχουν ένα ψευδώνυμο που επιλέγετε εσείς: 3 έως 32 πεζά γράμματα, ψηφία και μονές παύλες, όπως το όνομα της εταιρείας σας. Ένα ψευδώνυμο που χρησιμοποιήθηκε δεν δίνεται ποτέ ξανά.
  • Τα περιβάλλοντα ανάπτυξης παίρνουν ένα τυχαίο ψευδώνυμο, όπως wise-otter-42, που κανείς δεν θα μπερδέψει με εμπορικό σήμα.

Ο εκδότης ορίζεται οριστικά όταν δημιουργείται το περιβάλλον, επειδή κάθε διακριτικό που υπογράφει τον κατονομάζει στο iss, και κάθε εφαρμογή που τον εμπιστεύεται ελέγχει αυτή την τιμή.

Ο τομέας μισθωτών είναι καταχωρίσιμος τομέας διαφορετικός από τον τομέα του ίδιου του Usher (usheridentity.com), οπότε οι σελίδες σύνδεσης ενός πελάτη δεν είναι ποτέ στον ίδιο ιστότοπο με το Usher Console, και τα cookie ισχύουν μόνο για τον κεντρικό υπολογιστή: ένα πρόγραμμα περιήγησης στέλνει τα cookie ενός περιβάλλοντος μόνο σε αυτό το περιβάλλον.

Το Lobby

Το Lobby είναι η σελίδα σύνδεσης που φιλοξενεί κάθε περιβάλλον στον εκδότη του. Η εφαρμογή σας στέλνει τους χρήστες εκεί· το Lobby τους συνδέει και τους στέλνει πίσω.

  • Ονομάζει πάντα την εφαρμογή στην οποία πηγαίνει ο χρήστης, στην ετικέτα «Συνέχεια στο».
  • Προσφέρει μόνο τις μεθόδους που επιτρέπει το περιβάλλον: κλειδιά πρόσβασης, κωδικούς μέσω email, μαγικούς συνδέσμους, λογαριασμούς κοινωνικών δικτύων (Google, GitHub, Microsoft, Apple) και συνθηματικά.
  • Μπορεί να απαιτεί δεύτερο παράγοντα: μια εφαρμογή ελέγχου ταυτότητας (με εφεδρικούς κωδικούς) ή ένα κλειδί πρόσβασης.
  • Μπορεί να είναι ανοιχτό σε όλους ή να περιορίζεται σε λίστα προσκεκλημένων με διευθύνσεις και τομείς.

Φαίνεται ίδιο όποιο προϊόν κι αν έστειλε τον χρήστη. Αυτό είναι σκόπιμο: οι χρήστες μαθαίνουν πώς μοιάζει ένα πραγματικό Lobby και προσέχουν όταν μια σελίδα δεν είναι.

Λογαριασμοί Usher

Τα περισσότερα περιβάλλοντα έχουν τους δικούς τους χρήστες. Οι λογαριασμοί Usher είναι διαφορετικοί: ένας λογαριασμός που συνδέει έναν χρήστη σε κάθε εφαρμογή που προσφέρει Συνέχεια με Usher. Οι χρήστες διαχειρίζονται τον δικό τους στο account.usheridentity.com.

Διακριτικά και διάρκεια

ΔιακριτικόΠροεπιλογήΜπορεί να οριστεί σεΣε τι χρησιμεύει
Κωδικός εξουσιοδότησης5 λεπτάΣταθερόΑνταλλάσσεται μία φορά με διακριτικά. Μίας χρήσης.
Διακριτικό αναγνωριστικού10 λεπτά1 έως 60 λεπτάΛέει στην εφαρμογή σας ποιος συνδέθηκε. Όχι για κλήσεις σε API.
Διακριτικό πρόσβασης10 λεπτά1 έως 60 λεπτάΣτέλνεται στο API σας, που το ελέγχει.
Διακριτικό ανανέωσης30 ημέρες1 έως 90 ημέρεςΠαίρνει νέα διακριτικά πρόσβασης. Αλλάζει σε κάθε χρήση. Χρειάζεται offline_access.
Διακριτικό πρόσβασης μηχανής15 λεπτά1 έως 60 λεπτάΓια client_credentials: διακομιστές χωρίς άνθρωπο πίσω τους.
Κωδικός μέσω email, μαγικός σύνδεσμος10 λεπτάΣταθερόΜία σύνδεση. Ένας κωδικός επιτρέπει τρεις προσπάθειες.

Οι περίοδοι σύνδεσης στο Lobby έχουν κι αυτές διάρκεια: μια περίοδος σύνδεσης λήγει μετά από 7 ημέρες χωρίς χρήση (1 έως 30) και μετά από 30 ημέρες συνολικά (1 έως 90). Η αλλαγή κάποιου ευαίσθητου στοιχείου, όπως μιας διεύθυνσης email, χρειάζεται σύνδεση μέσα στα τελευταία 10 λεπτά.

Κλειδιά υπογραφής

Τα διακριτικά υπογράφονται με RS256 από προεπιλογή· ένα περιβάλλον μπορεί να χρησιμοποιεί αντ’ αυτού ES256 ή EdDSA. Τα δημόσια κλειδιά δημοσιεύονται στο jwks_uri του περιβάλλοντος, ώστε οι βιβλιοθήκες σας να τα ανακτούν και να παίρνουν τα νέα όταν γίνεται εναλλαγή κλειδιών.

Εμβέλειες

ΕμβέλειαΤι λαμβάνει η εφαρμογή σας
openidΥποχρεωτική. Ένα διακριτικό αναγνωριστικού με το sub του χρήστη.
profileΤο όνομα και την εικόνα του.
emailΤη διεύθυνση email του, και αν είναι επαληθευμένη.
offline_accessΈνα διακριτικό ανανέωσης, ώστε να παραμένει συνδεδεμένος.