OpenVPN + FreeIPA:memberOf 附加要求不起作用

OpenVPN + FreeIPA: memberOf Additional Requirement not working

我的用户在 FreeIPA 上使用 LDAP 身份验证,通过 OpenVPN AS 进行了身份验证。

现在我想限制OpenVPN强制他们属于某个组。

我在 FreeIPA 中创建了一个用户组,并将 OpenVPN 更改为 "Additional LDAP Requirement" 为 "memberOf=CN=myGroup,CN=groups,CN=accounts,DC=mgmt,DC=company,DC=uk"

但是当我现在尝试进行身份验证时,访问被拒绝,openvpn 日志中出现以下错误:

2019-11-26T09:38:12+0000 [stdout#info] VPN Auth Failed: u"LDAP exception on ldaps://endpoint.free.ipa.internal/ (facility='search (u'cn=users,cn=accounts,dc=mgmt,dc=company,dc=uk', 2, u'(&(uid=myUser)(memberOf=CN=myGroup,CN=groups,CN=accounts,DC=mgmt,DC=company,DC=uk))')'): **user not found that meets specified requirements**: memberOf=CN=myGroup,CN=groups,CN=accounts,DC=mgmt,DC=company,DC=uk: auth/authldap:178,python2.7/threading:774,python2.7/threading:801,python2.7/threading:754,_threads/_threadworker:46,_threads/_team:190,python/threadpool:250,python/threadpool:266,python/context:122,python/context:85,auth/authldap:138,auth/authldap:178,util/error:67,util/error:48" [None]

如果我从命令行尝试(我认为是)等效的 LDAP 搜索,它工作正常:

ldapsearch -x -D "uid=admin,cn=users,cn=accounts,dc=mgmt,dc=company,dc=uk" -W -H ldap://localhost -b "cn=users,cn=accounts,dc=mgmt,dc=company,dc=uk" '(&(uid=myUser)(memberOf=cn=myGroup,cn=groups,cn=accounts,dc=mgmt,dc=company,dc=uk))'

即returns用户,甚至列出其memberOf属性:

...
memberOf: cn=ipausers,cn=groups,cn=accounts,dc=mgmt,dc=company,dc=uk
memberOf: cn=myGroup,cn=groups,cn=accounts,dc=mgmt,dc=company,dc=uk
...

所以不确定我在 OpenLDAP 中做错了什么。

我了解到 memberOf 只能追溯使用,所以我删除了 myUser 并将其重新添加到 myGroup。还是不行。

啊找到了

OpenVPNNAS 使用匿名绑定连接到 FreeIPA 以对人员进行身份验证。使用匿名绑定,不允许查看组成员!

修复是将 OpenVPNNAS 更改为以管理员用户身份绑定。现在可以正常使用了。