|
Apache läuft standardmässig auf dem Port 8443 und ist zwischen dem Proxy Server (nginx) und Shibboleth Service Provider geschaltet. Entscheid für diesen Architektur ausbau ist näher auf der Shibboleth Seite beschrieben |
|
Apache läuft nur auf dem Port 8443 und ist zwischen dem Proxy Server (nginx) und Shibboleth Service Provider geschaltet. SSL ist aktiviert. Entscheid für diesen Architekturausbau ist näher auf der [Shibboleth Seite](shibboleth-on-web0) beschrieben.
|
|
\ No newline at end of file |
|
|
|
|
|
Benötigte Module sind mod_ssl und mod_shib (mod_shib ist im shibboleth rpm package enthalten)
|
|
|
|
|
|
|
|
Die Attribute werden über die Environment Variablen zum Prozess hinzugefügt. Laut [shibboleth.net - attributes]
|
|
|
|
(https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPAttributeAccess) ist das der empfohlene Weg.
|
|
|
|
Das einzige Attributt, dass im UserClient sichtbar ist, ist der username (uniqueID). Die Restlichen Attributte werden zur Django App über den RequestHeader weitergereicht (Für Clients unsichtbar)
|
|
|
|
Die komplette Konfiguration ist in zwei Files enthalten. **ssl.conf** und **shib.conf**
|
|
|
|
|
|
|
|
`ssl.conf`
|
|
|
|
|
|
|
|
```
|
|
|
|
Listen 8443 https
|
|
|
|
|
|
|
|
|
|
|
|
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
|
|
|
|
|
|
|
|
SSLSessionCache shmcb:/run/httpd/sslcache(512000)
|
|
|
|
SSLSessionCacheTimeout 300
|
|
|
|
SSLRandomSeed startup file:/dev/urandom 256
|
|
|
|
SSLRandomSeed connect builtin
|
|
|
|
SSLCryptoDevice builtin
|
|
|
|
|
|
|
|
<VirtualHost _default_:8443>
|
|
|
|
|
|
|
|
ServerName web0.fhnw.ch
|
|
|
|
|
|
|
|
ErrorLog logs/ssl_error_log
|
|
|
|
TransferLog logs/ssl_access_log
|
|
|
|
LogLevel warn
|
|
|
|
|
|
|
|
SSLEngine on
|
|
|
|
|
|
|
|
SSLProtocol all -SSLv2 -SSLv3
|
|
|
|
|
|
|
|
SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA
|
|
|
|
|
|
|
|
SSLCertificateFile /etc/letsencrypt/live/web0.fhnw.ch/fullchain.pem
|
|
|
|
|
|
|
|
SSLCertificateKeyFile /etc/letsencrypt/live/web0.fhnw.ch/privkey.pem
|
|
|
|
|
|
|
|
Header always set Strict-Transport-Security "max-age=31536000;"
|
|
|
|
|
|
|
|
|
|
|
|
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
|
|
|
|
SSLOptions +StdEnvVars
|
|
|
|
</Files>
|
|
|
|
<Directory "/var/www/cgi-bin">
|
|
|
|
SSLOptions +StdEnvVars
|
|
|
|
</Directory>
|
|
|
|
|
|
|
|
|
|
|
|
BrowserMatch "MSIE [2-5]" \
|
|
|
|
nokeepalive ssl-unclean-shutdown \
|
|
|
|
downgrade-1.0 force-response-1.0
|
|
|
|
|
|
|
|
CustomLog logs/ssl_request_log \
|
|
|
|
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
|
|
|
|
|
|
|
|
</VirtualHost>
|
|
|
|
|
|
|
|
```
|
|
|
|
`shib.conf`
|
|
|
|
|
|
|
|
```
|
|
|
|
LoadModule mod_shib /usr/lib64/shibboleth/mod_shib_24.so
|
|
|
|
|
|
|
|
ShibCompatValidUser Off
|
|
|
|
|
|
|
|
<Location /Shibboleth.sso>
|
|
|
|
AuthType None
|
|
|
|
Require all granted
|
|
|
|
</Location>
|
|
|
|
|
|
|
|
<IfModule mod_alias.c>
|
|
|
|
<Location /shibboleth-sp>
|
|
|
|
AuthType None
|
|
|
|
Require all granted
|
|
|
|
</Location>
|
|
|
|
Alias /shibboleth-sp/main.css /usr/share/shibboleth/main.css
|
|
|
|
</IfModule>
|
|
|
|
|
|
|
|
|
|
|
|
<Location /secure>
|
|
|
|
AuthType shibboleth
|
|
|
|
ShibRequestSetting requireSession 1
|
|
|
|
require shib-session
|
|
|
|
</Location>
|
|
|
|
|
|
|
|
|
|
|
|
<Location />
|
|
|
|
ProxyPass http://localhost:8000/
|
|
|
|
ProxyPassReverse /
|
|
|
|
# Shibboleth
|
|
|
|
AuthType shibboleth
|
|
|
|
ShibRequestSetting requireSession 1
|
|
|
|
require shib-session
|
|
|
|
# Setting Response Header for Angular
|
|
|
|
PassEnv uniqueID
|
|
|
|
Header set X-Shib-uniqeID "%{uniqueID}e"
|
|
|
|
|
|
|
|
# Setting Request Header for the Django APP"
|
|
|
|
RequestHeader set X-Shib-Session-ID "%{Shib-Session-ID}e"
|
|
|
|
RequestHeader set X-Shib-uniqeID "%{uniqueID}e"
|
|
|
|
RequestHeader set X-Shib-mail "%{mail}e"
|
|
|
|
RequestHeader set X-Shib-givenName "%{givenName}e"
|
|
|
|
RequestHeader set X-Shib-surname "%{surname}e"
|
|
|
|
RequestHeader set X-Shib-telephoneNumber "%{telephoneNumber}e"
|
|
|
|
RequestHeader set X-Shib-entitlement "%{entitlement}e"
|
|
|
|
</Location>
|
|
|
|
|
|
|
|
|
|
|
|
``` |