要求一个Apache位置的基于LDAP的基本身份验证和子位置的特定组成员身份

时间:2017-10-04 16:03:03

标签: apache authentication ldap slapd

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

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

提前致谢!

1 个答案:

答案 0 :(得分:1)

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