Teil 4: So funktioniert OAuth2
Kommentare

Wie schon beschrieben, basiert der Standardautorisierungsmechanismus von OAuth2 auf der Nutzung von Bearer Tokens in Verbindung mit der sicheren Übertragung über TLS/SSL.

Es sind aber Fälle denkbar, in denen die Nutzung von TLS/SSL nicht möglich ist, zum Beispiel wenn starke Latenzen bei den einzelnen Requests zu erwarten sind, und man die zusätzlichen Requests, die der TLS/SSL Handshake bedarf, vermeiden möchte. Um dem zu begegnen, kann man dank der modularen Struktur von OAuth2 auch auf andere Autorisierungsarten zurückgreifen, zum Beispiel indem man die Requests, ähnlich wie bei OAuth1 beschrieben, signiert. Die Signatur wird dabei über den gesamten Request erstellt und im Authorization Header an den Request angehängt.

Wie ist der Stand von OAuth2?

OAuth2 ist noch nicht final, sondern vor Kurzem im Draft 23 erschienen. Auch die einzelnen Autorisierungsmöglichkeiten sind noch nicht final, sondern im Draft 15 (Bearer Tokens) beziehungsweise Draft 00 (Signaturen). Allerdings ist der Spezifikationsprozess mittlerweile so weit fortgeschritten, dass alle Teile von OAuth2 als für die Implementation fertig betrachtet werden können und nicht mehr mit einer technischen Änderung des Protokolls zu rechnen ist. Und es gibt sogar schon eine ganze Reihe von APIs, zum Beispiel das Facebook Graph API oder zahlreiche APIs von Google, die OAuth2 als Autorisierungsmechanismus produktiv einsetzen (Abb. 7).

Abb. 7: Facebook OAuth2 Authorization Screen

Abb. 7: Facebook OAuth2 Authorization Screen

OAuth2 und das Facebook Graph API

Um per OAuth2 auf das Facebook Graph API zuzugreifen, muss man zuallererst eine neue Anwendung im Facebook-Entwicklerbereich anlegen und den Callback URL seiner Anwendung angeben (Abb. 8). Das Codebeispiel in Listing 7 zeigt, wie man ein Access Token bekommen und mit ihm das Profil des autorisierenden Nutzers abfragen kann (Abb. 9). Nach der erfolgten Autorisierung wird der Name des Profils des aktuellen Nutzers abgefragt und sein Nutzername ausgegeben. Da Facebook derzeit noch nicht die finale Version von OAuth2, sondern einen älteren Draft implementiert, gibt es noch ein paar kleinere Abweichungen zur finalen Version. So müssen nicht alle von OAuth2 spezifizierten Parameter, wie der response_type, an die Requests angehängt werden, Token und Secrets werden als Query-Parameter und nicht im Request Header übertragen. Mehr Informationen dazu finden Sie in der Facebook-Authentication-Dokumentation und in der API-Referenz.

Abb. 8: Facebook Callback URL

Abb. 8: Facebook Callback URL

Abb. 9: Facebook Application Screen

Abb. 9: Facebook Application Screen

Listing 7
   
   
   
name);
     }

   }
}

function sendRequest($url) {
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   $response = curl_exec($ch);
   curl_close($ch);
   return $response;
}

?>

     <a href="">Connect with Facebook
   

Weiter mit: Teil 5

Alle Teile: Teil 1, Teil 2, Teil 3, Teil 4, Teil 5

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -