Sicherheit

OAuth-Anmeldeverwaltung

OAuth-Anmeldeverwaltung

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

OAuth ist etwas, das jeder Entwickler kennen muss. Wenn Sie eine eigenständige Anwendung oder eine Drittanbieteranwendung erstellen, die in einen anderen HTTP-Dienst integriert ist, müssen Sie wissen, wie OAuth funktioniert, um Ihren Benutzern einen benutzerfreundlichen und gut integrierten Dienst zu bieten.

Die Idee ist, Clientanwendungen einen eingeschränkten Zugriff auf Benutzerinformationen zu ermöglichen, ohne jemals Benutzeranmeldeinformationen oder -kennwörter zu teilen. Das OAuth-Framework ist für den Austausch verantwortlich, der erforderlich ist, bevor eine Anwendung Ihre Informationen erhält.

Angenommen, Sie möchten sich für Dev . anmelden.an (ein großartiger Ort für Entwickler, um Ideen auszutauschen) können Sie sich mit Ihrem GitHub-Konto anmelden. Wie geht das?? Woher sollen sie wissen, dass Sie das GitHub-Konto besitzen, mit dem Sie sich anmelden??

Noch wichtiger ist, wie stellen Sie sicher, dass Dev.to überschreitet seine Grenzen nicht, wenn es um Ihre bei GitHub gespeicherten Informationen geht?

OAuth-Teilnehmer

Wir bleiben beim Beispiel des GitHub-Plugins des Atom-Editors, das es Entwicklern ermöglicht, Code direkt über die Atom-Schnittstelle auf GitHub zu übertragen. Der Grund dafür ist beispielsweise, dass GitHub die Details hinter den Kulissen nicht verbirgt und man sieht, was unter der Haube vor sich geht.

Bevor wir in die Details der Funktionsweise von OAuth einsteigen. Lassen Sie uns die Bühne bereiten, indem wir alle Teilnehmer des Austauschs anerkennen:

  1. Ressourcenbesitzer oder Benutzer: Dieser Benutzer ist derjenige, auf dessen Kontoinformationen zugegriffen werden muss (lesen und/oder schreiben), damit er mit einer Anwendung funktioniert.
  2. Klient: Dies ist die Anwendung, die Ihre Erlaubnis einholt, auf Ihre Informationen von einem anderen Dienst zuzugreifen. In unserem Beispiel ist der Atom-Editor der Client.
  3. Ressource: Ressource sind Ihre tatsächlichen Informationen, die auf den Servern an einem entfernten Ort gespeichert sind. Auf diese kann über eine API zugegriffen werden, wenn dem Client entsprechende Berechtigungen erteilt werden.
  4. Autorisierungsserver: Auch über eine API angebunden. Dieser Server wird vom Dienstanbieter (GitHub in unserem Beispiel) verwaltet. Sowohl der Autorisierungsserver als auch der Ressourcenserver werden als API bezeichnet, da sie von einer Einheit, in diesem Fall GitHub, verwaltet und dem Client-Entwickler als API zur Verfügung gestellt werden.

OAuth-Registrierung

Der Prozess beginnt mit der Entwicklung der Client-Anwendung. Sie können zum Ressourcenanbieter gehen und sich beim Entwicklerportal oder im API-Bereich der Website anmelden. Sie müssen auch eine Rückruf-URL angeben, an die der Benutzer nach dem Akzeptieren oder Ablehnen weitergeleitet wird, um der App die erforderlichen Berechtigungen zu erteilen.

Wenn Sie beispielsweise zu GitHub → Einstellungen → Entwicklereinstellungen gehen und auf klicken „Neue Anwendung registrieren“. Dies würde Ihnen eine Kunden ID die öffentlich gemacht werden können und a Client-Geheimnis was die Entwicklerorganisation halten muss… nun ja, ein Geheimnis.

Nachdem Ihnen, dem Entwickler, die Client-ID und das Geheimnis zur Verfügung gestellt wurden, Muss Bewahren Sie sie sicher auf, da sie vom Autorisierungsserver nicht mehr angezeigt werden. Das gleiche gilt für alle anderen Token, die herumgeworfen würden (mehr zu Token später).

OAuth 2-Workflow

Sie haben Ihre Bewerbung registriert. Es wurde entwickelt und getestet und jetzt können die Benutzer es verwenden. Einem neuen Benutzer, der sich bei Ihrem Dienst registriert, wird die Option „Mit GitHub anmelden“ angezeigt. Dies ist der erste Schritt.

Schritt 1: Autorisierungsanfrage

Die Autorisierungsanfrage ist der Teil, in dem sich ein neues Fenster (oder eine ähnliche Eingabeaufforderung) mit der Ressourcen-Webseite ö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 Zugriff auf die Atom-Client-App gewähren möchten. Dies ist im Fall von Atom viel transparenter, da Sie aufgefordert werden, manuell zur GitHub-Website zu gehen und ihnen die Erlaubnis zu erteilen.

Beim Besuch der URL werden Sie um die Erlaubnis gebeten.

Beachten Sie die URL, die anzeigt, dass dies eine sichere (HTTPS) Webseite von GitHub ist.Inc. Jetzt können Sie als Benutzer sicher sein, dass Sie direkt mit GitHub interagieren. Atom wartet einfach, ziemlich abgelegen.

Im Gegensatz zu Atom laden die meisten Client-Apps automatisch die Anmelde- oder Berechtigungsseite. Dies ist zwar sehr praktisch, kann aber 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 weitergeleitet werden, und sicherstellen, dass es sich um die richtige URL handelt und das HTTPS-Protokoll verwendet.

Schritt 2: Erhalt der Autorisierungserteilung

Um den Atom-Client zu benachrichtigen, erhalten Sie ein Token (eine Berechtigungserteilung), das dann an den Atom-Client gesendet wird.

Sobald der Benutzer dies tut, ist die Arbeit des Benutzers erledigt. (Tatsächlich ist sich ein typischer Benutzer nicht einmal des Austauschs der Berechtigungserteilung bewusst. Das Beispiel von GitHub wurde ausgewählt, um zu zeigen, dass dies geschieht).

Schritt 3: Abrufen des Zugriffstokens

Die Berechtigungserteilung ist immer noch nicht die Entität, die dem Kunden Zugriff auf Benutzerinformationen gewährt. Dies wird durch die Verwendung eines sogenannten Zugriffstokens erreicht. Welche die Client-App in diesem Schritt versucht zu bekommen.

Dazu muss der Client nun dem Autorisierungsserver die Berechtigungserteilung zur Verfügung stellen zusammen mit einem Nachweis der eigenen Identität. Die Identität wird anhand der Client-ID und des Client-Geheimnisses überprüft, die der Client-App zuvor mitgeteilt wurden.

Die Identitätsüberprüfung wird durchgeführt, um sicherzustellen, dass der Benutzer nicht dazu verleitet wird, eine schändliche App zu verwenden, die vorgibt, eine legitime App zu sein. Wenn beispielsweise jemand beschließt, seine ausführbare Datei mit demselben Namen als Atom zu benennen, könnten Logo- und Funktionsbenutzer dazu verleitet werden, einem Client Zugriff zu gewähren, der Ihre Informationen missbrauchen kann. Sie können ohne Ihre Zustimmung schnüffeln oder sogar handeln. Der Autorisierungsserver stellt sicher, dass der Client tatsächlich so ist, wie er seinen Benutzern erscheint.

Sobald die Identität überprüft und die Autorisierungserteilung akzeptiert wurde, wirft der Autorisierungsserver ein Token an die Client-App. Stellen Sie sich das Token als eine Kombination aus Benutzername und Passwort vor, die dem Ressourcenserver gegeben werden können, um auf eine bestimmte geschützte Ressource zuzugreifen, auf die der Ressourcenbesitzer Ihnen Zugriff gewährt hat.

Schließlich kann die App mit diesem Token nun Zugriff auf die erforderlichen Benutzerinformationen und andere Ressourcen vom Ressourcenserver erhalten.

Beachten Sie, dass in diesem gesamten Austausch der tatsächliche Benutzername und das Passwort nie mit dem Kunden geteilt wurden? Das ist das Schöne an OAuth. Anstatt Benutzernamen und Passwörter zu vergeben, die der App den gesamten Zugriff auf die Ressource gewähren würden, verwendet sie stattdessen Token. Und ein Token kann nur begrenzten Zugriff auf die Ressource erhalten gain.

Widerrufen von Berechtigungen

Angenommen, Sie verlieren den Zugriff auf Ihr Gerät, auf dem sich die autorisierte Client-App befindet. Sie können sich bei GitHub anmelden und zu Einstellungen → Anwendungen → Autorisierte OAuth-Apps gehen, um die Autorisierungserteilung und das Zugriffstoken zu widerrufen. Ich werde dasselbe tun, da in den obigen Screenshots die Autorisierungserteilung öffentlich gezeigt wurde.

Jetzt haben Sie eine Vogelperspektive, wie OAuth 2.Sie können hier mehr über die Autorisierungserteilungen und andere feinere Details des Protokolls und wie die API-Aufrufe durchgeführt werden lesen read.

Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...
Mit WinMouse können Sie die Mauszeigerbewegung auf einem Windows-PC anpassen und verbessern improve
Wenn Sie die Standardfunktionen Ihres Mauszeigers verbessern möchten, verwenden Sie Freeware WinMouse. Es fügt weitere Funktionen hinzu, damit Sie das...
Linker Mausklick funktioniert nicht unter Windows 10
Wenn Sie eine dedizierte Maus mit Ihrem Laptop oder Desktop-Computer verwenden, aber die linker Mausklick funktioniert nicht unter Windows 10/8/7 aus ...