it-swarm.com.de

Was genau ist OAuth (Open Authorization)?

Was genau ist OAuth (Open Authorization)?

Ich habe einige Informationen von 

Aber ich möchte lernen und mehr wissen. Ich suche nach Informationen zum Lebenszyklus. Warum verlassen sich die meisten sozialen Netzwerke auf dieses offene Protokoll?

Wird es mit den verschiedenen Technologien (z. B. ASP.NET) in naher Zukunft de facto werden? 

172
user372724

Was genau ist OAuth (Offene Autorisierung)?

Mit OAuth kann ein Ressourcenanbieter (z. B. Facebook) benachrichtigt werden, dass der Ressourcenbesitzer (z. B. Sie) einem Drittanbieter (z. B. Facebook) die Erlaubnis erteilt Anwendung) Zugriff auf ihre Informationen (zB die Liste Ihrer Freunde).

Wenn Sie es klar lesen, würde ich Ihre Verwirrung verstehen. Gehen wir also mit einem konkreten Beispiel voran: Treten Sie einem weiteren sozialen Netzwerk bei!

Angenommen, Sie haben ein vorhandenes GMail-Konto. Sie entscheiden sich für LinkedIn. Das manuelle Hinzufügen all Ihrer vielen Freunde ist mühsam und fehleranfällig. Möglicherweise haben Sie die Nase voll oder geben Tippfehler zur Einladung in die E-Mail-Adresse ein. Sie könnten also versucht sein, doch kein Konto zu erstellen.

In dieser Situation hat LinkedIn die gute Idee (TM), ein Programm zu schreiben, das Ihre Freundesliste automatisch hinzufügt, da Computer bei lästigen und fehleranfälligen Aufgaben weitaus effizienter und effektiver sind. Da der Beitritt zum Netzwerk jetzt so einfach ist, gibt es keine Möglichkeit , ein solches Angebot abzulehnen, oder?

Ohne eine API zum Austauschen dieser Kontaktliste müssten Sie LinkedIn den Benutzernamen und das Passwort für Ihr GMail-Konto geben, wodurch ihnen zu viel Leistung verliehen wird.

Hier kommt OAuth ins Spiel. Wenn Ihre Google Mail das Protokoll OAuth unterstützt, können Sie von LinkedIn aufgefordert werden, den Zugriff auf Ihre Google Mail-Kontaktliste zu genehmigen.

OAuth ermöglicht:

  1. Unterschiedliche Zugriffsebenen: Nur-Lese-VS-Lese-Schreibzugriff. Auf diese Weise können Sie Zugriff auf Ihre Benutzerliste oder einen bidirektionalen Zugriff gewähren, um Ihre neuen LinkedIn-Freunde automatisch mit Ihren GMail-Kontakten zu synchronisieren.
  2. Zugriffsgranularität: Sie können festlegen, dass nur Ihre Kontaktinformationen (Benutzername, E-Mail-Adresse, Geburtsdatum usw.) oder Ihre gesamte Freundesliste, Ihr Kalender und andere Informationen angezeigt werden.
  3. Sie können den Zugriff von der Anwendung des Ressourcenanbieters aus verwalten. Wenn die Anwendung eines Drittanbieters keinen Mechanismus zum Aufheben des Zugriffs bereitstellt, können Sie nicht mehr auf Ihre Informationen zugreifen. Mit OAuth kann der Zugriff jederzeit widerrufen werden.

Wird es in naher Zukunft ein De-facto-Standard?

Nun, obwohl OAuth ein bedeutender Schritt nach vorne ist, löst es keine Probleme, wenn die Leute es nicht richtig anwenden. Wenn ein Ressourcenanbieter beispielsweise nur eine Lese-/Schreibzugriffsebene für alle Ressourcen gleichzeitig bereitstellt und keinen Mechanismus zum Verwalten des Zugriffs bereitstellt, hat dies keinen Sinn. Mit anderen Worten, OAuth ist ein Framework zur Bereitstellung von Autorisierungsfunktionen und nicht nur zur Authentifizierung.

In der Praxis passt es sehr gut zum Modell des sozialen Netzwerks. Es ist besonders beliebt in sozialen Netzwerken, die Plugins von Drittanbietern zulassen möchten. Dies ist ein Bereich, in dem der Zugriff auf die Ressourcen von Natur aus erforderlich und auch von Natur aus unzuverlässig ist (d. H. Sie haben nur eine geringe oder keine Qualitätskontrolle über diese Anwendungen).

Ich habe noch nicht so viele andere Anwendungen in freier Wildbahn gesehen. Ich kenne keine Online-Finanzberatungsfirma, die automatisch auf Ihre Bankunterlagen zugreift, obwohl dies technisch genutzt werden könnte.

316
André Caron

Was ist oAuth?

OAuth ist einfach ein sicheres Berechtigungsprotokoll, das sich mit der Autorisierung von Anwendungen Dritter befasst, auf die Benutzerdaten zuzugreifen, ohne deren Passwort preiszugeben. z.B. (Anmeldung mit fb, gPlus, Twitter in vielen Websites ..) funktionieren alle unter diesem Protokoll.

Beteiligten 

Das Protokoll wird einfacher, wenn Sie die beteiligten Parteien kennen. Grundsätzlich sind drei Parteien beteiligt: ​​oAuth Provider, oAuth Client und Owner.

  • oAuth-Client (Anwendung, die auf Ihre Anmeldeinformationen zugreifen möchte)
  • oAuth Provider (zB Facebook, Twitter ...)
  • Inhaber (die Person mit Facebook, Twitter .. Konto)

Wie es funktioniert?

Ich habe ein Szenario angenommen, bei dem eine Website (stackoverflow) ein Login mit Facebook-Funktion hinzufügen muss. Somit ist Facebook oAuth Provider und der Stackoverflow oAuth Client.

  1. Dieser Schritt wird vom Entwickler der App ausgeführt. Facebook (oAuth Provider) hat von Anfang an keine Ahnung vom stackoverflow (oAuth Client), da keine Verknüpfung besteht. Der erste Schritt ist also die Registrierung von stackoverflow bei facebook der Entwickler-Site . Dies geschieht manuell, wenn Entwickler App-Informationen wie Name, Website, Logo und Weiterleitungs-URL (wichtige URL) der App an Facebook übermitteln müssen. Dann ist stackoverflow erfolgreich registriert, hat eine Kunden-ID, ein Kundengeheimnis usw. von Facebook und ist mit OAUTH . in Betrieb. enter image description here

    2 .Jetzt, wenn der Benutzer von stackoverflow mit fb auf login klickt. Stackoverflow fordert facebook mit ClientId an (fb verwendet es, um den Client zu erkennen) und redirectUrl (fb kehrt nach erfolgreichem Zugriff zu dieser URL zurück.) Dadurch wird der Benutzer zur Facebook-Anmeldeseite umgeleitet. Dies ist der beste Teil. Benutzer (Besitzer) verleiht stackoverflow nicht ihre Facebook-Berechtigung.

 enter image description here

 enter image description here

  1. After Owner erlauben Stackoverflow den Zugriff auf die Informationen. Dann leitet Facebook zusammen mit authcode mithilfe der in Schritt 2 bereitgestellten redirectUrl-Datei wieder zu stackoverflow um. 
  2. Dann kontaktiert Stackoverflow mit Facebook zusammen mit dem erhaltenen authcode, um sicherzustellen, dass alles in Ordnung ist. 
  3. Erst dann gibt Facebook access token an stackoverflow. Dann wird access token von stackoverflow verwendet, um die Informationen des Besitzers ohne Passwort abzurufen. Dies ist das gesamte Motiv von oAuth, bei dem akute Akkreditive niemals mit Anträgen Dritter verbunden sind.

Für mehr:

Schnelles Video

Weblink

217
Balman Rawat

Einfach ausgedrückt: OAuth ist eine Möglichkeit für Anwendungen, Anmeldeinformationen für Ihre Informationen zu erhalten, ohne dass die Anmeldeinformationen für den Benutzer direkt auf eine Website gelangen. Wenn Sie beispielsweise eine Anwendung auf Ihrer eigenen Website schreiben und möchten, dass Daten aus dem Facebook-Konto eines Benutzers verwendet werden, können Sie OAuth verwenden, um ein Token über eine Rückruf-URL abzurufen, und dann dieses Token verwenden, um Aufrufe an die Facebook-API zu erhalten Daten verwenden, bis das Token abläuft. Websites sind darauf angewiesen, da sie Programmierern den Zugriff auf ihre Daten ermöglichen, ohne dass der Benutzer seine Informationen direkt offen legen und seine Anmeldeinformationen online verbreiten muss, aber dennoch einen Schutz der Daten bietet. Wird es zur faktischen Autorisierungsmethode? Möglicherweise hat es in letzter Zeit viel Unterstützung von Twitter, Facebook und dergleichen erhalten, wo andere Programmierer Anwendungen mit Benutzerdaten erstellen möchten.

12
ameer

Oauth gewinnt auf jeden Fall an Bedeutung und wird auch unter den APIs von Unternehmen immer beliebter ... In der von Apps und Daten geprägten Welt setzen Unternehmen APIs immer mehr in die Außenwelt ein, im Einklang mit Google, Facebook und Twitter. Mit dieser Entwicklung wird ein dreifaches Authentifizierungsdreieck gebildet 

1) API-Anbieter - Jedes Unternehmen, das seine Assets per API verfügbar macht, z. B. Amazon, Target usw. 2) Entwickler - Derjenige, der mobile/andere Apps über diese APIs erstellt. 3. Der Endbenutzer - Der Endbenutzer von der Dienst, der von den registrierten Gastnutzern von Amazon bereitgestellt wird

Nun entsteht eine Situation in Bezug auf die Sicherheit - (Ich führe einige dieser Komplexitäten an.) 1) Sie als Endbenutzer möchten dem Entwickler den Zugriff auf APIs für Sie erlauben. 2) Der API-Anbieter muss den Entwickler und den Endbenutzer authentifizieren 3) Der Endbenutzer sollte die Berechtigungen für die von ihnen erteilte Einwilligung erteilen und widerrufen können 4) Der Entwickler kann variieren Vertrauensstufe mit dem API-Anbieter, bei dem die Berechtigungen für sie unterschiedlich sind

Das Oauth ist ein Berechtigungssystem, das versucht, das oben erwähnte Problem auf standardmäßige Weise zu lösen. Mit der Verbreitung von APIs und Apps wird dieses Problem immer relevanter, und jeder Standard, der versucht, dieses Problem zu lösen - sei es nun oaath oder ein anderer - wird als API-Anbieter/-Entwickler und sogar als Endbenutzer von Bedeutung sein!

9
randomness

OAuth (O pen Auth orization) ist ein offener Standard für das Protokoll zur Zugriffsgewährung löschung. Es dient Internetnutzern als Möglichkeit, Websites oder Anwendungen den Zugriff auf ihre Informationen auf anderen Websites zu gewähren, ohne ihnen jedoch die Passwörter zu geben. Es behandelt nicht authentication.

Oder 

OAuth 2.0 ist ein Protokoll, mit dem ein Benutzer einen begrenzten Zugriff auf seine Ressourcen an einem Standort oder an einem anderen Standort gewähren kann, ohne seine Anmeldeinformationen preisgeben zu müssen. 

7
Premraj

OAuth ist bei der Anmeldung eines SO Kontos bei Facebook/Google .__ aufgetreten. Taste.

  1. Anwendung (SO) leitet den Benutzer zur Autorisierungs-URL des Providers weiter. (Anzeigen einer Webseite, in der der Benutzer gefragt wird, ob er der Anwendung Zugriff zum Lesen und Aktualisieren ihrer Daten gewähren möchte).
  2. Der Benutzer ist damit einverstanden, das Antragsverfahren zu gewähren. 
  3. Der Dienstanbieter leitet den Benutzer zurück an die Anwendung (SO) und übergibt den Autorisierungscode als Parameter.
  4. SO tauscht den Code gegen ein Zugriffsrecht aus. 

Quelle: OAuth1-Dienstleister

2
John Joe

Bei OAuth geht es nur darum, die Autorisierung zu delegieren (jemanden zu wählen, der die Autorisierung für Sie durchführen kann). Beachten Sie, dass sich Authentifizierung und Autorisierung unterscheiden. OAuth ist Autorisierung (Zugriffskontrolle). Wenn Sie auch Authentifizierung (ID-Überprüfung) implementieren möchten, kann das OpenID-Protokoll zusätzlich zu OAuth verwendet werden.

Alle großen Unternehmen wie Facebook, Google, Github, ... verwenden heutzutage diese Art der Authentifizierung/Autorisierung. Beispielsweise habe ich mich gerade mit meinem Google-Konto auf dieser Website angemeldet. Dies bedeutet, dass Stackoverflow mein Passwort nicht kennt. Es erhält die Erlaubnis von Google, wo mein Passwort (offensichtlich gehashed) gespeichert wird. Dies bietet viele Vorteile, einer davon ist; In naher Zukunft müssen Sie nicht auf jeder Website mehrere Konten erstellen. Eine Website (der Sie am meisten vertrauen) kann für die Anmeldung bei allen anderen Websites verwendet werden. Sie müssen sich also nur ein Passwort merken.

1
Ozkan

OAuth ist ein offener Standard für die Autorisierung, der im Allgemeinen als Möglichkeit für Internetbenutzer verwendet wird, sich mit ihrem Microsoft-, Google-, Facebook- oder Twitter-Konto bei Websites von Drittanbietern anzumelden, ohne ihr Passwort preiszugeben.

OAuth ist ein Protokoll, das vom Ressourceninhaber (Facebook, Google, Tweeter, Microsoft Live usw.) verwendet wird, um die erforderlichen Informationen bereitzustellen oder eine Berechtigung zum erfolgreichen Schreiben an ein Drittanbieter-System (z. B. Ihre Website) zu erteilen. Höchstwahrscheinlich sollten die Berechtigungsnachweise ohne das Protokoll OAuth für Systeme des dritten Teils verfügbar sein, was für die Kommunikation zwischen diesen Systemen ungeeignet ist.