Требовать основанную на LDAP базовую аутентификацию для одного местоположения Apache и определенное членство в группе для подобласти
У меня Apache 2.4.7 работает на Ubuntu 14. Я установил slapd и создал двух человек, uid=wilma,ou=People,dc=mysite,dc=com
а также uid=betty,ou=People,dc=mysite,dc=com
, У них обоих есть классы объектов inetOrgPerson
, posixAccount
, а также shadowAccount
, (В конечном счете, я хотел бы использовать UID и пароль LDAP для единого входа.) У меня работает аутентификация на основе LDAP, так что только пользователи, прошедшие аутентификацию LDAP, могут получить доступ /
, Эта аутентификация на /
только пока сайт не заработает. Однако у меня есть приложение, для которого я хочу постоянно использовать аутентификацию на основе LDAP с указанием местоположения /my-app
и я хочу ограничить доступ к этому приложению для определенной группы людей. Я создал группу POSIX в LDAP под названием my-app-users
, я добавил uid=wilma,ou=People,dc=mysite,dc=com
в эту группу.
Отказ от ответственности: я не очень опытный с Apache и совершенно новый для LDAP. Я не намерен использовать группу POSIX, если это неправильно. (Я выбрал этот тип объекта, потому что я думаю, что этой группе иногда может понадобиться SSH на сервер. Опять же, новенький!)
Проблема в том, что аутентификация LDAP позволяет и Уилме, и Бетти /my-app
но я просто хочу Вильму из-за ее членства в 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 ответ
Проблема в том, что 2 директивы требуют. Ваши пользователи получат доступ, если они являются "действительными пользователями" до проверки группы. Удалить первый.