Назад | Перейти на главную страницу

Как мне исправить мой ldap olcAccess, чтобы пользователи могли к нему подключаться?

Задний план

У меня есть супер простой сервер openldap, в котором практически ничего нет, кроме администратора, пары OU и пользователя.

Я могу войти и авторизоваться против него с правами администратора cn=admin,dc=example,dc=com однако любые добавленные мной пользователи не могут подключиться к нему для аутентификации.

Вот представление каталога в виде дерева, чтобы было понятно:

Первоначально я пытался авторизоваться против него для использования с OpenVPN, журналы, которые я там получил, были Incorrect password supplied for LDAP DN "uid=myuser,ou=users,dc=example,dc=com"

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

Этот сервер использует cn=config конфигурация, без использования файла конфигурации!

Вот (что я считаю актуальным) вырезано из slapcat -b cn=config вывод:

Как видите, я вслепую добавил olcAccess записи, чтобы попытаться решить.

dn: olcDatabase={1}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=example,dc=com
olcAccess: {0} to * by * auth
olcAccess: {1} to * by anonymous auth
olcAccess: {2}to * by self auth
olcAccess: {3}to * by * read
olcAccess: {4}to attrs=userPassword,shadowLastChange by self write by anonymous auth by * none
olcAccess: {5}to dn.base="" by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW:: <<hidden>>
olcDbCheckpoint: 512 30
olcDbIndex: objectClass eq
olcDbIndex: cn,uid eq
olcDbIndex: uidNumber,gidNumber eq
olcDbIndex: member,memberUid eq
olcDbMaxSize: 1073741824
structuralObjectClass: olcMdbConfig
entryUUID: 03eab422-8c94-1038-90ce-9fb3bcaac9c4
creatorsName: cn=admin,cn=config
createTimestamp: 20181205044311Z
entryCSN: 20181206111241.430739Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20181206111241Z

у меня есть olcAccess: {0} to * by * auth как ВЕРХНЯЯ запись {0} - Afaik, который должен разрешить авторизацию для всех / чего угодно, правильно ??

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

А вот и тест на действие "привязки":

У пользователя все работает отлично cn=admin,dc=example,dc=com.

Я пытаюсь просто добавить нескольких простых пользователей, например: uid=myuser,ou=users,dc=example,dc=com и позволить им аутентифицироваться в каталоге. Мне действительно не нужно ничего особенного, например, роли / и т. Д., Все пользователи будут на одном уровне и разделены на группы, через которые внешние службы будут фильтровать их для аутентификации.

Эти пользователи, которых я добавляю, являются объектным классом posixAccount.

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

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

Так что ACL была отвлекающим маневром.

Очевидно, LDAP заботится о том, как хешировать пароль пользователя, учетная запись администратора имеет SSHA. Новые пользователи, которых я создавал, я использовал хеш SHA512 для пароля. Как только я сбросил пароли пользователей с помощью хеширования SSHA, привязка заработала. Тьфу.

Я немного почитаю, но если кто-нибудь знает, как я могу преобразовать своих пользователей в использование хеширования SHA512 или SSHA-512, я был бы признателен. А пока оставлю как есть.

Кроме того, для всех, кто сталкивается с чем-то похожим в отношении ACL. Теперь он работает, просто применив olcAccess: {0}to * by * read как единственный olcAccess правило и вроде бы нормально.