Estoy intentando implementar el flujo de propietario de recursos OAuth2. Mi servidor de autorización genera correctamente tokens web JSON, por lo que mi siguiente paso es implementar tokens de actualización para mi aplicación web.
Todo lo que he leído explica que al solicitar un token de acceso desde su servidor de autorización, incluye la URL del servidor de recursos como client_id
. Esto se pone luego en un reclamo de auditoría dentro de su JWT. ¿Esto es correcto?
Si es así, mi problema surge cuando intento implementar tokens de actualización. Los tokens de actualización se emiten por cliente, por lo que el campo client_id
ahora necesita identificar al cliente, y no a la URL del servidor de recursos. Siendo este el caso, mi servidor de autorización ahora no sabe para quién emitir el token, por lo que no sabe qué agregar en la reclamación aud
dentro del JWT.
Estoy buscando algunos consejos sobre el mejor enfoque para resolver este problema en relación con la especificación OAuth2, no parece haber una respuesta concreta para este problema al mezclar OAuth2 y JWT.
¿Alguien tiene alguna idea?
Mi flujo actual se ve así:
-
El cliente envía la solicitud al servidor de autorización con el nombre de usuario en el campo
username
, la contraseña en el campopassword
y el servidor de recursos al que desea acceder en el campoclient_id
. -
El servidor de autorización valida el nombre de usuario y la contraseña, y comprueba si puede generar un JWT para el servidor de recursos solicitado.
-
Devuelve un token si ambos cheques pasan, el token contiene una reclamación
aud
que coincide con elclient_id
que vino en la solicitud.