type code oauth-2.0

oauth-2.0 - code - oauth2 implicit grant flow



¿Qué son los tokens de portador y token_type en OAuth 2? (3)

Estoy tratando de implementar el flujo de credenciales de propietarios de recursos y contraseñas desde 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, todos los ejemplos muestran "token_type":"example" pero dice que debería ser

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

¿Alguien puede explicarme esto?


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á usando. Sin embargo, su implementación está un poco retrasada con respecto a la última especificación.

Si desea 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 manera 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


Información del encabezado MDN de Mozilla

Token portador
Una ficha de seguridad con la propiedad de que cualquier parte en posesión del token (un "portador") puede usar el token de cualquier forma que pueda hacerlo cualquier otra parte en posesión del mismo. 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 de actualización lo ha creado 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 normalmente es algún 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.


token_type es un parámetro en el token de acceso que genera una llamada al servidor de autorización que representa esencialmente cómo se generará y se presentará un access_token para las llamadas de acceso a los recursos. Proporciona token_type en la llamada de generación de token de acceso a un servidor de autorización.

Si le da al Bearer (predeterminado en la mayoría de las implementaciones), se genera y se le envía un access_token . 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 elige Mac y sign_type ( hmac-sha-1 predeterminado en la mayoría de las implementaciones), el token de acceso se genera y se mantiene como secreto en Key Manager como un atributo, y un secreto encriptado se devuelve como access_token

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