我在Ubuntu 14上运行Apache 2.4.7。我安装了slapd并创建了两个人,uid=wilma,ou=People,dc=mysite,dc=com
和uid=betty,ou=People,dc=mysite,dc=com
。它们都有对象类inetOrgPerson
,posixAccount
和shadowAccount
。 (我最终希望使用LDAP UID和密码进行单一登录。)我使用基于LDAP的身份验证,以便只有LDAP身份验证的用户才能访问/
。 /
上的此身份验证仅在网站上线之前进行。但是,我有一个应用程序,我想永久使用基于LDAP的身份验证与位置/my-app
,我想限制对特定人群的访问。我在LDAP中创建了一个名为my-app-users
的POSIX组。我在该群组中添加了uid=wilma,ou=People,dc=mysite,dc=com
。
免责声明:我对Apache和LDAP全新的经验不足。如果这是错误的,我不会致力于使用POSIX组。 (我确实选择了这种对象类型,因为我认为这个组可能需要偶尔SSH到服务器。再次,全新!)
问题是LDAP身份验证让Wilma和Betty都进入/my-app
,但我只想要Wilma,因为她是my-app-users
的成员身份。
我尝试在不同的地方添加一些变体。
AuthType Basic
AuthBasicProvider ldap
AuthName "Access to My App is Restricted"
AuthLDAPInitialBindAsUser on
AuthLDAPInitialBindPattern (.*) uid=$1,ou=people,dc=mysite,dc=com
AuthLDAPURL ldap://localhost/DC=myside,DC=com?uid
require valid-user
Require ldap-group cn=super-my-app-users,ou=Groups,dc=mysite,dc=com
下面:
# my-app.conf for my app.
<IfModule mod_alias.c>
Alias /my-app /usr/share/my-app/htdocs
</IfModule>
# default.conf
<VirtualHost *:443>
<Location /my-app>
# Here
</Location>
</VirtualHost>
然后在这里(从前一个地方删除后):
<Directory /usr/share/my-app/htdocs/>
# Here
</Directory>
我已经做了很多网络搜索来解决这个问题,但我最终会让两个用户都进入。
提前致谢!
答案 0 :(得分:1)
问题是2个require指令。如果他们是小组检查前的“有效用户”,您的用户将会进入。删除第一个。