© saicle/Shutterstock.com
PHP Magazin
Autorisierung mit Hilfe von Tokens

OAuth im Einsatz

Authentifizierung und Autorisierung innerhalb einer Webanwendung sind kein Problem, über Anwendungsgrenzen hinweg oder gegenüber Web Services aber schon. OAuth und OpenID Connect lösen dieses Problem. Wie das theoretisch funktioniert, habe ich in einem vorherigen Artikel bereits erklärt [1]. Und jetzt gucken wir mal, wie OAuth in der Praxis funktioniert.

Carsten Eilers


Andrew S. Tanenbaum hat in seinem Buch „Computer Networks“ über Standards eine sehr treffende Aussage gemacht: „The nice thing about standards is that you have so many to choose from“ [2]. Und wenn Sie sich für den OAuth-Standard entscheiden, lässt sich der Satz wunderbar erweitern: „Das Schöne am OAuth-Standard ist, dass es so viele Bibliotheken dafür gibt“. Es ist ziemlich egal, welche aktuelle Programmiersprache Sie für Ihr Programm verwenden, mit sehr großer Wahrscheinlichkeit gibt es mindestens eine Bibliothek, die Sie bei der Nutzung von OAuth unterstützt [3]. Und das Ganze lässt sich noch weiter herunterbrechen: Auch für die Nutzung von OAuth mit PHP gibt es eine Auswahl an Bibliotheken [4], doch auf die komme ich später noch zurück.

OAuth bei Twitter

Eines der am häufigsten genutzten Web-API mit OAuth-Unterstützung dürfte Twitter sein, weshalb ich es hier auch als erstes Beispiel verwende. Auch für Twitter gibt es reichlich Bibliotheken [5], Twitters API selbst interessiert dabei nur am Rande. Dass Sie damit nach erfolgreicher Autorisierung z. B. einen Tweet abschicken können, erleichtert die Erfolgskontrolle, ebenso die Tatsache, dass die Anwendung nach der Autorisierung die Timeline des Benutzers lesen kann und Ähnliches. Wichtig ist hier nur die Autorisierung.

Twitter verwendet sowohl OAuth 1.0a als auch OAuth 2.0 [6]. OAuth 2.0 wird verwendet, um einer Anwendung den Zugriff auf Twitter ohne Benutzerkontext zu erlauben. Die Anwendung agiert also quasi auf eigene Faust und nicht im Auftrag eines Benutzers (Application-only Authentication [7]). Das wird immer dann interessant, wenn auf nicht allgemein zugängliche Informationen oder Funktionen, z. B. der Premium-APIs, zugegriffen werden soll.

Damit die Anwendung im Namen eines Benutzers auf Twitter zugreifen und z. B. in seinem Namen Tweets veröffentlichen kann, ist die sog. Application-User Authentication nötig, die die 3-legged Authorization von OAuth 1.0a für die Autorisierung verwendet [8]. Diese ähnelt der in [1] vorgestellten Autorisierung von OAuth 2.0, für den Ablauf siehe Kasten „Twittern mit OAuth-Client“.

Erst einmal registrieren ...

Ich gehe mal davon aus, dass Sie bereits ein Twitter-Konto besitzen. Wenn nicht, müssen Sie es sich zunächst anlegen. Was Sie aber auf jeden Fall bei Twitter registrieren müssen, ist Ihre Anwendung. Früher war das einfach: Sie mussten nur eine Twitter-Seite aufrufen (https://developer.twitter.com/en/apps), dort die nötigen Informationen eingeben und konnten sof...

PHP Magazin
Autorisierung mit Hilfe von Tokens

OAuth im Einsatz

Authentifizierung und Autorisierung innerhalb einer Webanwendung sind kein Problem, über Anwendungsgrenzen hinweg oder gegenüber Web Services aber schon. OAuth und OpenID Connect lösen dieses Problem. Wie das theoretisch funktioniert, habe ich in einem vorherigen Artikel bereits erklärt [1]. Und jetzt gucken wir mal, wie OAuth in der Praxis funktioniert.

Carsten Eilers


Andrew S. Tanenbaum hat in seinem Buch „Computer Networks“ über Standards eine sehr treffende Aussage gemacht: „The nice thing about standards is that you have so many to choose from“ [2]. Und wenn Sie sich für den OAuth-Standard entscheiden, lässt sich der Satz wunderbar erweitern: „Das Schöne am OAuth-Standard ist, dass es so viele Bibliotheken dafür gibt“. Es ist ziemlich egal, welche aktuelle Programmiersprache Sie für Ihr Programm verwenden, mit sehr großer Wahrscheinlichkeit gibt es mindestens eine Bibliothek, die Sie bei der Nutzung von OAuth unterstützt [3]. Und das Ganze lässt sich noch weiter herunterbrechen: Auch für die Nutzung von OAuth mit PHP gibt es eine Auswahl an Bibliotheken [4], doch auf die komme ich später noch zurück.

OAuth bei Twitter

Eines der am häufigsten genutzten Web-API mit OAuth-Unterstützung dürfte Twitter sein, weshalb ich es hier auch als erstes Beispiel verwende. Auch für Twitter gibt es reichlich Bibliotheken [5], Twitters API selbst interessiert dabei nur am Rande. Dass Sie damit nach erfolgreicher Autorisierung z. B. einen Tweet abschicken können, erleichtert die Erfolgskontrolle, ebenso die Tatsache, dass die Anwendung nach der Autorisierung die Timeline des Benutzers lesen kann und Ähnliches. Wichtig ist hier nur die Autorisierung.

Twitter verwendet sowohl OAuth 1.0a als auch OAuth 2.0 [6]. OAuth 2.0 wird verwendet, um einer Anwendung den Zugriff auf Twitter ohne Benutzerkontext zu erlauben. Die Anwendung agiert also quasi auf eigene Faust und nicht im Auftrag eines Benutzers (Application-only Authentication [7]). Das wird immer dann interessant, wenn auf nicht allgemein zugängliche Informationen oder Funktionen, z. B. der Premium-APIs, zugegriffen werden soll.

Damit die Anwendung im Namen eines Benutzers auf Twitter zugreifen und z. B. in seinem Namen Tweets veröffentlichen kann, ist die sog. Application-User Authentication nötig, die die 3-legged Authorization von OAuth 1.0a für die Autorisierung verwendet [8]. Diese ähnelt der in [1] vorgestellten Autorisierung von OAuth 2.0, für den Ablauf siehe Kasten „Twittern mit OAuth-Client“.

Erst einmal registrieren ...

Ich gehe mal davon aus, dass Sie bereits ein Twitter-Konto besitzen. Wenn nicht, müssen Sie es sich zunächst anlegen. Was Sie aber auf jeden Fall bei Twitter registrieren müssen, ist Ihre Anwendung. Früher war das einfach: Sie mussten nur eine Twitter-Seite aufrufen (https://developer.twitter.com/en/apps), dort die nötigen Informationen eingeben und konnten sof...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang