0

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

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

我在 FreeIPA 中创建了一个用户组,并将 OpenVPN 更改为具有“memberOf=CN=myGroup,CN=groups,CN=accounts,DC=mgmt,DC=company,DC=uk”的“附加 LDAP 要求”

但是当我现在尝试进行身份验证时,我被拒绝访问,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))'

这将返回用户,甚至列出他们的 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。仍然没有工作。

4

1 回答 1

0

啊找到了。

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

修复是更改 OpenVPNAS 以绑定为管理员用户。现在它工作正常。

于 2019-11-26T12:03:57.307 回答