2013-06-24 6 views
4

Я настройки веб-приложения с проверкой подлинности LDAP, и я не слишком уверен, как обращаться с пользователем БД отношений (например, созданный, назначен, утверждающим, членов)Handling отношения пользователей с проверкой подлинности LDAP

Так пока я придумал следующие варианты:

  1. , когда в первом пользователь войти, проверьте, если запись существует в пользователях таблицы. Если нет, выполните поиск ldap для получения имени и электронной почты и создайте запись пользователя. То же самое произойдет, когда пользователь добавит к списку или выбранному. (Возможно хранение даты последней LDAP подстановок и освежающей деталь на вход после й дней)

  2. создать запись пользователя с помощью только сп, и выполнять на лета Lookups для имени и электронной почты

  3. просто магазин cn вместо fk и выполнять поиск на лету для имени и электронной почты.

Я склонен пойти на вариант 1, как это будет держать вещи простыми для ОРМ и уменьшает количество lookups..on другой стороны, кажется, немного избыточны.

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

+0

Вы должны помещать роли в LDAP, а не отдельную базу данных. Для этого и подходит LDAP. – EJP

+0

Речь идет не о ролях. – miklesw

+0

Утверждающие и члены обеих ролей. – EJP

ответ

1

Возможно, это зависит от вашего прецедента.

  • Вы хотите знать обо всех пользователях (даже тех, кто еще не вошел в систему)?
  • Нужно ли хранить для них пользовательские атрибуты?
  • Нужно ли создавать реляционные запросы на основе пользовательских атрибутов?

Всего несколько сравнений:

  • Linux PAM использует опцию 3 (NSS).
  • Liferay или Redmine оба используют модифицированный вариант 1.

В самом деле, большинство приложений, которые я видел, которые используют модифицированный вариант 1. Это происходит потому, что LDAP, как правило, только один из поддерживаемых аутентификации опций и во многих случаях вы хотите хранить дополнительные данные для каждого пользователя и работать с записью, как с любым другим объектом (говоря о связях, членствах ...). Важное отличие от Вашего описания:

  • Обновить запись пользователя каждый раз, когда пользователь входит в

Обрати внимание, что существует четвертая возможность - не интегрирует с LDAP напрямую, и пусть IdM system пользователей положения. к вашему приложению. Однако для этого требуется, чтобы рабочий IdM присутствовал в вашей целевой среде.

+0

спасибо за информацию, я думаю, что я поеду на вариант 1 с обновлением при входе в систему и используя общую базу данных пользователей для всех систем, которые будут использовать это механизм. Планируется сохранение пользовательских атрибутов, но важны запросы к пользовательским атрибутам. Будут случаи, когда мне нужны детали пользователей, которые еще не вошли в систему, но я могу легко справиться с этим. – miklesw