2014-02-09 1 views
0

гуру безопасности Spring,пружинный аутентификации безопасности с Windows AD, авторизации с Spring Security ACL

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

Я пытаюсь реализовать управление доступом на основе роли с использованием весенней безопасности 3.x. Отдельные пользователи хранятся в Windows AD без групп, поэтому мы не можем просто сопоставлять группы с полномочиями, как демонстрировали некоторые образцы.

Таким образом, мой план состоит в том, чтобы использовать Windows AD только для целей аутентификации, но пользовательское отношение 0AB-> должно поддерживаться самой весной.

Однако сопоставление отдельных пользователей с ролями было бы очень утомительным, поэтому мой вопрос заключается в том, насколько возможно настроить пользователей < -> группы < -> роли в весенней безопасности, но часть аутентификации должна выполняться Windows AD?

Поскольку весенняя безопасность очень гибкая, я считаю, что мои требования достижимы. Может кто-нибудь дать некоторые указатели, где я должен смотреть, пожалуйста?

Чем больше деталей, тем лучше для новичков, как я: =)

Спасибо заранее.

Аарон Ли


EDIT 1: Для того, чтобы добавить на мой вопрос, в частности, можно использовать таблицы базы данных Spring органов власти, групп, group_authorities, group_members реализовать простую authroization логику на основе ролей? Но я не могу использовать таблицу «users», как объяснил, что данные пользователя должны быть сохранены в Windows AD, чтобы аутентификация пользователей была выполнена с использованием Windows AD.

Рекомендации:

Благодаря

Аарон

ответ

0

Сначала некоторые разъяснения по терминологии: Власти, как правило, состоящие из ролей в Spring Security, являются приложения шириной разрешения. ACLs (Списки контроля доступа), с другой стороны, укажите разрешения для определенных объектов домена. Как вы понимаете разницу. Обычно AD содержит полномочия/роли, но не ACL.

Если вы не хотите использовать полномочия из AD, вы можете выполнить свою собственную реализацию UserDetailsContextMapper и ввести ее в свой пример ActiveDirectoryLdapAuthenticationProvider. См. Spring Security reference documentation, как указать собственный поставщик аутентификации.

Если вы хотите использовать таблицы (полномочия и т. Д.) Ссылочной схемы, вы можете использовать JdbcDaoImpl для загрузки деталей пользователя. Затем вам нужно вставить пользователей в таблицу users, но не пароли, поскольку аутентификация выполняется через AD. Однако, если вы хотите избавиться от таблицы пользователей, вы должны настроить реализацию.

+0

Да, я перепутал условия. Просто прочитал документацию. Да, администраторы являются объектами на уровне приложения, которые содержат разрешения, тогда как ACL являются объектами Domain. –

+0

В этом случае, как UserDetails, полученный из моей собственной реализации UserDetailsContextMapper, работает с ACL, которые определяют, кто может что-то делать? Не могли бы вы рассказать? –

+0

Я добавил еще один вопрос к моему оригинальному, можете ли вы помочь? –