2012-04-03 7 views
9

Im Abschnitt 6.1.1. Consumer Obtains a Request Token des OAuth Spec sagt, dass Sie eine Anfrage senden müssen, die die folgenden Paramter enthalten:"Was" signiert oauth_signature?

oauth_signature: 
    The signature as defined in Signing Requests. 

Aber wie kann man den Antrag unterschreiben, wenn die oauth_signature selbst einen Teil davon ist? Ich meine, "was" unterschreibst du? Alle Felder außer der oauth_signature oder was?

Zum Beispiel in den The OAuth 1.0 Protocol sie bieten das folgende Beispiel für die temporären Anmeldeinformationen zu erhalten:

POST /initiate HTTP/1.1 
Host: photos.example.net 
Authorization: OAuth realm="Photos", 
    oauth_consumer_key="dpf43f3p2l4k3l03", 
    oauth_signature_method="HMAC-SHA1", 
    oauth_timestamp="137131200", 
    oauth_nonce="wIjqoS", 
    oauth_callback="http%3A%2F%2Fprinter.example.com%2Fready", 
    oauth_signature="74KNZJeDHnMBp0EMJ9ZHt%2FXKycU%3D" 

Aber wie sie das oauth_signature Feld gekommen? Was war es, dass sie unterzeichnet?

Entschuldigung, neu zu crypto - so Dummy Erklärung würde geschätzt werden.

Antwort

7

Die Signaturunterschrift wird signiert. Es erfasst die "Essenz" dieser speziellen Anfrage, so dass dies nicht durcheinander gebracht werden kann. (Beachten Sie, dass es nicht alles enthält, insbesondere nicht den Anfragetext).

Im Beispiel Sie verknüpfen, auf ein Beispiel Basis String lesen:

Zum Beispiel kann die HTTP-Anforderung:

POST /request?b5=%3D%253D&a3=a&c%40=&a2=r%20b HTTP/1.1 
Host: example.com 
Content-Type: application/x-www-form-urlencoded 
Authorization: OAuth realm="Example", 
       oauth_consumer_key="9djdj82h48djs9d2", 
       oauth_token="kkk9d7dh3k39sjv7", 
       oauth_signature_method="HMAC-SHA1", 
       oauth_timestamp="137131201", 
       oauth_nonce="7d8f3e4a", 
       oauth_signature="bYT5CMsGcbgUdFHObYMEfcx6bsw%3D" 

durch die folgende Signatur Basis dargestellt wird Zeichenkette (Zeilenumbrüche dienen nur zur Anzeige):

POST&http%3A%2F%2Fexample.com%2Frequest&a2%3Dr%2520b%26a3%3D2%2520q 
%26a3%3Da%26b5%3D%253D%25253D%26c%2540%3D%26c2%3D%26oauth_consumer_ 
key%3D9djdj82h48djs9d2%26oauth_nonce%3D7d8f3e4a%26oauth_signature_m 
ethod%3DHMAC-SHA1%26oauth_timestamp%3D137131201%26oauth_token%3Dkkk 
9d7dh3k39sjv7 
+2

Aah! Ich sehe, [Abschnitt 9] (http://oauth.net/core/1.0/#signing_process) liefert eine klare Erklärung, wie man das macht, und erklärt in 9.1.1, dass der Parameter oauth_signature ausgeschlossen werden muss – drozzy

Verwandte Themen