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 更改为以管理员用户身份绑定。现在可以正常使用了。
我的用户在 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 更改为以管理员用户身份绑定。现在可以正常使用了。