Los estados OAuth2 password
grant_type
,
Si el tipo de cliente es confidencial o si el cliente recibió las credenciales del cliente (o se le asignaron otros requisitos de autenticación), el cliente DEBE autenticar con el servidor de autorización como se describe en la Sección 3.2.1.
Supongamos que tengo clientes confidenciales y no confidenciales. Esto parece una suposición muy plausible: tengo algunos desarrolladores externos, que ejecutan aplicaciones del lado del servidor, y por lo tanto se emiten un client_id
& client_secret
pair; También tengo una aplicación móvil y una aplicación web; obviamente, estos no pueden mantener el client_secret
confidencial, ya que se publican públicamente.
Por lo tanto, en el caso de un cliente público sin un secreto de cliente, lo anterior "Si el tipo de cliente es confidencial" es falso, y no se autentican con el servidor de autorización como se describe en §3.2.1.
Sin embargo, como servidor,
El servidor de autorización DEBE:
- requiere autenticación de cliente para clientes confidenciales o para cualquier cliente que haya recibido credenciales de cliente (o con otros requisitos de autenticación),
Está bien, pero dado que el texto anterior significa que solo los clientes confidenciales enviarán sus credenciales, ¿cómo es posible? Si no veo las credenciales en la solicitud, ¿cómo, como servidor de autorización, sé que este es un cliente público, en lugar de un cliente confidencial que no ha proporcionado la autenticación?
Tenga en cuenta que en "OAuth2 Simplified" , hay una solicitud grant_type=password
de ejemplo de que incluye un client_id
, pero no un client_secret
; ¿OAuth requiere que al menos un client_id
siempre se especifique durante las concesiones? (Y, por lo tanto, el servidor de autorización podría identificar al cliente y, por lo tanto, si necesitan una autenticación completa). ¿El RFC indica esto en alguna parte?