ASP.NET Ядро, как защитить конечную точку от атаки методом перебора

#asp.net #security #asp.net-core #flutter

#asp.net #Безопасность #asp.net-core #флаттер

Вопрос:

Я создал API с конечной точкой Login (). Этот API используется мобильным приложением. Я собираюсь опубликовать это приложение в Google Play Store. Мой страх связан с безопасностью. Я мог бы реализовать что-то вроде captcha в своем мобильном приложении, но это не остановило бы злоумышленника перед отправкой запроса, например, из curl. Как с этим справиться?

Комментарии:

1. Конечные точки API не должны иметь метода входа в систему. Общий вариант использования — использовать OpenID / OAuth провайдера, перенаправлять пользователя туда при входе в систему, чтобы он мог ввести свои данные у своего надежного провайдера (вместо того, чтобы вводить свои учетные данные в приложение) и в обмен получает токен аутентификации, который отправляется на страницы. Кроме этого, ASP.NET Core Identity имеет механизм блокировки учетных записей на некоторое время после ввода неправильного пароля

2. Я не могу использовать OpenID / OAuth, поскольку мои пользователи аутентифицируются в AD.

3. Вы не должны предоставлять AD (прямо или косвенно) общедоступной информации или использовать ее в качестве схемы аутентификации, потому что у AD нет никаких механизмов защиты от грубого применения (и блокировки не могут быть применены к AD, поскольку, если вы заблокируете учетную запись, пользователь не сможет использовать настольные компьютеры / ноутбуки для входа в домен). Я бы посоветовал вам использовать Azure AD, он действует как поставщик OpenID и может настроить AD в режиме федерации для синхронизации с вашим Azure AD (поэтому, если пользователь изменит свой пароль, он будет синхронизирован с Azure AD в течение нескольких минут)

4. По этой причине ASP.NET Core identity не предлагает поставщика AD для аутентификации. Для Azure AD / AD sync см. learn.microsoft.com/en-us/azure/active-directory/hybrid /…

5. Я знал, что это не очень хорошая идея, но не знал почему. Теперь это понятнее.