В случае разделенных серверных и интерфейсных приложений - нужно ли авторизовать интерфейс для серверной части? - PullRequest
0 голосов
/ 27 мая 2020

Я создаю масштабируемое приложение. Масштабируемость для меня означает, что серверная часть (ASP. NET Core 3.1) и интерфейсная часть (React) разделены. Я думаю об использовании Kubernetes для этого.
Скажем, например, что серверная часть имеет аутентификацию и авторизацию на основе ASP. Net Core Identity с использованием JWT, поэтому пользователь может быть зарегистрирован, а данные всех зарегистрированных пользователей сохраняются в базе данных. Функциональность регистрации предоставляется через конечную точку API серверной части /api/register.

    [HttpPost]
    [Route("register")]
    public async Task<IActionResult> Register([FromBody]User user)


Допустим, у меня есть все общие функции, предоставляемые как конечная точка API - тогда я хочу получить доступ к этим конечным точкам в моем интерфейсном приложении , но я хочу быть уверен, что только мое интерфейсное приложение будет иметь доступ к этим конечным точкам API, поэтому только мое клиентское приложение может получить доступ к этим конечным точкам . В будущем я хочу написать мобильное приложение для доступа к этим конечным точкам, поэтому я хочу разрешить доступ к моему API только «авторизованным» клиентским приложениям. Итак, если кто-то напишет собственное клиентское приложение и вызовет мой API, это будет невозможно.
Возникает вопрос: как это сделать лучше и профессиональнее? Я знаю, что в appsettings.json файле можно определить AllowedHosts, но это лучший способ, и если да, то как это сделать безопасно? Есть ли необходимость в этом?

Может вопрос не верный, но думаю, проблема описана понятно.

Заранее спасибо за ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...