Настройте Tomcat 8 с областью LDAP - PullRequest
0 голосов
/ 13 сентября 2018

У меня проблема с настройкой сервера LDAP на Tomcat 8. У меня есть сервер LDAP, настроенный и работающий на сервере WAS 8.5, и я хотел бы настроить тот же LDAP на Tomcat. Конфигурация WAS (перевод с итальянского):

  • Пользовательский фильтр: (& (cn =% v) (objectclass = inetOrgPerson))
  • Фильтр группы: (& (cn =% v) (| (objectclass = groupOfNames) (objectclass = groupOfUniqueNames)))
  • Карта идентификаторов пользователя: *: cn
  • Карта ID группы: *: cn
  • Карта ID участника группы: ibm-allGroups: member; ibm-allGroups: uniqueMember; groupOfNames: member; groupOfUniqueNames: uniqueMember

Тег Realm в server.xml на tomcat:

<Realm className="org.apache.catalina.realm.JNDIRealm" debug="10"
                            connectionURL="ldap://192.168.0.3:389"
                            userBase="o=organization,c=it"
                            userSearch="(cn={0})"
                            userSubtree="true"
                            connectionName="cn=test,cn=Directory Administrators,o=organization,c=it"
                            connectionPassword="testpass"                          
            />

Как мне заполнить тег Realm атрибутами роли? И в web.xml какую роль я должен указать? Я просто хочу предоставить доступ всем аутентифицированным пользователям.

1 Ответ

0 голосов
/ 18 сентября 2018

Я думаю, вы уже успешно проходите аутентификацию пользователей с указанными выше настройками.

Роли

Для ролей / групп вы можете перевести настройки WAS следующим образом:

<...your config...
 roleBase="o=organization,c=it"
 roleSubtree="true"
 roleSearch="(&(uniqueMember={0})(|(objectclass=groupOfNames)(objectclass=groupOfUniqueNames)))" 
 roleName="cn"/>

Роли, назначенные пользователю в Tomcat, будут представлять собой список имен групп из каталога. Поскольку это может варьироваться, вам нужно заранее настроить несколько групп, которые перечислены в вашем web.xml. Назначение этих групп пользователям даст им соответствующий доступ.

Прошедшие проверку пользователи

Если вы просто хотите разрешить любому аутентифицированному пользователю, вы можете установить атрибут allRolesMode в authOnly следующим образом:

<...your config...
 allRolesMode="authOnly"/>

Ваш web.xml должен затем использовать * для спецификации роли следующим образом:

<auth-constraint>
    <role-name>*</role-name>
</auth-constraint>

Возможно, вам также следует установить элемент security-role, как указано здесь: Ограничение безопасности Tomcat для действительного пользователя

Лично у меня нет настроек, использующих authOnly, но я знаю, что это можно сделать, и видел это в действии.

...