Wie Sie OAuth zur Autorisierung verwenden
Kommentare

Jetzt hat der Consumer korrekte Token Credentials, mit denen er auf Ihre Webanwendung zugreifen kann. Dafür fehlt jetzt nur noch eins: die Funktion tokenHandler() zur Auswertung der Token. Sie kann wie

Jetzt hat der Consumer korrekte Token Credentials, mit denen er auf Ihre Webanwendung zugreifen kann. Dafür fehlt jetzt nur noch eins: die Funktion tokenHandler() zur Auswertung der Token. Sie kann wie in Listing 6 aussehen. Je nach Status der Token Credentials liefert tokenHandler() unterschiedliche Werte zurück, sodass die Webanwendung nicht nur zwischen gültigen und ungültigen Token Credentials unterscheiden, sondern gegebenenfalls auch eine ausführlichere Fehlermeldung ausgeben kann. So können Sie den Consumer gegebenenfalls darüber informieren, dass der Benutzer seine Autorisierung zurückgezogen hat und weitere Requests zwecklos sind, wenn nicht zuvor eine erneute Autorisierung erfolgt ist.

Listing 6
public function tokenHandler($provider) {
   $this->token = [Abfrage der zu $provider->token gehörenden Zeile aus der DB];
   if(!$this->token->loaded) {
      return OAUTH_TOKEN_REJECTED;
   } else
   if($this->token->type==1 && $this->token->state==1) {
      return OAUTH_TOKEN_REVOKED;
   } else
   if($this->token->type==0 && $this->token->state==2) {
      return OAUTH_TOKEN_USED;
   } else
   if($this->token->type==0 && $this->token->verifier != $provider->verifier) {
      return OAUTH_VERIFIER_INVALID;
   }
   if ($provider->token_secret = $this->token->secret) {
      return OAUTH_OK;
   }
}
5. Verwaltung der Anwendungen

Ihre Webanwendung muss den Benutzern natürlich die Möglichkeit bieten, Anwendungen die erteilte Autorisierung zu entziehen oder sie gegebenenfalls einzuschränken (sofern Ihre Webanwendung verschiedene Stufen der Autorisierung enthält). Mit OAuth hat das aber nur am Rande zu tun, da Sie lediglich die Tabelle mit den Token Credentials entsprechend anpassen müssen.

Die API-Seite

Ein Punkt fehlt noch: die Anpassung des API ihrer Webanwendung an OAuth. Im Allgemeinen reicht es, eine einzige Funktion anzupassen, die bisher die Authentifizierung übernommen hat. Übergeben Sie ihr die vom Consumer gelieferten Token Credentials und werten Sie statt der bisherigen Passwortprüfung das Ergebnis von tokenHandler() aus, um fest zu stellen, ob sie gültig sind. Welcher Benutzer den Zugriff autorisiert hat, verrät Ihnen die entsprechende Spalte in der Tabelle mit den Token Credentials.

Fazit

Der OAuth-Standard sieht schlimmer aus, als es die OAuth-Implementierung zeigt. Die Nutzung von OAuth ist für Consumer fast kinderleicht. Für Provider ist das Ganze etwas schwieriger, aber sie haben ja auch eine deutlich größere Verantwortung zu tragen. Immerhin öffnet ein Fehler im OAuth-Provider ebenso wie ein Fehler in der normalen Authentifizierung unter Umständen einem Angreifer Tür und Tor zur Webanwendung.

Insofern ist es natürlich leichtsinnig, dass sämtliche weitergehenden Sicherheitsmaßnahmen hier außer Acht gelassen wurden. Welche Requests und Responses über HTTPS gesendet werden sollten, steht bereits im Entwickler Magazin 6.2011, weitere Hinweise zu Sicherheitsmaßnahmen finden Sie im Kasten „Weitere Sicherheitsmaßnahmen“.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -