Кэширование Grails spring-security-ldap с Redis - PullRequest
0 голосов
/ 02 мая 2018

Вопрос новичку, так терпите меня ...

В настоящее время у меня есть приложение Grails 2.4.4, которое использует spring-security-ldap 2.0.1 для аутентификации + авторизованных пользователей на сервере OpenLdap.

Люди из LDAP обеспокоены тем, что без кэширования этого приложения переход к производственной среде может повлиять на производительность сервера LDAP. Они рекомендовали использовать Redis для кэширования на уровне приложений для пользователей, b4 попав на сервер LDAP.

Я хотел бы получить некоторые указания, прежде чем погрузиться в POC, убедитесь, что я начинаю на правильном пути:

i) Я кратко изучил «Плагины Grails 1 & 2» от Grail org, при поиске Redis появилось несколько плагинов ... Какие из них действительно имеют отношение к тому, что я пытаюсь достичь?

ii) Предположим, что я интегрировал кеширование Redis в свои Grails, как / где мне сказать spring-security-ldap сначала посмотреть в кеш Redis, b4 включив сервер Ldap?

Заранее благодарен за любую информацию / путеводитель.

1 Ответ

0 голосов
/ 09 мая 2018

Вот несколько советов, так как вам не нужны готовые решения:

  • кэширование любого типа проверки подлинности является большой ошибкой безопасности, поскольку хакеры смогут воспользоваться этим, чтобы обойти некоторые правила, реализованные в вашем решении LDAP, такие как защита методом перебора (например, блокировка учетной записи после N неверного пароля)

  • Чтобы справиться с нагрузкой на стороне сервера LDAP, вы можете настроить срок действия маркера сеанса (JSESSIONID или JWT, в зависимости от того, как настроена безопасность Spring). Например, если срок действия токена составляет 1 час, вы будете получать только 1 запрос в час на пользователя.

  • у вас может быть механизм обновления токенов, чтобы обновлять токен сеанса, не запрашивая LDAP. В этом случае у вас будет только 1 запрос LDAP на устройство на пользователя, что может быть приемлемо. Вот как это сделать используя Grails JWT В этом документе вы увидите, что REDDIS может использоваться для хранения токена , что довольно сильно связано с тем, что было в вашем первоначальном решении

...