Flujo de OAuth2 no confidencial

6

He estado revisando algunos documentos relacionados con los flujos de autorización OAuth2 confidenciales y no confidenciales, a saber this y el RFC .

A mi entender, el flujo no confidencial no requiere el client_secret , o mejor aún, en realidad no deberías usar el client_secret porque estás asumiendo que alguien puede conseguirlo junto con client_id , por lo que es más fácil que se haga pasar por la aplicación cliente.

Por lo tanto, para implementar el flujo no confidencial, el cliente debe trabajar primero con el client_id emitido por el servidor y un estado generado por el cliente. Luego, el cliente debe utilizar un código devuelto por el servidor y el mismo valor de estado . Un redirect_uri también debe estar registrado con el servidor.

AFAIK (que yo sepa) eso es lo que distingue el flujo confidencial del no confidencial: el flujo confidencial requiere el client_secret mientras que el no confidencial no lo hace. Además, esto es lo que define el flujo no confidencial, la falta de un client_secret . ¿Tengo razón al asumir esto?

La Sección 2.3 no parece ser específica con respecto a esto.

Preguntas relacionadas, de Sección 4.1.3 :

  

Si el tipo de cliente es confidencial o el cliente fue emitido cliente   credenciales (u otros requisitos de autenticación asignados), la   el cliente DEBE autenticar con el servidor de autorización como se describe en    Sección 3.2.1.

¿Qué es exactamente lo que se encuentra en " otros requisitos de autenticación "? ¿No es este un cliente que tiene que ser autorizado?

    
pregunta takecare 17.01.2018 - 17:29
fuente

2 respuestas

0

Un cliente confidencial puede guardar / proteger secretos, mientras que un cliente no confidencial no puede.

Debido a que los clientes no confidenciales no pueden guardar secretos, la especificación OAuth 2 no permite que los tokens de actualización, ni ningún tipo de información confidencial se compartan con dichos clientes. Esto también significa que a los clientes no confidenciales no se les pueden confiar claves secretas o privadas.

Sin tales claves, un cliente no puede autenticarse (es decir, identificarse de forma segura con un ID de cliente determinado) con el servidor de autorización.

A pesar de que a un cliente no confidencial se le asigna un client_id, cualquiera puede hacerse pasar por ese client_id. Como tal, el servidor de autorización limita deliberadamente el tipo de información que compartirá con un cliente no confidencial.

    
respondido por el HTLee 04.03.2018 - 05:57
fuente
0

"otros requisitos de autenticación" probablemente se refieran a los métodos de autenticación, aparte de las credenciales del cliente (ID del cliente y secreto del cliente). Por ejemplo, la autenticación del cliente (con certificados).

    
respondido por el Mike 01.08.2018 - 16:42
fuente

Lea otras preguntas en las etiquetas