Я могу найти пользователя без проблем:
ldapsearch -h ldap.my.server.name -b "cn=vpnusers,ou=groups,dc=example,dc=com" -x "memberUid=myusername"
Результаты:
# extended LDIF
#
# LDAPv3
# base <cn=vpnusers,ou=groups,dc=example,dc=com> with scope subtree
# filter: memberUid=myusername
# requesting: ALL
#
# vpnusers, groups, example.com
dn: cn=vpnusers,ou=groups,dc=example,dc=com
gidNumber: 10000
description: Group account
cn: vpnusers
objectClass: posixGroup
memberUid: myusername
memberUid: someuser
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Итак, я знаю, что запись есть и доступна для поиска. Однако теперь я пытаюсь выполнить поиск в этой группе с помощью openvpn, используя плагин auth-ldap
Вот мой auth-ldap.conf, который отлично работает (когда RequireGroup
= false
:
<LDAP>
URL ldap://ldap.my.server.name
Timeout 10
TLSEnable yes
FollowReferrals yes
</LDAP>
<Authorization>
BaseDN "ou=users,dc=example,dc=com"
SearchFilter "(uid=%u)"
RequireGroup false
<Group>
BaseDN "ou=groups,dc=example,dc=com"
SearchFilter "cn=vpnusers"
MemberAttribute memberUid
</Group>
</Authorization>
Если я обновлю его так, чтобы он требовал группового поиска, он не сработает:
<LDAP>
URL ldap://ldap.my.server.name
Timeout 10
TLSEnable yes
FollowReferrals yes
</LDAP>
<Authorization>
BaseDN "ou=users,dc=example,dc=com"
SearchFilter "(uid=%u)"
RequireGroup true
<Group>
BaseDN "ou=groups,dc=example,dc=com"
SearchFilter "cn=vpnusers"
MemberAttribute memberUid
</Group>
</Authorization>
Ошибка, которую выдает сервер openvpn:
Dec 6 18:54:37 openvpn01 openvpn: Thu Dec 6 18:54:37 2018 47.153.170.228:1194 PLUGIN_CALL: POST /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so/PLUGIN_AUTH_USER_PASS_VERIFY status=1
Dec 6 18:54:37 openvpn01 openvpn: Thu Dec 6 18:54:37 2018 47.153.170.228:1194 PLUGIN_CALL: plugin function PLUGIN_AUTH_USER_PASS_VERIFY failed with status 1: /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so
Dec 6 18:54:37 openvpn01 openvpn: Thu Dec 6 18:54:37 2018 47.153.170.228:1194 TLS Auth Error: Auth Username/Password verification failed for peer
Работает нормально, если я не используется параметр RequireGroup
, поэтому я предполагаю, что мой MemberAttribute
или SearchFilter
неверен. Есть идеи? Кто-нибудь сталкивался с этой проблемой раньше?
Недавно я столкнулся с той же проблемой при попытке использовать JumpCloud's LDAP. оказание услуг. Для меня сработало заключить фильтр поиска в скобки:
searchFilter "(cn=vpnusers)"