¿Cuál es el propósito de un token de API y un secreto de API?

7

Entonces, si un usuario se autentica en el sitio con un nombre de usuario / pw, obtiene un token de sesión que se devuelve al servidor para validar quiénes son.

Sin embargo, cuando usas una API como Twitter o 4square, tienes un token y un secreto. ¿Qué valor adicional tiene agregar un secreto de api al token de api, especialmente si va a enviarlos a ambos en la URL?

Lo único plausible que he podido imaginar es que hace que el espacio numérico sea REALMENTE grande, pero un token de 128 bits ya tiene un espacio numérico ENORME, por lo que creo que probablemente no sea la razón del valor adicional.

Entonces, ¿por qué tienen 2 valores, los cuales se transmiten en cada solicitud?

    
pregunta boatcoder 09.02.2016 - 22:49
fuente

1 respuesta

3

Esta declaración es incorrecta:

  

ambos se transmiten en cada solicitud

El secreto nunca se envía. En su lugar, cada solicitud se firma con el secreto. En la documentación de la API de Twitter , los datos que se envían están en el encabezado Authorization :

OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog", 
    oauth_nonce="kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg", 
    oauth_signature="tnnArxj06cWHq44gCs1OSKk%2FjLY%3D", 
    oauth_signature_method="HMAC-SHA1", 
    oauth_timestamp="1318622958", 
    oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb", 
    oauth_version="1.0"

La documentación sigue diciendo:

  

El parámetro oauth_signature contiene un valor que se genera al ejecutar todos los demás parámetros de solicitud y dos valores secretos a través de un algoritmo de firma. El propósito de la firma es para que Twitter pueda verificar que la solicitud no se ha modificado en tránsito, verificar la aplicación que envía la solicitud y verificar que la aplicación tenga autorización para interactuar con la cuenta del usuario.

Como se indica en la documentación, la firma se utiliza para la autenticación y para garantizar que la solicitud no se modifique una vez que se haya firmado.

Otra ventaja de esta estrategia de autenticación es que interactúa bien con servicios sin estado .

    
respondido por el Neil Smithline 10.02.2016 - 00:08
fuente

Lea otras preguntas en las etiquetas