ldap-overlay с фиксированными атрибутами по умолчанию

у меня огромная база пользователей (>> 1000), которые должны иметь возможность коллективно использовать некоторую службу совместного использования.

база пользователей медленно, но постоянно меняется.

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

поэтому мы реализовали сервер входа в систему (ssh в Debian), где люди аутентифицируются через PAM и OpenLDAP.

теперь LDAP-сервер мало что дает информация, только имя пользователя и возможность аутентификации. особенно, в нем отсутствует объектный класс : posixAccount и сопутствующие атрибуты

  • uidNumber
  • gidNumber
  • loginShell
  • homeDirectory

мой доступ к LDAP-серверу очень ограничен (особенно, i не может запрашивать добавление тех или иных атрибутов), в основном это позволяет мне только аутентифицировать пользователей.

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

поэтому я закончил реализацию сервера proxy-ldap, который использует полупрозрачный оверлей для добавления недостающих атрибутов. данные наложения генерируются с помощью сценария, который создает урезанный LDIF-файл из исходных данных LDAP, который затем используется для заполнения полупрозрачной базы данных.

это работает нормально, но мне это не нравится из-за удобства обслуживания POV: поскольку база пользователей меняется, мне нужно регулярно обновлять базу данных вручную (она меняется достаточно редко - каждые несколько месяцев - так что работы не так много, но ее также легко забыть)

, потому что оверлейные данные являются так тривиально (одни и те же атрибуты / значения для всех объектов), я думаю, что должен быть лучший способ. в идеале я хотел бы иметь наложение, которое добавляло бы эти атрибуты к всем объектам (соответствующие заданному поисковому запросу).

чтобы немного усложнить ситуацию, мы также аутентифицируем другую пользовательскую базу по другому LDAP -сервер, который предоставляет posixAccount -данные; пользователи этой группы, конечно, не должны подвергаться воздействию всей магии оверлея, необходимой для другой группы; что, я думаю, исключает любую магию, совершаемую на стороне PAM.

0
задан 20 January 2016 в 11:24
1 ответ

Исходное предложение:

Я бы предложил используя nss-pam-ldapd и используйте отображение nslcd для предоставления значений по умолчанию для учетных записей пользователей, когда значение не поступает из ldap.

Согласно документации для nslcd.conf, uid / gid также может быть получен:

Атрибуты uidNumber и gidNumber в картах passwd и group могут быть сопоставлены с objectSid, за которым следует SID домена, чтобы получить числовые идентификаторы пользователя и группы из SID (например, objectSid: S-1-5-21-3623811015-3361044348 -30300820).

Вариант № 2a:

Итак, исходя из того, что вы упомянули, похоже, что вам нужно сохранить зеркало каталога.

Не могли бы вы просто обновить имеющийся у вас сценарий, чтобы он работает неразрушающим образом (то есть добавляет только учетные записи / атрибуты, которые не находит локально) и запускается ли он один раз в день через cron?

Вариант № 2b

Вариантом этого может быть установка встроенного 1 -way репликация LDAP (из вышестоящего каталога в ваш локальный каталог), а затем использовать либо оверлей, либо скрипт (который, в свою очередь, выполняет локальную ldapmodify) запускается событиями в журнале, чтобы предоставить недостающие атрибуты?

1
ответ дан 4 December 2019 в 16:43

Теги

Похожие вопросы