OAuth Login Management

OAuth Login Management

Wichtige Dinge, die Sie über OAuth wissen müssen

OAuth ist etwas, von dem jeder Entwickler wissen muss. Wenn Sie eine eigenständige Anwendung oder eine Anwendung von Drittanbietern erstellen, die sich in einen anderen HTTP-Dienst integriert, müssen Sie wissen, wie OAuth Ihren Benutzern einen benutzerfreundlichen und gut integrierten Service bietet.

Die Idee besteht. OAuth Framework ist für die Börsen verantwortlich, die erforderlich sind, bevor eine Bewerbung Ihre Informationen erhält.

Angenommen, Sie möchten sich für Dev anmelden.Zu (an dem Entwickler können Sie Ideen austauschen), können Sie sich mit Ihrem Github -Konto anmelden. Wie passiert das?? Woher wissen sie, dass Sie das Github -Konto besitzen, mit dem Sie sich anmelden?

Noch wichtiger ist, wie sorgen Sie für diesen Entwickler?.zu überschreiten seine Grenzen nicht, wenn es um die mit GitHub gespeicherten Informationen geht?

OAuth -Teilnehmer

Wir halten uns an das Beispiel des Github -Plugins des Atom -Editors, mit dem Entwickler Code direkt über die Atomschnittstelle in GitHub drücken können. Der Grund dafür als Beispiel ist, dass Github die Details hinter der Szene nicht versteckt und Sie sehen können, was unter der Motorhaube geht.

Bevor wir in die Minutien von Oauths Arbeit kommen. Setzen wir die Bühne, indem wir alle Teilnehmer am Austausch anerkennen:

  1. Ressourcenbesitzer oder Benutzer: Dieser Benutzer ist derjenige, dessen Kontoinformationen zugegriffen werden müssen (lesen und/oder schreiben), damit es mit einer Anwendung funktioniert.
  2. Klient: Dies ist die Bewerbung, die Ihre Erlaubnis beantragt, über einen anderen Service aus auf Ihre Informationen zugreifen zu können. In unserem Beispiel ist Atom Editor der Kunde.
  3. Ressource: Ressource sind Ihre tatsächlichen Informationen, die auf den Servern an einem abgelegenen Ort sitzen. Dies kann über eine API zugegriffen werden, wenn dem Kunde entsprechende Berechtigungen erteilt wird.
  4. Autorisierungsserver: Auch mit einer API miteinander verbunden mit einer API. Dieser Server wird vom Dienstanbieter verwaltet (GitHub in unserem Beispiel). Sowohl der Autorisierungsserver als auch der Ressourcenserver werden als API bezeichnet.

OAuth -Registrierung

Der Prozess beginnt, wenn die Client -Anwendung entwickelt wird. Sie können zum Ressourcenanbieter gehen und sich beim Portal ihres Entwicklers oder im API -Abschnitt der Website anmelden. Sie müssen auch eine Callback -URL bereitstellen, bei der der Benutzer nach Annahme oder Ablehnung umgeleitet wird, um der App die erforderlichen Berechtigungen zu erteilen.

Zum Beispiel, wenn Sie zu Github → Einstellungen → Entwicklereinstellungen wechseln und auf klicken "Registrieren Sie eine neue Anwendung". Dies würde Ihnen eine liefern Kunden ID die öffentlich gemacht werden können und a Kundengeheimnis Was, die Entwicklerorganisation muss… ein Geheimnis halten.

Nachdem Ihnen die Client -ID und das Geheimnis den Entwickler, Sie zur Verfügung gestellt wurden, zur Verfügung gestellt wurden muss Halten Sie sie sicher und sicher, da sie vom Autorisierungsserver nicht wieder angezeigt werden. Gleiches gilt für andere Token, die herumgeworfen werden (mehr auf Token später).

OAuth 2 Workflow

Sie haben Ihre Bewerbung registriert. Es wurde entwickelt und getestet und jetzt sind die Benutzer bereit, es zu verwenden. Ein neuer Benutzer bei der Registrierung bei Ihrem Dienst wird angezeigt, dass "Sie sich mit GitHub anmelden". Dies ist der erste Schritt.

Schritt 1: Autorisierungsanfrage

Die Autorisierungsanforderung ist der Teil, in dem sich ein neues Fenster (oder eine ähnliche Eingabeaufforderung) mit der Ressourcenwebseite öffnet und die Benutzer auffordert, sich anzumelden. Wenn Sie bereits auf diesem Gerät angemeldet sind, wird dieser Schritt übersprungen und Sie werden einfach von Github gefragt, ob Sie ATOM -Client -App zugreifen möchten. Dies ist bei Atom viel transparenter, da sie Sie bitten, manuell auf die Github -Website zu gehen und ihnen die Erlaubnis zu erteilen.

Bei einem Besuch der URL werden Sie um die Erlaubnis gebeten.

Beachten Sie die URL, die zeigt, dass dies eine sichere Webseite (HTTPS) von GitHub ist.Inc. Jetzt können Sie, der Benutzer, sicher sein, dass Sie direkt mit GitHub interagieren. Atom wartet einfach, ganz abseits der Wege.

Im Gegensatz zu Atom laden die meisten Client -Apps automatisch die Seite Login- oder Berechtigungen auf. Dies ist zwar sehr bequem, es kann auch missbraucht werden, wenn die Client -App beschließt, einen Phishing -Link zu öffnen. Um dies zu vermeiden, müssen Sie immer die URL überprüfen, zu der Sie umgeleitet werden, und stellen Sie sicher, dass es sich um die richtige URL handelt und das HTTPS -Protokoll verwendet.

Schritt 2: Erhalten Sie die Autorisierungsstipendie

Um den Atom -Kunden zu benachrichtigen, erhalten Sie ein Token (ein Autorisierungszuschuss), der dann dem Atom -Kunden vorgelegt wird.

Sobald der Benutzer dies tut, ist der Job des Benutzers erledigt. (Tatsächlich ist sich ein typischer Benutzer nicht einmal über den Austausch der Autorisierungszustände bewusst. Githubs Beispiel wurde ausgewählt, um zu zeigen, dass dies passiert, was passiert.

Schritt 3: Erhalten Sie das Zugangstoken

Das Autorisierungszuschuss ist nach wie vor nicht das Unternehmen, das dem Client Zugriff auf Benutzerinformationen erhält. Das wird erhalten, indem etwas als Zugriffstoken bezeichnet wird. Welche Client -App wird versuchen, in diesen Schritt einzusteigen.

Dazu muss der Client nun dem Autorisierungsserver die Autorisierungszuschuss bereitstellen zusammen mit einem Beweis seiner eigenen Identität. Die Identität wird mithilfe der Client -ID und dem Client -Geheimnis überprüft, die der Client -App früher zur Verfügung gestellt wurden.

Die Identitätsüberprüfung erfolgt, um sicherzustellen, dass der Benutzer nicht dazu verleitet wird, eine schändliche App zu verwenden, die vorgibt. Wenn sich beispielsweise jemand beschließt, seine ausführbare Datei als Atom mit demselben Namen zu benennen, kann Logo und Funktionalität der Benutzer dazu gebracht werden, einen Kunden zugreifen zu können, der Ihre Informationen missbrauchen kann. Sie können ohne Ihre Zustimmung schnüffeln oder sogar handeln. Der Autorisierungsserver sorgt dafür.

Sobald die Identität überprüft und der Autorisierungszuschuss akzeptiert wird, bringt der Autorisierungsserver ein Token in die Client -App aus. Stellen Sie sich das Token als eine Kombination aus Benutzername und Kennwort vor, die dem Ressourcenserver gegeben werden können, um auf eine bestimmte geschützte Ressource zuzugreifen, auf die der Ressourcenbesitzer zugreifen konnten.

Mit diesem Token kann die App nun Zugriff auf die erforderlichen Benutzerinformationen und andere Ressourcen vom Ressourcenserver erhalten.

Beachten Sie, wie im gesamten Austausch den tatsächlichen Benutzernamen und Passwort, wo nie mit dem Kunden geteilt wurde? Das ist die Schönheit von OAuth. Anstatt Benutzername und Passwörter zu geben, die der App den gesamten Zugriff auf die Ressource gewähren würden, verwendet sie stattdessen Token. Und ein Token kann nur einen begrenzten Zugriff auf die Ressource erhalten.

Widerrufsberechtigungen

Angenommen, Sie verlieren den Zugriff auf Ihr Gerät, in dem die autorisierte Client -App enthalten war. Sie können sich bei GitHub anmelden und zu Einstellungen → Anwendungen → autorisierte OAuth -Apps wechseln, um das Autorisierungsstipendium und den Zugriffs -Token zu widerrufen. Ich werde dasselbe tun, da in den obigen Screenshots das Autorisierungszuschuss öffentlich gezeigt wurde.

Jetzt, wo Sie einen Vogelaugenblick haben, wie OAuth 2.Weitere Informationen zu den Autorisierungszuschüssen und anderen feineren Details des Protokolls und der Art und Weise, wie die API -Anrufe hier getätigt werden.