Wie Sie OAuth zur Autorisierung verwenden
Kommentare

Die andere Seite des Protokolls: ein Provider
Eine Anwendung bei einem OAuth Provide autorisieren zu lassen, ist recht einfach. Selbst einen Provider bereit zu stellen, über den die Benutzer anderen Anwendungen

Die andere Seite des Protokolls: ein Provider

Eine Anwendung bei einem OAuth Provide autorisieren zu lassen, ist recht einfach. Selbst einen Provider bereit zu stellen, über den die Benutzer anderen Anwendungen die Nutzung der Webanwendung in ihrem Namen erlauben können, ist etwas komplizierter. Das folgende rudimentäre Beispiel ist zwar ebenfalls in PHP geschrieben, nutzt aber die PECL-Erweiterung OAuth [5]. Es basiert auf Beschreibungen von Lorna Jane Mitchell [Initial Requirements, PHP OAuth Provider: Request Tokens, PHP OAuth Provider: Authenticate User, PHP OAuth Provider: Access Tokens [6] und Rasmus Lerdorf [7].

Man nehme .

Der Service-Provider muss fünf Seiten beziehungsweise Funktionen bereitstellen:

  1. Eine Webseite, auf der Clientanwendungen (d. h. die Consumer) angemeldet werden können und auf der sie ihren Consumer Key und das zugehörige Consumer Secret erhalten.
  2. Einen Endpunkt für die Anforderung der Temporary Credentials (Request Token, Schritt 1 im obigen Beispiel).
  3. Eine Webseite, auf der die Benutzer die Consumer autorisieren können (Schritt 2).
  4. Einen Endpunkt für die Anforderung der Token Credentials (Access Token, Schritt 3).
  5. Eine Webseite, auf der die Benutzer die von ihnen autorisierten Anwendungen verwalten können.
1. Registrierung der Consumer

Bei der Registrierung der Consumer, die für jede Anwendung nur einmal notwendig ist, muss jeder angemeldeten Anwendung ein Consumer Key und ein Consumer Secret zugeteilt werden, die aus zufällig erzeugten Strings bestehen. Im OAuth-Standard gibt es keinerlei Vorgaben über Aufbau oder Zufälligkeit von Key und/oder Secret, sodass beide in Abhängigkeit ihrer Notwendigkeiten frei wählen können. Je schützenswerter Ihre Anwendung ist, desto länger und komplexer sollten Key und Secret sein. Ein Angreifer, der diese Werte errät, kann darüber unter Umständen unbefugt auf Ihre Anwendung zugreifen! Eine Möglichkeit zum Bilden der Werte sieht zum Beispiel folgendermaßen aus:

$hash = sha1(mt_rand());
$consumer_key = substr($hash,0,30);
$consumer_secret = substr($hash,30,10);

Statt separater Variablen für Key und Secret können Sie auch ein Array für beide Werte verwenden:

$consumer_key = array(substr($hash,0,30), substr($hash,30,10));

Consumer Key und Consumer Secret müssen sowohl vom Provider (in diesem Fall also Ihrer Webanwendung) als auch vom Consumer (z. B. wie im obigen Beispiel in der Konfigurationsdatei) gespeichert werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -