Я создал приложение с несколькими арендаторами, использующее Entity Framework, WebAPI, ASP.NET Identity. В основном он считывает субдомен арендатора и использует его для чтения строки соединения из базы данных и устанавливает ее во время выполнения.Идентификатор ASP.NET + Token + Multi-Tenant
Все отлично, создается база данных и т. Д., Но единственная проблема теперь - токен-носитель идентификатора ASP.NET.
Когда я создал токен доступа к проводнику для http://tenant1.#####.com/token, кажется, что токен подписан в одном приложении (машинный ключ не указан), а также разрешает доступ к контроллерам http://tenant2.#####.com, что не должно быть так как это разные субдомены/арендаторы.
Есть ли способы обойти это? Или, возможно, я должен искать другую структуру безопасности, а не идентификатор ASP.NET?
Вам нужно взять под контроль токены и добавить туда пользовательские данные, имя арендатора. Поскольку жетоны основаны на требованиях, это должно быть возможным. Затем выполните еще одну проверку каждого запроса, чтобы проверить, соответствует ли текущий арендатор одному из токена. Эта проверка может быть выполнена в пользовательском модуле http, например. –
Здравствуйте, в этом случае использование претензий было бы «безопасным» подходом? Потому что все, что требуется, - это подделать токен с правильной претензией на тентификат и запрос может пройти? –
Вы не можете подделать токен на стороне клиента. –