Sto prendendo in considerazione come adottare un'applicazione multilivello piuttosto complessa con più app Web che delegano di nuovo allo stesso server applicazioni e la migrazione per utilizzare l'autenticazione OIDC con il flusso di codice di autenticazione. Sto anticipando l'utilizzo di identity server 4.
La mia domanda è: quale sarebbe la migliore prassi accettata in termini di mantenimento di un'esperienza single-sign-on tra queste diverse applicazioni web client (ad esempio, i segni dell'utente in uno, ha firmato tutto fino a quando non firma). p>
Il link suggerisce:
Note that the audience (aud claim) of the [id token] is set to the client's identifier, which means that only this specific client should consume this token.
Questo suggerisce che dovrei considerare il mio server di applicazioni back-end come il mio singolo 'client' e le mie app web condividono lo stesso ID client. Posso immaginare di farlo memorizzando il token ID browser in un cookie sicuro.
Il link sembra convalidare questa idea:
Put into a browser cookie the ID token can be used to implement lightweight stateless sessions.
Ma mi chiedo se sia la migliore prassi di sicurezza per mantenere un id_token in un cookie.
Mi chiedo se ci sono altri approcci, come:
- Considerando ogni applicazione Web un "client" separato
- Quando l'utente accede a una seconda applicazione Web, fa in modo che vengano indirizzati direttamente al provider OIDC, che creerebbe automaticamente un token client per il nuovo client in base all'idea che siano ancora fondamentalmente "connessi" al OP.
Sembra che questo debba essere un problema risolto. Qual è la migliore pratica accettata qui?