Qual è il vantaggio in termini di sicurezza dell'utilizzo di PostMessage anziché di un URL di callback in OAuth / OIDC?

2

Di tutti gli emittenti che ho trovato, (Facebook, Twitter, Azure AD, ecc.) solo CloudKit di Apple ha la funzione di "post messaggio" come callback (a meno che non sia sepolto nell'SDK dell'altro)

Ecco uno screenshot del Portale degli sviluppatori Apple

Domanda

  • Qual è il vantaggio dell'utilizzo dell'API PostMessage su un reindirizzamento 30x?

  • Gli altri fornitori di STS offrono questo (AzureAD, Facebook, Twitter, Ping, ADFS ...)

posta random65537 07.12.2016 - 03:16
fonte

1 risposta

2

Con la modalità di risposta di reindirizzamento ci sono più possibilità che il token di accesso sia trapelato e si potrebbe dire che ci sono più responsabilità per l'applicazione client per farlo bene.

Una delle conseguenze dell'utilizzo del reindirizzamento è che il token di accesso sarà accessibile nella barra degli indirizzi del browser, che può esporlo al proprietario della risorsa (utente finale) e sebbene non sia un problema diretto, può consentire la fine- l'utente a fare qualcosa di insicuro come bookmarking dell'URL o copia / incolla altrove. L'applicazione client deve cancellare la risposta nel frammento non appena viene elaborata per mitigare questo .

Esiste anche la preoccupazione dell'URL contenente il token di accesso conservato nella cronologia del browser o trapelato attraverso l'intestazione Referer .

Con la modalità di risposta dei messaggi web il token di accesso non viene mai incluso come parte di un URL e / o mostrato all'utente finale, quindi questo si traduce in migliori caratteristiche di sicurezza.

Per quanto riguarda il supporto, posso parlare dalla prospettiva Auth0 poiché attualmente lavoro lì. Ci sono state alcune menzioni sulla possibilità di implementare quella modalità, tuttavia, nulla di molto concreto.

È anche giusto dire che, anche per le SPA, con un po 'di collaborazione lato server è possibile avere qualcosa con le stesse caratteristiche della modalità di risposta dei messaggi Web utilizzando la modalità di risposta form_post . Il postMessage verrà eseguito dal tuo codice JS anziché dal codice JS di proprietà del server delle autorizzazioni.

Questa modalità di risposta è effettivamente supportata da Auth0 ( vedi la nota sul modulo dopo l'uso ) e vista la sua specifica definitiva forse ha un supporto più diffuso rispetto al messaggio Web.

    
risposta data 07.12.2016 - 12:41
fonte

Leggi altre domande sui tag