Oauth 2.0 101

Πίνακας περιεχομένων:

Anonim

Πολλά αυτοκίνητα πολυτελείας έρχονται με κλειδί καλέντουλας. Είναι ένα ειδικό κλειδί που δίνετε στον υπάλληλο στάθμευσης και σε αντίθεση με το κανονικό κλειδί σας, επιτρέποντας μόνο το αυτοκίνητο να οδηγείται σε μικρή απόσταση, ενώ εμποδίζει την πρόσβαση στον κορμό και το ενσωματωμένο κινητό τηλέφωνο. Ανεξάρτητα από τους περιορισμούς που επιβάλλει το κλειδί του καπετάνιου, η ιδέα είναι πολύ έξυπνη. Παρέχετε σε κάποιον περιορισμένη πρόσβαση στο αυτοκίνητό σας με ειδικό κλειδί, ενώ χρησιμοποιείτε άλλο κλειδί για να ξεκλειδώσετε όλα τα υπόλοιπα. - Ο επίσημος οδηγός για το OAuth 1.0


Αυτός είναι ο τρόπος με τον οποίο οι κατευθυντήριες γραμμές για τις προδιαγραφές της κοινότητας εξηγούσαν τον τρόπο λειτουργίας OAuth το 2007. Και ενώ το OAuth 2.0 είναι ένα εντελώς νέο πρωτόκολλο, εξακολουθεί να ισχύει η ίδια περιγραφή - το OAuth παραμένει ένας τρόπος για τους χρήστες να παρέχουν πρόσβαση τρίτων (και περιορισμένη πρόσβαση) χωρίς να μοιράζονται τους κωδικούς πρόσβασής τους.


Εάν είστε στο Διαδίκτυο τακτικά, πιθανότατα έχετε συναντήσει έναν ιστότοπο που χρησιμοποιεί το OAuth. Μετά από όλα, οι μεγαλύτερες ιστοσελίδες του κόσμου, όπως το Facebook, το Google, το MySpace, το Twitter, το Photobcuket, το Yahoo, το Evernote και το Vimeo, χρησιμοποιούν αυτό το πρότυπο πιστοποίησης. Διαβάστε παρακάτω για να μάθετε περισσότερα σχετικά με αυτό το πρότυπο και γιατί η επόμενη γενιά, το OAuth 2.0, εξακολουθεί να χρησιμοποιείται σε σχετικά πειραματική βάση.

Τι είναι το OAuth 2.0;

Πρώτον, πρέπει να ξέρετε τι κάνει το OAuth ως πρωτόκολλο: Επιτρέπει την εξουσιοδότηση διεπαφής προγραμματισμού εφαρμογών μεταξύ δύο εφαρμογών Web ή επιτραπέζιων υπολογιστών. Ως αποτέλεσμα, οι ιστότοποι μπορούν να μοιράζονται προστατευμένους πόρους με άλλους ιστότοπους και υπηρεσίες.


Για παράδειγμα, εάν παίζετε το Scramble με φίλους στο iPad σας, μπορείτε να εισαγάγετε τα διαπιστευτήριά σας στο Facebook, επιτρέποντας στο παιχνίδι να αναζητήσει τη λίστα των φίλων σας για να δείτε ποιοι παίζουν το παιχνίδι - και να προσκαλέσετε άλλους να συμμετάσχουν. Ή μπορείτε να συνδεθείτε με φίλους στο Google+ με βάση το ποιος σας παρακολουθεί στο Twitter. Αυτού του είδους οι εφαρμογές είναι χρήσιμες για τους χρήστες, αλλά περιλαμβάνουν την παροχή ενός ιστότοπου ή προγράμματος πρόσβασης σε πληροφορίες σχετικά με εσάς σε έναν άλλο ιστότοπο.


Το OAuth 2.0 λειτουργεί σαν την πρώτη ενσάρκωση του OAuth, αλλά είναι ένα εντελώς νέο πρότυπο εντελώς. Αυτό σημαίνει ότι δεν είναι συμβατό με το OAuth 1.0. Η έκδοση 2.0 καθαρίζει πολλά από τα προβλήματα με το αρχικό OAuth και πραγματοποιεί βελτιώσεις.


Ενώ βασικά διατηρεί την αρχιτεκτονική της πρώτης έκδοσης, το 2.0 βελτιώθηκε σε:

  • Έλεγχος ταυτότητας και υπογραφές. Το OAuth 2.0 κατέστησε ευκολότερο για κάποιον από την πλευρά του πελάτη να εφαρμόσει το πρωτόκολλο.
  • Η εμπειρία των χρηστών και οι εναλλακτικοί τρόποι για την έκδοση μαρκών
  • Απόδοση, ειδικά με μεγαλύτερους ιστότοπους και υπηρεσίες
Μια πληρέστερη εξήγηση για το τι είναι καινούργιο με το OAuth 2.0 παρέχεται από τον Eran Hammer, ο οποίος ήταν μέλος της ομάδας εργασίας του OAuth. Μπορείτε να έχετε πρόσβαση εδώ. Ωστόσο, σημειώστε ότι ο Hammer εγκατέλειψε την ομάδα εργασίας τον Ιούλιο του 2012, αναφέροντας ζητήματα που αφορούν θέματα ασφάλειας κατά την εφαρμογή του προτύπου. Ως αποτέλεσμα, παρόλο που η OAuth έπρεπε να οριστικοποιηθεί μέχρι το τέλος του 2010, εξακολουθεί να αποτελεί προτεινόμενο πρότυπο (κατά το χρόνο της γραφής), αν και αποτελεί μέρος του Graph API του Facebook. Η Google και η Microsoft πειραματίζονται επίσης με την υποστήριξη OAuth 2.0 στα API τους.

Τα οφέλη από τη χρήση του OAuth 2.0

Ένας από τους καλύτερους λόγους για να χρησιμοποιήσετε το OAuth είναι ότι κάνει την ανταλλαγή τόσο ευκολότερη. Είμαστε ήδη συνηθισμένοι να ανεβάζουμε φωτογραφίες στο Instagram και να τους δημοσιεύουμε αυτόματα στο Twitter και στο Facebook. Στην πραγματικότητα, αυτό το είδος ευκολίας χρήσης και crossover συνεχίζει να κάνει τα κοινωνικά μέσα τόσο ελκυστικά.


Αλλά αυτό δεν είναι όλα. Για τους τελικούς χρήστες, το OAuth σημαίνει ότι δεν χρειάζεται να δημιουργήσετε άλλο προφίλ. Για παράδειγμα, εάν θέλετε να αφήσετε ένα σχόλιο σε ένα άρθρο, μπορείτε να χρησιμοποιήσετε τα διαπιστευτήριά σας στο Facebook ή στο Twitter για να το κάνετε αυτό, αντί να πρέπει να εγγραφείτε σε ένα λογαριασμό σε έναν συγκεκριμένο ιστότοπο. Αυτό είναι ιδανικό για ιστότοπους στους οποίους δεν είστε συνήθως ενεργοί ή που δεν μπορείτε να εμπιστευτείτε. Μπορεί επίσης να ωφελήσει τους ιστότοπους διασφαλίζοντας ότι οι χρήστες έχουν ταυτότητα στο Facebook, καθιστώντας το spam spam λιγότερο πιθανό.


Το OAuth σημαίνει επίσης λιγότερους κωδικούς πρόσβασης για να θυμάστε. Είναι μια βέλτιστη πρακτική να έχετε διαφορετικούς κωδικούς πρόσβασης για διαφορετικές υπηρεσίες ιστότοπων. Επομένως, αντί να απομνημονεύσετε έναν άλλο κωδικό πρόσβασης, πρέπει να χρησιμοποιήσετε μόνο τον κωδικό πρόσβασής σας στο Facebook για να έχετε πρόσβαση στην υπηρεσία., παρεμπιπτόντως, δεν θα δείτε τον κωδικό πρόσβασής σας.


Μπορείτε επίσης να περιορίσετε τους πόρους που έχετε πρόσβαση μέσω του OAuth. Για παράδειγμα, όταν παίζετε ένα παιχνίδι στο Facebook, μπορείτε να καθορίσετε εάν θέλετε το παιχνίδι να τοποθετηθεί στον τοίχο σας για λογαριασμό σας ή όχι.


Για τον προγραμματιστή, το OAuth 2.0 παρέχει έναν ήδη αναπτυγμένο κώδικα για την εξακρίβωση της ταυτότητας, την εμφάνιση κοινωνικών αλληλεπιδράσεων και την εμφάνιση του προφίλ χρήστη. Αυτό σημαίνει λιγότερα σφάλματα για τους προγραμματιστές για να αντιμετωπίσει και χαμηλότερο κίνδυνο, επειδή το API έχει ήδη εντοπιστεί, δοκιμαστεί και αποδειχθεί. Τέλος, μπορείτε επίσης να επωφεληθείτε από την κατοχή λιγότερων δεδομένων για αποθήκευση στους δικούς σας διακομιστές.

Πώς έγινε το OAuth 2.0

Είναι προφανές ότι το OAuth είναι μια απάντηση στην πρόσκληση για ασφαλή υπολογιστική και ευκολία χρήσης για διαφορετικές υπηρεσίες Web. Το OAuth 2.0, από την άλλη πλευρά, προέκυψε από την ανάγκη να γίνει το OAuth λιγότερο περίπλοκο. Αλλά η όλη ιδέα και για τους δύο προέρχεται στην πραγματικότητα από το OpenID.


Το OpenID είναι μια υπηρεσία που επιτρέπει στους χρήστες να συνδεθούν σε διάφορες υπηρεσίες χρησιμοποιώντας τα διαπιστευτήρια σύνδεσης από έναν άλλο ιστότοπο. Αλλά το OpenID ήταν πολύ περιορισμένο, έτσι μια ομάδα ανθρώπων που εργάζονταν σε διαφορετικά πρωτόκολλα εξουσιοδότησης για τις δικές τους τοποθεσίες συγκεντρώνονταν. Οι πρώτες υλοποιήσεις του OAuth έγιναν το 2007 και η πρώτη αναθεώρηση ήρθε δύο χρόνια αργότερα.


Το OAuth 2.0 έφτασε στη σκηνή το 2010. Στόχος του ήταν να επικεντρωθεί στην απλότητα του πελάτη-προγραμματιστή και να είναι πιο εύκολα κλιμακωτή, βελτιώνοντας ταυτόχρονα την εμπειρία του χρήστη.

Προκλήσεις μπροστά;

Παρόλο που το Google, το Klout και άλλα μεγάλα ονόματα εφαρμόζουν το OAuth 2.0, ίσως εξακολουθεί να υπάρχει ένας βραχώδης δρόμος μπροστά από αυτό το πρωτόκολλο. Υπάρχουν κριτικές από την κοινότητα του OAuth 2.0, συμπεριλαμβανομένων ανησυχιών σχετικά με την ασφάλεια του πρωτοκόλλου (πολλοί πιστεύουν ότι είναι λιγότερο ασφαλές από το OAuth 1.0).


Σύμφωνα με το Hammer, αν χρησιμοποιηθεί από έναν ικανό προγραμματιστή, ο οποίος είναι πολύ εξοικειωμένος με την ασφάλεια στο Web, λειτουργεί το OAuth 2.0. Δυστυχώς, μόνο μια μικρή μειοψηφία προγραμματιστών ταιριάζει με αυτόν τον λογαριασμό.


Επιπλέον, οι κωδικοί OAuth 2.0 δεν είναι επαναχρησιμοποιήσιμοι. Για παράδειγμα, τα πρωτόκολλα OAuth 2.0 που χρησιμοποιούνται από το Facebook δεν θα μπορούσαν εύκολα να χρησιμοποιηθούν από άλλους ιστότοπους. Επιπλέον, το νέο πρωτόκολλο είναι στην πραγματικότητα πολύ πιο πολύπλοκο από το πρωτότυπο.


Αλλά το πραγματικό kicker για πολλούς ανθρώπους είναι ότι το OAuth 2.0 δεν φαίνεται να προσφέρει κανένα πραγματικό πλεονέκτημα ή βελτίωση σε σχέση με το 1.0. Το Hammer γράφει ότι εάν εφαρμόζετε επιτυχώς το 1.0, δεν υπάρχει κανένας λόγος για αναβάθμιση σε 2.0.


Ωστόσο, το OAuth 2.0 εξακολουθεί να είναι πολύ ζωντανό. Αν εξετάζει τις επικρίσεις και τα ζητήματα που τίθενται, μπορεί να βρει ακόμα ένα μέρος ως ένα πολύ ισχυρό πρωτόκολλο. Τη στιγμή της γραφής, ωστόσο, η έκδοση 1.0 εξακολουθεί να θεωρείται ως επίσημη, σταθερή και δοκιμασμένη έκδοση του OAuth. Ωστόσο, για προγραμματιστές που στοχεύουν να συνεργαστούν με μεγάλα ονόματα στον κόσμο του Διαδικτύου, η εφαρμογή αυτού του πρωτοκόλλου με ασφάλεια μπορεί να αποτελέσει καθοριστική δεξιότητα στο μη-πολύ απομακρυσμένο μέλλον.

Oauth 2.0 101