LDAP авторизация - PullRequest
       18

LDAP авторизация

6 голосов
/ 06 июня 2011

Я начинаю реализовывать механизм авторизации и аутентификации с использованием LDAP для некоторых существующих систем. На этапе разработки я сталкиваюсь с трудным дизайнерским решением: где должны храниться роли пользователей?

Если я использовал RDBMS, похоже, будет три таблицы: пользователь , роль и user_role для сопоставления ролей и пользователей.

Пожалуйста, предложите доступные решения. Я думаю о сохранении пользовательских ролей в БД и пользователей в LDAP, но не уверен, что это лучшее решение. Я использую JBoss в качестве сервера приложений.

1 Ответ

7 голосов
/ 06 июня 2011

С архитектурной точки зрения у вас есть несколько решений.Вот решение, которое хранит все ваши данные в Справочнике.

В вашем Справочнике вы можете кодировать свои «Роли» объектами из класса со значением «группа», например groupOfNames или group (в зависимости от вашей директории).Имена пользователей (DN) будут кодироваться в многозначном атрибуте этих объектов (обычно member).DN объекта «Роль» может, в свою очередь, быть закодирован в многозначном атрибуте пользовательского объекта (например: memberof)

В случае, если ваш Справочник поддерживает ссылочную целостность, он может выступать в качестве системного Справочника.,Тогда атрибутами member и memberOf может управлять сам Справочник.Это означает, что если вы переместите пользователя из организационной единицы в другую, каталог будет обновлять атрибут member объектов «Роль», к которым принадлежит пользователь.

В другом случае (нетссылочная целостность) ваше приложение должно управлять целостностью атрибута.

Это коротко, но я надеюсь, что это поможет.


Отредактировано

Жажда всего, что я рекомендую вам Apache Directory Studio , то есть (для меня) один из лучших браузеров LDAP.Этот инструмент позволит вам увидеть ваш каталог и изучить LDAP более дружелюбно.Используя этот инструмент, я покажу вам, как ADAM (режим приложения Active Directory) бесплатный каталог Microsoft с кодом «Роли»

На первом рисунке вы можете видеть AdminAdam в качестве члена группы администраторов:

AdminAdam as a member of the administrators group

На этом втором рисунке вы можете видеть присутствие группы в атрибуте memberof пользователя adminAdam.

the attribute memberof of the user adminAdam

ADAMподдерживает ссылочную целостность.

...