2011-05-08 11 views
111

Estoy tratando de implementar el flujo Resource Owner & Password Credentials de la especificación OAuth 2. Tengo problemas para entender el valor token_type que se envía con una respuesta válida. En la especificación de todos los ejemplos muestran "token_type":"example" pero dice que debe ser¿Qué son los tokens de portador y token_type en OAuth 2?

token_type REQUERIDO. El tipo de token emitido como se describe en Section 7.1. El valor no distingue entre mayúsculas y minúsculas.

¿Alguien puede explicarme esto?

Respuesta

28

Cualquiera puede definir "token_type" como una extensión OAuth 2.0, pero actualmente el tipo de token "portador" es el más común.

https://tools.ietf.org/html/rfc6750

Básicamente eso es lo que Facebook está utilizando. Sin embargo, su implementación está un poco retrasada con respecto a la última especificación.

Si quiere ser más seguro que Facebook (o tan seguro como OAuth 1.0 que tiene "firma"), puede usar el tipo de token "mac".

Sin embargo, será una tarea difícil ya que la especificación mac todavía está cambiando rápidamente.

https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05

129

token_type es un parámetro en el token de acceso generan llamada al servidor de autorización, que en esencia representa cómo se generará un señal_acceso y presenta para llamadas de acceso a los recursos. Proporciona token_type en la llamada de generación de tokens de acceso a un servidor de autorizaciones.

Si das Bearer (defecto en la mayoría de implementación), un access_token se genera y envía de nuevo a usted. El portador se puede entender simplemente como "dar acceso al portador de este token". Un token válido y sin preguntas. Por otro lado, si usted elige Mac y sign_type (por defecto hmac-sha-1 en la mayoría de implementación), se genera el token de acceso y se mantiene en secreto en el Administrador de claves como un atributo, y un código secreto que se envía de nuevo como access_token

Sí se puede use su propia implementación de token_type, pero eso no tiene mucho sentido ya que los desarrolladores necesitarán seguir su proceso en lugar de las implementaciones estándar de OAuth.

+12

Encuentro "otorgar acceso al portador de este token" lo hace más fácil de entender. Es el equivalente a emitir un cheque "dar dinero al portador del cheque". – NVM

+0

@NVM Gracias por la sugerencia, sin duda tiene sentido. He actualizado lo mismo. –

2

Mozilla MDN Header Information

portador simbólico
un token de seguridad con la propiedad de que cualquiera de las partes en posesión del testigo (un "portador") puede utilizar el token de ninguna manera que cualquier otra parte en posesión de lo posible. El uso de un token de portador no requiere que el portador demuestre la posesión de material de clave criptográfica (prueba de posesión).

El token de portador o token Refresh ha sido creado para usted por el servidor de autenticación. Cuando un usuario autentica su aplicación (cliente), el servidor de autenticación ejecuta y genera un token de portador (token de actualización) que luego puede usar para obtener un token de acceso.

El token de portador es normalmente un tipo de valor críptico creado por el servidor de autenticación, no es aleatorio, se crea en función del usuario que le da acceso y del cliente al que accede la aplicación.

Cuestiones relacionadas