Я пытаюсь получить веб-приложение, работающее в Tomcat 6, для авторизации пользователя, аутентифицированного Apache.
Я настроил Apache 2.4 для использования Active Directory для аутентификации пользователей (с использованием модуля от Centrify) и запросов ProxyPass / ProxyPassReverse к Tomcat.
Теперь я пытаюсь понять, как использовать эти учетные данные в приложении. Взяв в качестве примера приложение Tomcat 6 manager, как мне изменить его, чтобы распознать аутентифицированного пользователя и проверить подходящую роль?
Я предполагаю, что мне нужно изменить область в server.xml, возможно, на JNDIRealm или JAASRealm, однако в документации говорится о том, что область является «базой данных» или именами пользователей и паролями ». Это правильный путь?
Я также предполагаю, что мне нужно изменить логин-конфигурацию в web.xml, хотя я еще не знаю, какие значения использовать.
Если бы кто-то мог направить меня в правильном направлении или предложить другие возможности для изучения, я был бы признателен.
Кстати, я также пытаюсь аутентифицировать пользователя непосредственно в Tomcat, но меня попросили посмотреть на прокси-маршрут Apache для предпочтения.
Невозможно смешивать авторизацию на основе ролей Tomcat с аутентификацией, выполняемой в Apache.
Либо вы делаете все в tomcat (аутентификация и авторизация), либо, что гораздо более разумно, авторизуете этап в своем веб-приложении с учетом информации об учетной записи, которую вы найдете в переменных сервера (отправленных из apache в tomcat).
В последнем сценарии вы пропускаете всю часть безопасности tomcat и сосредотачиваетесь на:
setenv
директивы для сбора, например, членства в группах);Я предполагаю, что вы используете разъем AJP.
Достаточно установить tomcatAuthentication="false"
в разделе AJP Connector, а затем пользовательский принципал из apache будет перенаправлен на tomcat6.
В соответствии с документация, пользователь будет без роли, что может вызвать некоторые проблемы в зависимости от приложения.
tomcatAuthentication: если установлено значение true, аутентификация будет выполняться в Tomcat. В противном случае аутентифицированный принципал будет передан с собственного веб-сервера и использован для авторизации в Tomcat. Обратите внимание, что этот участник не будет иметь связанных с ним ролей. Значение по умолчанию верно.