In che modo i servizi in background eseguono l'autenticazione Api basata su token?

1

Sto implementando l'autenticazione basata su token JWT per la nostra WebAPI al fine di limitare l'accesso ai dati tramite l'API (ad esempio, il client invia nome utente / password e l'API fornisce un token jwt valido per x ore). Al momento abbiamo processi in background ricorrenti che devono accedere a tali dati. Qual è la migliore pratica relativa a questo scenario?

Ho letto da qualche parte che dal momento che il servizio è un tipo confidenziale di client, possiamo memorizzare le credenziali in codice simile a access-key / secret. Non mi piacciono le password di configurazione o hard coding, ma questo sembra l'approccio valido per il caso d'uso.

NOTA: questa domanda è stata suggerita come duplicato per dove memorizzare le chiavi private, ma il punto cruciale della domanda è più sulle idee su quale approccio è migliore per l'autenticazione correlata ai servizi in background.

    
posta MichaelChan 22.09.2017 - 03:36
fonte

1 risposta

1

La soluzione migliore dipenderà molto da ciò che memorizzi nel token.

se memorizzi informazioni riservate nel token, dovrai crittografarlo e utilizzare un token JWE . In questo caso, non avrai altra scelta che memorizzare una chiave privata da qualche parte il tuo servizio può accedervi.

Ma nella maggior parte dei casi, il tuo endpoint API non ha bisogno di un token crittografato: tutto ciò di cui hai bisogno è firmato, così puoi verificare che i dati nel token siano validi e quindi puoi usare un Token JWS .

In questo caso, hai ancora 2 opzioni: usa un token HMAC (nel qual caso dovrai memorizzare quella chiave HMAC in maniera sicura) o usa un algoritmo asimmetrico (RSA o EC-based). In questo caso successivo, tutto il tuo servizio API avrà bisogno di bisogno della chiave pubblica che corrisponde alla firma: hai bisogno che quella chiave sia archiviata sul tuo server in un modo che rende difficile la modifica della chiave ma NON hai bisogno di chiave per essere segreti.

    
risposta data 25.09.2017 - 09:42
fonte

Leggi altre domande sui tag