我在 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 的身份验证 with location /my-app
,并且我想将对该应用程序的访问限制为特定的一组人。我在 LDAP 中创建了一个名为my-app-users
. 我加入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>
我已经做了很多网络搜索来解决这个问题,但我最终还是让两个用户都进入了。
提前致谢!