Non è possibile rispondere a questa domanda senza conoscere meglio il tuo ambiente.
- È tutto nel tuo dominio o questi esterni si collegano al tuo servizio?
- Questi servizi richiedono un diverso insieme di permessi l'uno dall'altro?
- Questi servizi vengono utilizzati per delegare un'identità utente utilizzata a valle?
- In che modo questi servizi comunicano tra loro? RIPOSO? Binary?
- Qual è lo stack tecnologico con cui stai lavorando?
I certificati client sono utili come modo per autenticarsi, ma se il tuo requisito è di avere permessi diversi per i servizi che accedono al tuo servizio, un certificato client di per sé non aiuterà. Come menzionato sopra, dovrai gestire i certificati che hai emesso, ma questo costrutto esiste con JWT che richiedono di essere firmati. Se disponi di più certificati per gli esterni,
Le JWT sono utili se i consumatori hanno permessi diversi e stanno accedendo al tuo servizio tramite REST. Se la comunicazione non è REST, non preoccuparti dei JWT. Dovrai gestire anche il certificato di firma nelle JWT. Se hai intenzione di utilizzare i JWT, devi essere consapevole dei punti deboli che hanno:
- Attacchi algoritmici contro librerie che rispettano il nessuno valore
- JWT replay attack
- Le JWT richiedono TLS sul livello di trasporto
- Alcuni framework JWT consentono di attaccare il sistema alterando i tipi di algoritmi da RS256 a HS256 e firmando con la chiave pubblica
Non c'è nulla di sbagliato nelle JWT se implementate correttamente, le sue sole persone possono rovinare l'implementazione del JWT. Sono un pregiudizio perché attualmente sto cercando di indirizzare i modelli JWT nella mia organizzazione che portano a lacune di sicurezza perché la validazione ha ignorato le date di scadenza ...