Estoy usando OAuth2 de Google para la autenticación de un sitio web que también tiene un componente de API RESTful. Me gustaría admitir conexiones de clientes que no están dentro de un navegador web. Además, me gustaría evitar mantener una lista de nombres de usuario y claves de api. Estoy contemplando este esquema:
- El usuario inicia sesión en el sitio web utilizando OAuth2 de Google y un navegador.
-
El sitio web presenta al usuario una clave API al hacer primero un HMAC-SHA1 de:
- una clave secreta en el servidor
- el nombre de usuario
- la hora actual
y luego concaténtelo con el nombre de usuario y la hora, y base64 que lo codifica todo.
- Esta clave debe ser enviada por el cliente con cada solicitud: será validada por el servidor y puede expirar comparando la hora con la hora actual.
- Todo se sirve a través de SSL.
¿Esto suena razonablemente seguro?
Gracias de antemano por cualquier comentario.