Почему включение cleartrust отменяет мои настройки shibboleth в Apache? - PullRequest
0 голосов
/ 12 ноября 2018

Я хочу защитить один из моих виртуальных хостов с помощью shibboleth, а другие - с помощью cleartrust, но как только я включу cleartrust, я смогу получить доступ к защищенным shibboleth виртуальным хостам без авторизации.

Это мой виртуальный хост shibboleth:

localhost.virtual-имен host.conf

<VirtualHost *:443>
    ServerName localhost
    SSLEngine on
    SSLProtocol all
    SSLCertificateFile conf/localhost.crt
    SSLCertificateKeyFile conf/localhost.key
    SSLCertificateChainFile "conf/localhost.crt"
    ErrorLog "logs/localhost-error_log"
    CustomLog "logs/localhost-access_log" common
    ProxyPreserveHost On

    ProxyPass "/Shibboleth.sso" !
    <Location />
        AuthType shibboleth
        Require shibboleth
        ShibRequestSetting applicationId localhost-saml
    </Location>
    <Location /group>
        ShibUseHeaders On
        AuthType shibboleth
        ShibRequestSetting requireSession 1
        ShibRequestSetting applicationId localhost-saml
        Require valid-user
    </Location>
    <Location /Shibboleth.sso>
        Satisfy Any
        Allow from all
    </Location>
</VirtualHost>

Мой отзыв httpd.conf

CT-httpd.conf

#
# This is a RSA Access Manager Agent 5.0 configuration file
#

# Load and add the ClearTrust authorization module.
# For Apache 1.3, it should be the last one added (the first one
# to be invoked by Apache)
#
LoadModule ct_auth_module /opt/rsa-axm/agent-50-apache/lib/libct_apache24_agent.so

<IfModule ct_apache_mod.c>

  # Where the agent configuration is located:
  CTAgentRoot /opt/rsa-axm/agent-50-apache/webservers/Apache_2.2.15

  # Where the ClearTrust forms are located.  This directory must
  # always be configured for authentication, so the ClearTrust module
  # can intercept and handle the requests.
  #
  Alias /cleartrust/ "/opt/rsa-axm/agent-50-apache/htdocs/"
  <Directory "/opt/rsa-axm/agent-50-apache/htdocs/">
    AuthType Basic
    Require valid-user
    AuthName CT
    Order allow,deny
    Allow from all
  </Directory>

  # Any part of a web site to be protected by ClearTrust must be
  # configured for authentication.  See the Apache documentation
  # for details.
  #
  # This example will make ClearTrust protect the entire web site,
  # unless there are previous Location overriding directives.
  #
  <Location />
    AuthType Basic
    Require valid-user
    AuthName CT
  </Location>

</IfModule>

Мой cleartrust webagent.conf, по умолчанию я отключаю cleartrust, потому что я хочу, чтобы вместо этого по умолчанию использовался shibboleth.

webagent.conf

<VirtualHost address=* name=* port=*>
    cleartrust.agent.enabled=False
</VirtualHost>

Проблема в том, что когда содержимое файла ct-httpd.conf загружается в Apache, что позволяет использовать cleartrust, тогда я могу получить доступ к / группировать в localhost без авторизации через shibboleth, что мне не нужно.

Кто-нибудь еще имел подобную проблему и знает, как это исправить? Заранее спасибо! :)

1 Ответ

0 голосов
/ 20 ноября 2018

После прочтения документации Access Manager я обнаружил, что если агент cleartrust отключен, он также игнорирует все другие потенциальные модули аутентификации, загруженные в Apache по умолчанию.Чтобы Access Manager мог передавать аутентификацию другим модулям, вы должны указать список областей аутентификации, для которых агент Access Manager разрешает оценку запросов другими модулями.

Я достиг этого, добавив это в мой файл webagent.conf: cleartrust.agent.apache.pass_realms = *

Окончательный результат:

webagent.conf

<VirtualHost address=* name=* port=*>
    cleartrust.agent.enabled=False
    cleartrust.agent.apache.pass_realms=*
</VirtualHost>
...