У меня есть два веб-приложения на лазурном, одно угловое 6, другое - .net core web api. Angular приложение использует API для получения данных. Некоторые из этих API являются публичными API. Это означает, что для их вызова не требуется аутентификация.
Мои вопросы: каковы наилучшие подходы для защиты этих публичных API? Под защитой я подразумеваю не позволять анонимным пользователям называть эти данные API и злоупотребления.
По-моему, вот что я могу сделать:
- CORS, но проблема в том, что почтальон, а другой инструмент по-прежнему может вызывать мой apis
- Используете управление Azure API? Ограничением скорости? Есть ли лучший способ?
- Используйте какой-нибудь ключ API, но угловое приложение все равно их выставит.
- В моем приложении на c # я получаю пользовательский агент, хост, источник вызова и ограничиваюсь на основании этого?
По сути, я хочу запретить анонимному пользователю манипулировать и вызывать мой пост apis и передавать не релевантные или дублирующие данные в мой бэкэнд без использования какого-либо AD, так как мой apis будет общедоступным. Я хочу, чтобы только несколько авторизованных приложений могли вызвать мой apis.
Пожалуйста, скажите мне, какой из вышеперечисленных является правильным, и, пожалуйста, порекомендуйте лучший подход.
P.S .: мой бэкэнд - .net core 2.2,
Спасибо