0

我在 Ubuntu 14 上运行 Apache 2.4.7。我安装了 slapd 并创建了两个人,uid=wilma,ou=People,dc=mysite,dc=com然后uid=betty,ou=People,dc=mysite,dc=com. 它们都有对象类inetOrgPersonposixAccountshadowAccount。(我最终希望使用 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>

我已经做了很多网络搜索来解决这个问题,但我最终还是让两个用户都进入了。

提前致谢!

4

1 回答 1

1

问题是 2 个 require 指令。如果您的用户在组检查之前是“有效用户”,他们将进入。删除第一个。

于 2018-02-05T19:44:12.803 回答