673 Stimmen

Wie unterscheidet sich OAuth 2 von OAuth 1?

Kann jemand in einfachen Worten den Unterschied zwischen OAuth 2 und OAuth 1 erklären?

Ist OAuth 1 jetzt veraltet? Sollten wir OAuth 2 implementieren? Ich sehe nicht viele Implementierungen von OAuth 2; die meisten verwenden noch OAuth 1, was mich daran zweifeln lässt, dass OAuth 2 einsatzbereit ist. Ist es das?

0 Stimmen

Die Antwort finden Sie hier OAuth 2.0 - Überblick

29voto

Fionaa Miller Punkte 501

OAuth 2.0-Signaturen sind für die eigentlichen API-Aufrufe nicht erforderlich, sobald das Token generiert wurde. Es gibt nur ein Sicherheits-Token.

Bei OAuth 1.0 muss der Client für jeden API-Aufruf zwei Sicherheits-Token senden und beide zur Erzeugung der Signatur verwenden. Es erfordert, dass die Endpunkte der geschützten Ressourcen Zugang zu den Anmeldeinformationen des Kunden haben, um die Anfrage zu validieren.

Ici beschreibt den Unterschied zwischen OAuth 1.0 und 2.0 und wie beide funktionieren.

26voto

Tony Knibb Punkte 518

OAuth 2 ist offensichtlich Zeitverschwendung (aus dem Munde von jemandem, der maßgeblich daran beteiligt war):

https://gist.github.com/nckroy/dd2d4dfc86f7d13045ad715377b6a48f

Er sagt (der Kürze halber bearbeitet und zur Hervorhebung fett gedruckt):

...kann ich nicht mehr mit dem OAuth 2.0-Standard in Verbindung gebracht werden. Ich bin von meiner Rolle als leitender Autor und Redakteur zurückgetreten, habe meinen Namen aus der Spezifikation zurückgezogen und bin die Arbeitsgruppe. Meinen Namen von einem Dokument zu entfernen, das ich an dem ich drei Jahre lang und über zwei Dutzend Entwürfe mühsam gearbeitet habe war nicht einfach. Die Entscheidung, ein Projekt zu verlassen, das ich seit über fünf Jahren geleitet habe, war quälend.

...Am Ende kam ich zu dem Schluss, dass OAuth 2.0 ein schlechtes Protokoll ist. Protokoll ist. WS-* schlecht. Es ist so schlecht, dass ich nicht länger damit damit zu tun haben möchte. ...Im Vergleich zu OAuth 1.0 ist die 2.0 Spezifikation komplexer, weniger interoperabel, weniger nützlich, mehr unvollständiger und vor allem weniger sicher.

Um das klarzustellen, OAuth 2.0 in der Hand eines Entwicklers mit fundierten Verständnis von Web-Sicherheit wird wahrscheinlich ein sicheres Implementierung. In den Händen der meisten Entwickler - so die Erfahrung der die Erfahrung der letzten zwei Jahre - wird 2.0 wahrscheinlich zu einer unsichere Implementierungen.

8 Stimmen

Bitte beachten Sie, dass Antworten, die nur einen Link enthalten, nicht erwünscht sind, da die Verweise mit der Zeit veraltet sind. Bitte fügen Sie hier eine eigenständige Zusammenfassung hinzu und behalten Sie den Link als Referenz bei.

6 Stimmen

Die Sicherheit von OAuth 1.0 beruht auf der Annahme, dass ein geheimer Schlüssel, der in eine Client-Anwendung eingebettet ist, vertraulich behandelt werden kann, aber diese Annahme ist im Falle von Smartphone-Anwendungen naiv. In OAuth 2.0 wird eine solche naive Client-Anwendung als vertraulicher Kunde . Es gibt keinen praktischen Unterschied im Sicherheitsniveau zwischen OAuth-1.0-Clients und vertraulichen OAuth-2.0-Clients. "OAuth 2.0 und der Weg zur Hölle" geht an diesem Punkt vorbei.

25voto

JRichardsz Punkte 11032

Wenn Sie eine weitergehende Erklärung benötigen, müssen Sie beide Spezifikationen lesen:

https://oauth.net/core/1.0a/

https://oauth.net/2/

Wie Sie sehen werden, es gibt mehrere konzeptionelle Unterschiede .

Hier zeige ich Ihnen eine technischer Unterschied wenn Sie einen Dienst mit oauth1 oder oauth2 konsumieren oder veröffentlichen müssen:

OAuth 1.0 Fluss

  1. Die Client-Anwendung registriert sich beim Anbieter, z. B. bei Twitter.
  2. Twitter stellt dem Kunden ein "Verbrauchergeheimnis" zur Verfügung, das nur für diese Anwendung gilt.
  3. Client-Anwendung Zeichen alle OAuth-Anfragen an Twitter mit sein einzigartiges "Verbrauchergeheimnis".
  4. Wenn eine OAuth-Anfrage fehlerhaft ist, Daten fehlen oder nicht ordnungsgemäß signiert sind, wird die Anfrage zurückgewiesen.

OAuth 2.0 Fluss

  1. Die Client-Anwendung registriert sich beim Anbieter, z. B. bei Twitter.
  2. Twitter stellt dem Kunden ein "Kundengeheimnis" zur Verfügung, das nur für diese Anwendung gilt.
  3. Client-Anwendung enthält "Kundengeheimnis" con jede Anfrage üblicherweise als http-Header.
  4. Wenn eine OAuth-Anfrage fehlerhaft ist, Daten fehlen oder ein falsches Geheimnis enthält, wird die Anfrage zurückgewiesen.

Quellen:

4 Stimmen

Können Sie die Zeichen fetter Text? Vielleicht könnte die Funktion das gleiche Konzept haben, aber technisch gesehen eine einfache Kopfzeile (oauth2) ist ganz anders als Zeichen den gesamten Antrag. Aufmerksam sein und sein Leseverständnis verbessern bevor Sie die Antworten als nicht nützlich

3 Stimmen

Bitte lesen Sie Ihre eigene Antwort und versuchen Sie, sich einen Reim darauf zu machen. Unterzeichnet alle Anfragen mit "geheim" und "sendet geheim mit allen Anfragen". Niemand, der bei klarem Verstand ist, wird hier den Unterschied verstehen, es sei denn, er hat sie bereits verwendet. Ich kenne den Unterschied, aber der OP nicht. Diese Antwort wird den OP nur noch mehr verwirren, daher die Downvotes. Solche vagen Antworten verdienen ein Downvote. Bitte lesen Sie andere Antworten hier, die viel spezifischer und informativer sind.

0 Stimmen

12 Entwickler Verstanden. oauth1 und oauth2 haben viele Unterschiede. Frühere Antworten decken sie ab und Wie ich schon sagte können Sie dies lesen oauth.net/core/1.0a oder dies oauth.net/2 um Ihre eigene Antwort zu geben. Mein Ziel ist es, eine der berüchtigtsten technischen Unterschied wenn ein Entwickler einen Rest-Client entwickeln müssen.

10voto

Abhijit Gaikwad Punkte 2994

OAuth 2.0 verspricht, die Dinge auf folgende Weise zu vereinfachen:

  1. Für die gesamte Kommunikation, die zur Erzeugung des Tokens erforderlich ist, ist SSL erforderlich. Dies bedeutet eine enorme Verringerung der Komplexität, da diese komplexen Signaturen nicht mehr erforderlich sind.
  2. Signaturen sind für die eigentlichen API-Aufrufe nicht erforderlich, sobald das Token generiert wurde - SSL wird auch hier dringend empfohlen.
  3. Sobald das Token generiert war, musste der Client bei OAuth 1.0 bei jedem API-Aufruf zwei Sicherheits-Token senden und beide zur Generierung der Signatur verwenden. Bei OAuth 2.0 gibt es nur ein Sicherheits-Token, und es ist keine Signatur erforderlich.
  4. Es ist klar festgelegt, welche Teile des Protokolls vom "Ressourceneigentümer" implementiert werden, d. h. dem eigentlichen Server, der die API implementiert, und welche Teile von einem separaten "Autorisierungsserver" implementiert werden können. Das macht es für Produkte wie Apigee einfacher, OAuth 2.0-Unterstützung für bestehende APIs anzubieten.

Quelle: http://blog.apigee.com/detail/oauth_differences

2voto

harmv Punkte 1711

Vom Standpunkt der Sicherheit aus würde ich OAuth 1 wählen, siehe OAuth 2.0 und der Weg zur Hölle .

Ich zitiere aus diesem Link:

"Wenn Sie derzeit die Version 1.0 erfolgreich nutzen, sollten Sie die Version 2.0 ignorieren. Sie bietet keinen wirklichen Mehrwert gegenüber 1.0 (ich nehme an, dass Ihre Client-Entwickler die 1.0-Signaturen bereits herausgefunden haben).

Wenn Sie neu in diesem Bereich sind und sich für einen Sicherheitsexperten halten, verwenden Sie 2.0 nach sorgfältiger Prüfung seiner Funktionen. Wenn Sie kein Experte sind, verwenden Sie entweder 1.0 oder kopieren Sie die 2.0-Implementierung eines Anbieters, dem Sie vertrauen, dass er es richtig macht (die API-Dokumente von Facebook sind eine gute Anlaufstelle). 2.0 ist besser für große Unternehmen geeignet, aber wenn Sie einen großen Betrieb führen, haben Sie wahrscheinlich Sicherheitsexperten vor Ort, die das alles für Sie herausfinden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X