Требовать базовую аутентификацию на основе 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>

Я сделал кучу веб-поиска, чтобы понять это, но я продолжаю в конечном итоге с обоими пользователями.

Заранее спасибо!


person Don 01001100    schedule 04.10.2017    source источник


Ответы (1)


Проблема в том, что 2 директивы требуют. Ваши пользователи войдут в систему, если они являются «действительными пользователями» перед проверкой группы. Удалите первый.

person Rick Stewart    schedule 05.02.2018
comment
Рик. Извините, что мне потребовалось так много времени, чтобы принять этот ответ. Это было отложено на второй план, и у меня не было возможности добраться до него. Ваше здоровье! - person Don 01001100; 10.05.2018