Рекомендации по аутентификации и авторизации для Java-приложения на основе spring

#spring #authentication #authorization #openldap #opensso

#spring #аутентификация #авторизация #openldap #opensso

Вопрос:

В нашей организации мы разрабатываем аутентификацию на основе ldap и авторизацию с функцией единого входа в систему. После разработки этого универсального модуля появятся десятки других модулей, которые будут зависеть от него. Наборы инструментов являются —

  • Spring
  • Переход в спящий режим
  • Tomcat 7
  • OpenAM / OpenSSO
  • openldap
  • postgresql

У нас будет простой механизм аутентификации, но очень сложная схема авторизации. Мы не уверены, какой подход будет правильным для авторизации. Должны ли мы поместить аутентификацию, а также логику авторизации в LDAP или мы должны использовать ее только для аутентификации? В этом случае нам придется повозиться с OpenAM / OpenSSO. Есть ли какой-либо другой подход? например, spring security, CAS, JOSSO, .. ? Каким бы ни был подход, он должен быть очень масштабируемым и обслуживаемым. Мы будем признательны за любое предложение или помощь.

Спасибо, Назрул

Комментарии:

1. 1 год 0 принятых ответов = никакой помощи.

Ответ №1:

Вы можете взглянуть на Apache Shiro:http://shiro.apache.org . Это простая в использовании платформа безопасности, которая поддерживает большинство существующих технологий безопасности, включая LDAP и единый вход.

Кроме того, с помощью подтипов AuthenticatingRealm и AuthorizingRealm (из Shiro API) вы можете реализовать свои стратегии аутентификации и авторизации, независимо от того, насколько они сложны.

Чаще всего вы будете реализовывать свои собственные:

  • AuthenticatingRealm

  • AuthorizingRealm

  • AuthenticationToken

  • Authozationtoken

  • PremissionResolver

    и так далее…

Ответ №2:

Вероятно, вы хотели бы взглянуть на это, прежде чем двигаться дальше в принятии какого-либо решения. http://grzegorzborkowski.blogspot.com/2008/10/spring-security-acl-very-basic-tutorial.html

Ответ №3:

Для авторизации вы можете обратиться к внешним фреймворкам авторизации на основе XACML, расширяемого языка разметки управления доступом.

Это стандарт OASIS, который реализует управление доступом на основе атрибутов, что дает вам большую гибкость при разработке вашей авторизации.