Как защитить REST-ful API в Azure?

Я использую REST-ful API (приложение) в Azure, используя App Services, В частности, я использую Flask написать API. Я могу "защитить" от CSRF с участием CORS следующее.

app = Flask(__name__)
CORS(app, resources={r'/api/v1/*': {'origins': 'https://my-angular-app.azurewebsites.net'}})

Обратите внимание, что мое намерение разрешить только XHR из домена https://my-angular-app.azurewebsites.net, который является угловым приложением.

Тем не менее, я все еще могу использовать браузер (инкогнито или нет) или Почтальон для доступа к конечным точкам REST (например, https://my-rest-app.azurewebsites.net/api/v1/test). Инструмент Почтальон не является браузером, и поэтому он должен вести себя так, как он наблюдал. Поскольку браузер - это не один домен, использующий XHR для доступа к API-интерфейсу REST, набрав напрямую в известной конечной точке, я все равно могу получить доступ к ресурсу.

Я попытался применить Аутентификацию / Авторизацию в приложении REST, используя Login with Azure Active Directory, Этот подход "защищает" посторонних от прямого доступа к конечным точкам REST, однако он также не позволяет приложению Angular создавать XHR (я получаю 401 Unauthorized).

Любые идеи о том, как защитить приложение REST от "посторонних"? Я могу представить "исправления" в нескольких местах (например, в Angular, Flask, Azure и т. Д.), Но не уверен в разумном подходе.

0 ответов

Другие вопросы по тегам