Sim, é possível. Eu configurei um único Shib Proxy alguns anos atrás. Aqui está toda a documentação que eu escrevi naquela época (é uma configuração no Solaris, alguma coisa pode ser diferente no Linux). Você precisará de um servidor que contenha o aplicativo que deseja proteger e um servidor proxy com o material do Shibboleth e algumas regras de proxy nele.
- Install Zone (ou Linux Server) (será usado como proxy Shibboleth)
- Compile o Shib Daemon (ou apenas instale-o no linux)
- Registrar o host no registro AAI do IDP Shib
- Verifique a configuração do daemon:
shibd -t -c /opt/AAI/etc/shibboleth/shibboleth2.xml
- Depois de instalar o daemon, temos que configurá-lo para uso de "proxy". Mas primeiro, queremos testar nossa configuração inicial. Abra o arquivo shibboleth2.xml e procure por URLs ruins no arquivo. Tudo deve apontar para o seu site. Pesquise
Handler type="Status"
e remova as ACL's no final. Seu manipulador deve se parecer com: %código% - Agora você pode apontar seu navegador para a página Status, link . Se você vir a saída XML, tudo está bem. Se não, verifique sua configuração do shibboleth.
- Agora vá para o Apache Webserver: Teste um único arquivo php ou html para garantir que o apache funcione conforme o esperado. Configure o aplicativo que você deseja proteger com o proxy (Isso estará em um servidor diferente). Não se esqueça de editar o firewall e permitir o acesso do proxy (AAI) ao servidor da Web.
- Agora adicionamos um novo serviço (isso é feito no proxy AAI):
- Crie um novo CNAME que aponte para o servidor proxy shibboleth (aai)
- Faça login no servidor proxy aai via ssh
- Editar shibboleth2.xml: adicione uma nova substituição de aplicativo. Copie este stub
<Handler type="Status" Location="/Status" />
- Substituir APP NAME e DOMAIN
- Edite /opt/csw/apache2/etc/extra/httpd-vhosts.conf (será diferente no linux)
- Adicione um novo vhost.
-
Copie este stub
NameVirtualHost IPADDR:80 <VirtualHost IPADDR:80> ServerName DOMAIN ServerAdmin [email protected] Redirect / https://DOMAIN/ ErrorLog var/log/aai.error.log CustomLog var/log/aai.access.log common </VirtualHost> <VirtualHost IPADDR:443> ServerName DOMAIN ServerAdmin [email protected] # The Shibboleth handler shall process all HTTPS requests... <Location /> Order deny,allow Allow from all AuthType shibboleth ShibRequestSetting applicationId APPNAME ShibUseHeaders On Require shibboleth </Location> # ...but only enforce a Session for the location below. <Location /secure> AuthType shibboleth ShibRequireSession On ShibRequestSetting applicationId APPNAME ShibUseHeaders On Require valid-user </Location> SSLEngine On SSLCertificateFile etc/server.crt SSLCertificateKeyFile etc/server.key SSLCertificateChainFile etc/server-ca.crt SSLProxyEngine on ProxyRequests off ProxyPass /secure https://WEBSERVERURL ProxyPassReverse /secure https://WEBSERVERURL ProxyPreserveHost On ErrorLog var/log/APPNAME.error.log CustomLog var/log/APPNAME.access.log common </VirtualHost>
-
Substitua APP NAME, WEBSERVER URL, IP ADDR e DOMAIN. Você também precisará alterar os caminhos da sua configuração.
-
Reinicie o apache e o shibd
-
Aproveite