¿Qué significa 'client_id' en la concesión de credenciales de contraseña de OAuth 2.0?

1

Los clientes públicos no pueden ocultar sus solicitudes. Por lo tanto, la concesión de credenciales de contraseña no necesita clientSecret . Lo que tengo curiosidad es, ¿hay necesidad de client_id ? porque el hacker o el usuario cliente puede conocer o rastrear el client_id y hacer la misma solicitud fácilmente. Los clientes públicos como la aplicación móvil o la aplicación web no pueden garantizar que el cliente sea confidencial.

Realmente quiero saber cómo resuelven esto los clientes públicos. Como la aplicación móvil de Facebook y la bandeja de entrada de Google. ¿Implementaron la forma de autenticación para ellos? ¿Abandonar OAuth 2.0?

    
pregunta BaHwan Han 10.04.2016 - 18:28
fuente

1 respuesta

1

En resumen: se utilizan client_id y client_secret para autenticar APP .
username y password se usan para autenticar < fuerte> user .

También significa protección de doble capa.

La especificación dice:

  

el cliente DEBE autenticar con el servidor de autorización como se describe en Sección 3.2.1 .

La autenticación de un cliente se realiza utilizando un valor de client_id y client_secret .

En realidad, el último párrafo de la sección 3.2.1 dice

  

Un cliente público al que no se le emitió una contraseña de cliente PUEDE usar el parámetro de solicitud client_id para identificarse a sí mismo cuando envía solicitudes al punto final del token (por ejemplo, con el fin de proporcionar contexto de usuario final, estadísticas de uso del cliente).

Sin embargo, sólo puede. Pero Google proporciona un client_id y un client_secret en la consola para desarrolladores cuando se intenta utilizar una API.

Si desea utilizar Resource Owner Password Credentials para una API o una autorización web, puede proporcionar una página de registro para que sus clientes se registren. (Recomiendo el uso de flujo de credenciales de cliente para API)

Si desea utilizar Resource Owner Password Credentials para una aplicación móvil, puede dar un estándar estándar como client_id como AwesomeAPP y un client_secret como Bl**123_Blabla .

O puede usar AwesomeAPP_v1.0 como client_id para hacer un seguimiento de cuánta gente usa qué versión de la aplicación, aunque no sea la mejor manera. Pero puedes.

Espero que esto ayude ...

    
respondido por el efkan 22.07.2016 - 16:00
fuente

Lea otras preguntas en las etiquetas