Ho creato un'applicazione multi-tenant utilizzando Entity Framework, WebAPI, ASP.NET Identity. Fondamentalmente legge il sottodominio del tenant e lo utilizza per leggere la stringa di connessione dal database e impostarlo su runtime.Identità ASP.NET + token bearer + multi-tenant
Tutto è grande, il database sta creando ecc., Ma l'unico problema ora è il token di identità di ASP.NET.
Quando ho generato un token di accesso al portatore per http://tenant1.#####.com/token, sembra che il token sia firmato sulla stessa applicazione (nessuna chiave del computer è stata specificata) e consente l'accesso ai controller http://tenant2.#####.com, che non dovrebbe essere il caso in quanto è diversi sottodomini/inquilini.
Ci sono dei modi per aggirare questo problema? O forse dovrei cercare in altri Security Framework e non in ASP.NET Identity?
È necessario assumere il controllo sui token e aggiungere lì dati personalizzati, il nome del tenant. Poiché i token sono basati su affermazioni, ciò dovrebbe essere possibile. Quindi verifica su ogni richiesta un altro controllo per verificare se l'attuale titolare corrisponde a quello del token. Ad esempio, questo controllo potrebbe essere eseguito in un modulo http personalizzato. –
Salve, in questo scenario le rivendicazioni potrebbero essere un approccio "sicuro"? Perché tutto ciò che serve è la possibilità di spoofing di un token con il claim tenantid corretto e la richiesta può essere inoltrata? –
Non è possibile eseguire lo spoofing di un token dal lato client. –