2012-04-03 9 views
9

Nella sezione 6.1.1. Consumer Obtains a Request Token del OAuth Spec dice che è necessario inviare una richiesta che contiene il seguente paramter:"Che cosa" firma oauth_signature?

oauth_signature: 
    The signature as defined in Signing Requests. 

ma come si può firmare la richiesta se il oauth_signature è di per sé una parte di esso? Voglio dire, "cosa" firmi? Tutti i campi eccetto il oauth_signature o cosa?

Ad esempio, nel The OAuth 1.0 Protocol forniscono il seguente esempio di ottenere le credenziali temporanee:

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" 

Ma come hanno fatto ad ottenere il campo oauth_signature? Che cosa erafirmato?

Siamo spiacenti, nuovo a crypto - così la spiegazione fittizia sarebbe apprezzata.

risposta

7

La "stringa di base della firma" è in fase di firma. Cattura "l'essenza" di questa particolare richiesta, in modo che non possa essere incasinato. (Nota che non include tutto, specialmente non il corpo della richiesta).

Nell'esempio si è collegato al, continuate a leggere per una stringa di esempio, di base:

Per esempio, la richiesta HTTP:

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" 

è rappresentato dalla seguente base di firma stringa (interruzioni di riga sono solo a scopo di visualizzazione):

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! Vedo, [Sezione 9] (http://oauth.net/core/1.0/#signing_process) fornisce una chiara spiegazione su come farlo, affermando in 9.1.1 che 'Il parametro oauth_signature DEVE essere escluso. – drozzy

Problemi correlati