Обеспечение весенних облачных функций с помощью весенней безопасности

У меня есть требование защищать конечные точки отдыха, предоставляемые весенними облачными функциями, размещенными на Azure. Мы хотим использовать Spring Security для аутентификации и авторизации вызова, но я не могу этого сделать. Тот же код работает в приложении Springboot, но не влияет на функции Spring Cloud.

Итак, разбив мой вопрос на более мелкие куски

  1. Облачные функции Spring поддерживают весеннюю безопасность?
  2. Если да, то как этого достичь?
  3. Если нет, каким должен быть подход для достижения этой цели?

2 ответа

  1. Сомневаюсь... Spring Security - довольно тяжелый механизм, который требует либо некоторого хранения в памяти (сеансы, учетные данные пользователя и т. Д.), Либо соединения с решением для хранения (например, db) или сервером аутентификации. Все эти реализации будут выходить за рамки простой функции. Теоретически это возможно, но крайне неэффективно.
  2. -
  3. Я предполагаю, что у вас есть какой-то 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

Если вам нужна помощь для настройки всех типов клиентов, просто прокомментируйте ниже, и я сделаю все возможное, чтобы дать вам правильный ответ.

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