Buongiorno,

Ho una serie di webservices i quali, per autenticare gli utenti, usano un sistema centralizzato. Ogni ws usa XWSS per la sicurezza (via SOAP) usando UsernameToken mentre l'autenticazione del token viene fatta contro il sistema centrale di autenticazione

In pratica la sequenza è:

client ---- wsse:Security UsernameToken /> --> webservices --- token authentication request --> sso server

Tutto funziona a meraviglia (quando dormo, poi mi sveglio e non funziona mai nulla ) ma c'è un dubbio che mi passa per la testa da un pò di tempo:

autenticare il token via sso non è propriamente una cosa velocissima da parte del webservices, anche perchè ci vogliono 3 chiamate all'sso per validare il token, e insomma ho una latenza non indifferente per ogni richiesta solo relativa all'utenticazione.

Stavo pensando se implementare una cache interna per l'autenticazione, molto breve, in maniera da abbassare la latenza in caso di richieste multiple in lassi di tempo breve (esempio: se il client richiede 3/4 api al ws nell'arco di una decina di secondi ): lo standard non lo consente, la libreria neanche, il mio handler per autenticare il token ovviamente potrebbe.

Il fatto è che mi sembra una "porcata" e una cosa abbastanza inutile oltre che pericolosa ai fini della sicurezza (le connessioni viaggiano via https ma la password - o il token utente - è in chiaro nella richiesta soap) e sinceramente non riesco a focalizzare una strategia efficace di caching

Qualche idea o pensiero in merito?