Sicherer Zugriff auf Web-APIs durch das OAuth-Protokoll
Kommentare

Schritt 1: Anfordern der Temporary Credentials
Bevor druckdienst.example Alice um die Zugriffsrechte auf die Fotos bitten kann, muss ein Satz Temporary Credentials mit bilder.example vereinbart werden,

Schritt 1: Anfordern der Temporary Credentials

Bevor druckdienst.example Alice um die Zugriffsrechte auf die Fotos bitten kann, muss ein Satz Temporary Credentials mit bilder.example vereinbart werden, mit denen der Delegierungs-Request identifiziert wird. Die Temporary Credentials werden vom Client über einen authentifizierten HTTP-POST-Request (dazu unten mehr) beim Server angefordert.

Dieser muss den Parameter oauth_callback enthalten, in dem ein absoluter URI angegeben wird, zu dem der Server den Resource Owner nach erfolgreicher Autorisierung weiterleitet. Ist kein Callback möglich, muss der Parameter auf dem Wert „oob“ (out-of-band) gesetzt werden.

Da der Request zu einer HTTP-Response mit Klartext-Credentials darin führt, muss der Server die Kommunikation über z. B. SSL oder TLS absichern. Der Server prüft den Request (auch dazu unten mehr). Ist er gültig, antwortet er mit einer Response, die die Temporary Credentials im Body enthält. Folgende Parameter sind dafür erforderlich:

  • oauth_token (der Identifier der Temporary Credentials)
  • oauth_token_secret (das Shared-Secret der Temporary Credentials)
  • oauth_callback_confirmed (Es muss vorhanden sein und auf true
  • gesetzt werden, dient zur Unterscheidung von älteren Protokollversionen)

Zur Anforderung der Temporary Credentials wird vom Client der in Listing 1 zu sehende authentifizierte HTTP-Request an bilder.example geschickt.

Listing 1
POST /initiate HTTP/1.1
Host: bilder.example
Authorization: OAuth realm="Photos",
oauth_consumer_key="druckdienstid",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="[Unix-Zeitstempel]",
oauth_nonce="Zufallsdaten",
oauth_callback="http%3A%2F%2Fdruckdienst.example%2Fready",
oauth_signature="[Die Signatur]"

Der Host bilder.example prüft den Request und sendet bei positivem Ergebnis die Temporary Credentials im Body der HTTP-Response (Listing 2).

Listing 2
HTTP/1.1 200 OK
Content-Type: application/x-www-form-urlencoded

oauth_token=temporaerestoken&oauth_token_secret=t0k3n5ecret&oauth_callback_confirmed=true
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -