Zend_Oauth-ProtocolWorkflow.xml 5.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20760 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.oauth.introduction.protocol-workflow">
  5. <title>Workflow des Protokolls</title>
  6. <para>
  7. Bevor OAuth implementiert wird macht es Sinn zu verstehen wie das Protokoll arbeitet.
  8. Hierfür nehmen wir ein Beispiel von Twitter welches aktuell bereits OAuth basierend auf der
  9. OAuth Core 1.0 Revision A Spezifikation imeplementiert. Dieses Beispiel sieht das Protokoll
  10. aus der Perspektive des Benutzers (der den Zugriff gestattet), dem Konsumenten (der den
  11. Zugriff anfragt) und dem Provider (der die privaten Daten des Benutzers hat). Ein Zugriff
  12. kann nur-lesend, oder lesend und schreibend sein.
  13. </para>
  14. <para>
  15. Durch Zufall hat unser Benutzer entschieden das er einen neuen Service verwenden will der
  16. TweetExpress genannt wird und behauptet in der Lage zu sein Blog Posts bei Twitter in
  17. wenigen Sekunden nochmals zu posten. TweetExpress ist bei Twitter eine registrierte
  18. Anwendung was bedeutet das es Zugriff auf einen Konsumentenschlüssel und ein Geheimnis des
  19. Konsumenten hat (alle OAuth Anwendungen müssen diese vom Provider haben auf welchen Sie
  20. zugreifen wollen) welche seine Anfragen bei Twitter identifizieren und sicherstellen das
  21. alle Anfragen signiert werden können indem das Geheimnis des Konsumenten verwendet wird um
  22. deren Herkunft zu prüfen.
  23. </para>
  24. <para>
  25. Um TweetExpress zu verwenden wird man danach gefragt sich für einen neuen Account zu
  26. registrieren, und das der Registrierung wird sichergestellt das man dafüber informiert ist
  27. das TweetExpress den eigenen Twitter Account mit dem Service assoziiert.
  28. </para>
  29. <para>
  30. In der Zwischenzeit was TweenExpress beschäftigt. Bevor das Einverständnis von Twitter
  31. gegeben wird, hat es eine HTTP Anfrage an den Service von Twitter geschickt und nach einem
  32. neuen unauthorisierten Anfrage Token gefragt. Dieser Token ist aus der Perspektive von
  33. Twitter nicht Benutzerspezifisch, aber TweetExpress man Ihn spezifisch für den aktuellen
  34. Benutzer verwenden und sollte Ihn mit seinem Account verknüpfen und Ihn für eine
  35. künftige Verwendung speichern. TweetExpress leitet den Benutzer nun zu Twitter um damit er
  36. den Zugriff von TweetExpress erlauben kann. Die URL für diese Umleitung wird signiert indem
  37. das Konsumentengeheimnis von TweetExpress verwendet wird und Sie enthält den
  38. unauthorisierten Anfrage Token als Parameter.
  39. </para>
  40. <para>
  41. An diesem Punkt kann der Benutzer gefragt werden sich in Twitter anzumelden und wird jetzt
  42. mit einem Twitter Bildschirm konfrontiert welcher Ihn fragt ob er diese Anfrage von
  43. TweetExpress für den Zugriff auf die API von Twitter im Auftrag des Benutzers gestattet.
  44. Twitter speichert die Antwort von der wir annehmen das Sie positiv war. Basierend auf dem
  45. Einverständnis des Benutzers speichert Twitter den aktuell unauthorisierten Anfrage Token
  46. als vom Benutzer akzeptiert (was Ihn Benutzerspezifisch macht) und erzeugt einen neuen Wert
  47. in der Form eines Überprüfungscodes. Der Benutzer wird jetzt auf eine spezifische Callback
  48. URL zurückgeleitet welche von TweetExpress verwendet wird (diese Callback URL kann bei
  49. Twitter registriert sein, oder dynamisch gesetzt werden indem bei den Anfragen ein
  50. oauth_callback Parameter verwendet wird). Die Umleitungs-URL wird den neu erzeugten
  51. Überprüfungscode enthalten.
  52. </para>
  53. <para>
  54. Die Callback URL von TweetExpress löst eine Überprüfung der Anfrage aus um zu erkennen ob
  55. der Benutzer seine Zustimmung an Twitter gegeben hat. Wir nehmen an das dies der Fall war,
  56. dann kann jetzt sein nicht authorisierter Anfrage Token gegen einen voll authorisierten
  57. Anfrage Token getauscht werden indem eine Anfrage an Twitter zurückgesendet wird inklusive
  58. dem Anfrage Token und dem empfangenen Überprüfungscode. Twitter sollte jetzt eine Antwort
  59. zurücksenden welche diesen Zugriffstoken enthält welcher in allen Anfragen verwendet werden
  60. muss um Zugriff auf die API von Twitter im Auftrag des Benutzers zu erhalten. Twitter macht
  61. das nur einmal sobald bestätigt wurde das der angehängte Anfrage Token noch nicht verwendet
  62. wurde um einen anderen Anfrage Token zu erhalten. Ab diesem Punkt kann TweetExpress dem
  63. Benutzer die Anfrage der Akzeptanz bestätigen und den originalen Anfrage Token löschen da
  64. er nicht länger benötigt wird.
  65. </para>
  66. <para>
  67. Ab diesem Punkt kann TweetExpress die API von Twitter verwenden um neue Tweets im Sinne des
  68. Benutzers zu schicken indem einfach auf die Endpunkte der API mit einer Anfrage zugegriffen
  69. wird welche digital signiert wurde (über HMAC-SHA1) mit einer Kombination von dem
  70. Konsumenten Geheimnis von TweetExpress und dem Zugriffsschlüssel der verwendet wird.
  71. </para>
  72. <para>
  73. Auch wenn Twitter den Zugriffstoken nicht ablaufen lässt, steht es dem Benutzer frei
  74. TweetExpress zu de-authorisieren damit es nicht mehr auf seine Einstellungen des Twitter
  75. Accounts zugreifen kann. Sobald er de-authorisiert wurde, wird der Zugriff von TweetExpress
  76. abgeschnitten und sein eigener Zugriffstoken wird als ungültig dargestellt.
  77. </para>
  78. </sect2>