Sto utilizzando OAuth2 di Google per l'autenticazione per un sito Web che ha anche un componente API RESTful. Mi piacerebbe supportare le connessioni da client che non sono all'interno di un browser web. Inoltre, vorrei evitare di mantenere un elenco di nomi utente e chiavi API. Sto pensando a questo schema:
- L'utente accede al sito Web utilizzando Google OAuth2 e un browser.
-
Il sito web presenta all'utente una chiave API eseguendo prima un HMAC-SHA1 di:
- una chiave segreta sul server
- lo username
- l'ora corrente
e quindi concatenandolo con nome utente e ora, e base64 che codifica tutto.
- Questa chiave deve essere inviata dal client ad ogni richiesta: verrà convalidata dal server e può essere espirata confrontando l'ora con l'ora corrente.
- Tutto è servito su SSL.
Suona ragionevolmente sicuro?
Grazie in anticipo per qualsiasi idea.