Обеспечение весенних облачных функций с помощью весенней безопасности
У меня есть требование защищать конечные точки отдыха, предоставляемые весенними облачными функциями, размещенными на Azure. Мы хотим использовать Spring Security для аутентификации и авторизации вызова, но я не могу этого сделать. Тот же код работает в приложении Springboot, но не влияет на функции Spring Cloud.
Итак, разбив мой вопрос на более мелкие куски
- Облачные функции Spring поддерживают весеннюю безопасность?
- Если да, то как этого достичь?
- Если нет, каким должен быть подход для достижения этой цели?
2 ответа
- Сомневаюсь... Spring Security - довольно тяжелый механизм, который требует либо некоторого хранения в памяти (сеансы, учетные данные пользователя и т. Д.), Либо соединения с решением для хранения (например, db) или сервером аутентификации. Все эти реализации будут выходить за рамки простой функции. Теоретически это возможно, но крайне неэффективно.
- -
- Я предполагаю, что у вас есть какой-то API-шлюз перед этими функциями. Обычная схема - перехватывать все вызовы в этом шлюзе, аутентифицировать и авторизовывать их (либо вызывать сервис, либо использовать встроенный механизм аутентификации, в зависимости от ваших требований), а затем перенаправлять их в функции весеннего облака, которые можно вызывать только из вашей сети (через шлюз API).
Если у вас есть контроллер с вашим API, вы можете реализовать oAuth2 с пружинной защитой, где он предоставляет токен для защиты ваших URL.
Учебники: https://dzone.com/articles/securing-rest-services-with-oauth2-in-springboot-1 https://medium.com/google-cloud/understanding-oauth2-and-building-a-basic-authorization-server-of-your-own-a-beginners-guide-cf7451a16f66
Если вам нужна помощь для настройки всех типов клиентов, просто прокомментируйте ниже, и я сделаю все возможное, чтобы дать вам правильный ответ.