как защитить остальные API с помощью ключей API без Spring Security

У меня есть rest api MyRestApi.war, который является проектом spring boot и spring mvc.

Есть еще один веб-проект A.war, который является обычным весенним проектом. Его внешний интерфейс, такой как javascript, и внутренний интерфейс, такой как java code, должны вызывать MyRestApi. Пользователь должен войти в систему A.war, чтобы использовать его.

Мне не нужно управлять разрешениями для MyRestApi, только пользователи, вошедшие в A.war, могут получить доступ к MyRestApi через внешний и внутренний интерфейс A.war.

Есть некоторые решения, например. API key, jwt, OAuth.

Я хочу попробовать эти три подхода, а затем выбрать один.

Но когда я ищу что-то вроде api key authentication, все они используют для этого spring security.

Итак, как я могу защитить MyRestApi с помощью ключа API без защиты Spring.


person frank    schedule 15.03.2019    source источник
comment
Пожалуйста, обратитесь к этому вопросу: Как защитить REST API с Spring Boot и Spring Security?   -  person srr7    schedule 02.08.2020


Ответы (1)


Вы можете написать свой собственный фильтр, если не хотите использовать пружинную безопасность. Этот фильтр будет перехватывать все URL-адреса. В этом фильтре вы можете проверить ключ API в заголовках и подтвердить. Если это подтверждено, пусть цепочка продолжится, иначе пользователь/приложение выдаст какую-то значимую ошибку.

person Rahul Vedpathak    schedule 15.03.2019
comment
api key устанавливается в заголовке запроса, например. имя заголовка — API-Key, а значение заголовка — 123, затем в фильтре получите это значение заголовка и проверьте по этому имени заголовка, верно? Если да, то какая разница между api key и http basic auth? потому что http basic auth также устанавливает что-то в заголовке, просто устанавливает имя пользователя и пароль. - person frank; 12.04.2019
comment
Вышеупомянутое решение заключалось в защите API без Spring Security. Оба ваших приложения развернуты на одном компьютере? Если да, то вы можете настроить переднее веб-приложение для прослушивания порта 433/80. И бэкэнд-приложение на другом порту. Кроме того, вы можете настроить http-коннектор для этого внутреннего приложения для прослушивания определенного адреса только как localhost. Проверьте эту ссылку — serverfault.com/questions/218666/ - person Rahul Vedpathak; 15.04.2019
comment
Да, они развернуты на одной машине, но, извините, я не понимаю, что вы сказали. Мой вопрос: в чем разница между api key и http basic auth, когда эти два подхода используются для защиты restful api? Потому что и api key, и http basic auth устанавливают значение в заголовке http? Является ли api key более безопасным, чем http basic auth? - person frank; 15.04.2019