Я видел это Несколько OU вопрос, а также Нет сообщение, но без хорошего объяснения это не решает проблему.
Я хочу иметь возможность разрешать пользователям аутентифицироваться с использованием стандартных паролей в локальной сети (OpenLDAP пользовательский пароль {SHA1} ... атрибут), но также позволяют некоторым аутентифицироваться с помощью OpenVPN через SASL Passthrough, где атрибут userPassword устанавливается с использованием {SASL}user@realm
. Сервер OpenVPN настроен с базой LDAP OU=vpnpeople,dc=corp,dc=com
поэтому люди не могут пройти аутентификацию с использованием пароля локальной сети.
Я придумал несколько проблемный метод копирования пользователя в OU=people,dc=corp,com
к OU=vpnpeople,dc=corp,com
и установив для атрибута userPassword значение {SASL}user@realm
.
Я был очень доволен этим решением, пока не понял, что каждое приложение в локальной сети, использующее базу поиска LDAP dc=corp,dc=com
теперь нужно либо исключить OU=vpnpeople..
или явно перечислить разрешенные OU, из которых пользователь может аутентифицироваться ... тьфу ...
Итак, вернемся к чертежной доске. Какой хороший способ использовать несколько методов аутентификации для одного и того же человека в OpenLDAP?
ОБНОВИТЬ re: ACL
где 10.1.1.2 будет vpn-сервером ...
access to dn.subtree="OU=vpnpeople,dc=example,dc=com"
by peername.ip=10.1.1.2 anonymous read
by * none
Поместите запись ACL в поддерево ou = vpnpeople, dc = corp, dc = com, которая разрешает доступ только администратору и учетной записи службы, которую использует сервер vpn для доступа к нему.