Stiamo sviluppando una singola app Angular2 / NodeJS che avrà un modulo basato sul web per i nostri utenti da compilare e inviare. Non abbiamo nessuna applicazione Web per i nostri utenti per accedere (quindi nessun SSO), ma il nostro gli utenti accedono alle nostre app partner, che possono essere un'applicazione Web o un dispositivo mobile, ciascuno con il proprio meccanismo di autenticazione. Le nostre applicazioni per i partner chiamano fondamentalmente la nostra API per ottenere vari contenuti e mostrarli nella loro interfaccia utente. Ora uno dei nostri contenuti avrà il link alla nuova app di forma che stiamo sviluppando.
Vogliamo proteggere la chiamata all'app Form in modo tale che la richiesta possa essere attivata solo dalle nostre app partner e da nessun altro luogo. Le app partner non possono impedire all'utente di copiare l'URL, ma vogliamo essere sicuri che la richiesta provenga dalle nostre app partner.
Qual è il modo migliore per ottenere questo risultato con una codifica minima o nulla per i nostri partner poiché non abbiamo alcun controllo sui loro cicli di sviluppo o di rilascio. Poche delle opzioni che stiamo valutando
Opzione 1:
Controlla l'intestazione http, Referer. link . Questa potrebbe non essere la soluzione giusta come a) può essere facilmente falsificato ( link ) e b) Il client può essere un'app mobile e decidere di non inviare l'intestazione
Opzione 2:
Un'altra opzione sarebbe il nostro partner per passare un token come parametro nascosto. Quindi, supponendo che qualsiasi utente esperto di tecnologie non guardi nel sorgente della pagina per trovare ciò che è il token. Ovviamente questo potrebbe richiedere qualche attività dev dai nostri partner che vorremmo evitare.
Ci sono altre soluzioni eleganti che possiamo provare