2011-11-25 17 views
23

El proyecto de OAuth 2.0 v2-22 Sección 3.2 dice:¿Los clientes deben obtener tokens de acceso OAuth 2 usando GET o POST?

El cliente debe utilizar el método HTTP "POST" al hacer token de acceso solicitudes.

Sin embargo, si nos fijamos en las Facebook y Foursquare implementaciones OAuth2, se preguntan los clientes a realizar una solicitud GET sencilla para solicitar un token de acceso. Piden a los clientes que coloquen el client_id y client_secret en la URL.

Estoy construyendo un servidor OAuth 2 y después de ver las implementaciones de Facebook y Foursquare, también estoy considerando romper el protocolo para permitir a los clientes solicitar el token de acceso a través de GET. La comunicación de mi sitio usa SSL, similar a Facebook y Foursquare.

Así que mi pregunta es la siguiente: ¿Hay buenas razones por las que no deben permitir que los clientes soliciten tokens de acceso a través del método GET a través de HTTPS?

Respuesta

9

El argumento más común es que no debe poner información confidencial en una cadena de consulta (parámetro GET) ya que los servidores web normalmente registran la URL de solicitud HTTP. Los datos POST pueden ser arbitrariamente largos, por lo que generalmente no se registran. Por lo tanto, cuando se trata de algo como client_secret o código (aunque es de uso único), tiene sentido hacerlo pasar en la carga de POST.

En mi humilde opinión, si está utilizando un flujo de OAuth 2.0 que no requiere client_secret (o lo pone en el encabezado de autorización HTTP, como se recomienda) - no veo un problema con permitir GET.

+0

Buen punto sobre los registros del servidor, pero para Oauth2, almacenamos client_id y client_key en texto sin formato en nuestro servidor de todos modos, entonces ¿esta información está en nuestros registros del servidor es mucho peor de lo que ya existe en nuestra base de datos? – Spike

+0

De acuerdo, es casi lo mismo entonces. Si el servidor web y su OAuth AS están bajo sus controles, no es gran cosa, lo que permite GET EN MI NOMBRE. –

Cuestiones relacionadas