Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibidp3prepare [2016/10/27 07:33] – [SQL DBMS] Raoul Gunnar Boreniusde:shibidp3prepare [2021/05/03 13:20] (aktuell) – veralteten Inhalt gelöscht Silke Meyer
Zeile 1: Zeile 1:
-======Systemumgebung, Einrichtung der benötigten Software====== 
  
-**NB** Bei den Konfigurationsbeispielen bitte nicht die kompletten Dateien mit den Konfigurationsschnipseln ersetzen, i.d.R. handelt es sich nur um Auszüge. Bitte nur die angezeigten Zeilen übernehmen bzw. entsprechend ergänzen! \\ 
- 
-===== FreeBSD ===== 
- {{de:idp3_installation_freebsd_tu_freiberg_teil1.txt|Hier eine Anleitung für FreeBSD von den Kollegen aus Freiberg}}. 
- 
-===== Linux und Windows ===== 
- 
-====Java==== 
- 
-[[de:shibidp3prepare-java|Java]] 
- 
- 
-====Zertifikat(e)==== 
- 
-Für HTTP Server sowie IdP (Signierung, Verschlüsselung) ein Zertifikat erstellen, beim Beantragen bitte das Profil "Shibboleth IdP SP" auswählen, damit das Zertifikat für alle SAML-Funktionen eingesetzt werden kann. 
-Zur Erstellung eines Zertifikatrequests siehe die [[https://www.pki.dfn.de/faqpki/faqpki-allgemein/#c15083|FAQ der DFN-PKI]]. 
- 
-==== HTTP Server ==== 
- 
-[[de:shibidp3prepare-http|HTTP Server]] 
- 
-====SQL DBMS==== 
- 
-[[de:shibidp3prepare-db|DB]] 
- 
-=====Servlet Container===== 
-====Tomcat 8===== 
-===CentOS 7=== 
-Siehe https://panovski.me/install-tomcat-8-on-centos-7/ 
-===Debian 8=== 
-Die Tomcat-Version in Debian 8 leidet unter einem Bug, der in der Backports-Version behoben wurde. Wir empfehlen daher die Installation aus den Backports: 
-<code bash> 
-root@idp:~# apt-get install -t jessie-backports tomcat8 tomcat8-admin \ 
-           tomcat8-docs libservlet3.1-java 
-</code> 
-Der IdP läuft als Teil von Tomcat natürlich auch mit der Unix-ID des Tomcat-Users. Sofern Sie SSL-Credentials (RSA-Private- und Public-Key) - wie unter Debian/Ubuntu üblich - nach /etc/ssl/private bzw. /etc/ssl/certs legen wollen, müssen Sie den Tomcat-User berechtigen, den RSA-Private-Key unter /etc/ssl/private zu lesen: 
-<code bash> 
-root@idp:~# usermod -aG ssl-cert tomcat8 
-</code> 
-Einige globale Java-Parameter müssen beim Tomcat-Start festgelegt werden. Das IdP-Servlet braucht Zugriff auf das Filesystem und benötigt mehr Speicher, als gemäß den Voreinstellungen vorgesehen ist. Weiterhin lohnt es sich, den Tomcat-Start durch einige zusätzliche Maßnahmen zu beschleunigen, siehe hierzu die entsprechende Seite der [[https://wiki.apache.org/tomcat/HowTo/FasterStartUp#Entropy_Source|Tomcat-Dokumentation]] und die [[https://wiki.shibboleth.net/confluence/display/IDP30/ApacheTomcat8#ApacheTomcat8-SlowStartup|diesbezüglichen Empfehlungen im Shibboleth Wiki]]. 
-<file bash /etc/default/tomcat8> 
-JAVA_OPTS="-Djava.awt.headless=true -Xms1024m -Xmx2048m -XX:+UseConcMarkSweepGC -Djava.security.egd=file:/dev/urandom -Djdk.tls.trustNameService=true" 
-</file> 
- 
-Anmerkungen: 
-  * Sofern Ihr IdP nicht unter /opt/shibboleth-idp installiert wird (nicht emphohlen!) können Sie JAVA_OPTS durch "-Didp.home=/pfad/zur/installation" ergänzen. Details und Alternativen siehe [[https://wiki.shibboleth.net/confluence/display/IDP30/ApacheTomcat8#ApacheTomcat8-RequiredConfigurationChanges|Dokumentation im Shibboleth Wiki]]. 
-Die Liste der "jarsToSkip" in catalina.properties zu erweitern bringt nicht allzu viel Performance-Gewinn beim Tomcat8-Start. Wirklich entscheidend für einen schnellen Start ist, dass in idp.xml im Tomcat-localhost-Context (siehe unten) keinesfalls unpackWAR="false" gesetzt ist und bei JAVA_OPTS das Random-Seed-File wie oben gezeigt gesetzt wird. 
-<file properties /etc/tomcat8/catalina.properties> 
-# falls MySQL inklusive libmysql-java installiert wurde (s.o.), die Pfade entsprechend ergänzen, bei Postgres JDBC Treiber analog verfahren: 
-common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/common/classes","${catalina.home}/common/*.jar","/usr/share/java/postgresql.jar","/usr/share/java/mysql.jar" 
-# [...] 
-# Beschleunigung des Tomcat-Starts: 
-tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\ 
-activation-1.1.jar,\ 
-antlr-2.7.7.jar,\ 
-aopalliance-1.0.jar,\ 
-bcprov-jdk15on-1.51.jar,\ 
-c3p0-0.9.2.1.jar,\ 
-commons-codec-1.10.jar,\ 
-commons-collections-3.2.1.jar,\ 
-commons-compiler-2.7.8.jar,\ 
-commons-lang-2.4.jar,\ 
-cryptacular-1.0.jar,\ 
-dom4j-1.6.1.jar,\ 
-guava-18.0.jar,\ 
-hibernate-commons-annotations-4.0.4.Final.jar,\ 
-hibernate-core-4.3.5.Final.jar,\ 
-hibernate-entitymanager-4.3.5.Final.jar,\ 
-hibernate-jpa-2.1-api-1.0.0.Final.jar,\ 
-httpclient-4.3.6.jar,\ 
-httpclient-cache-4.3.6.jar,\ 
-httpcore-4.3.3.jar,\ 
-idp-attribute-api-3.1.1.jar,\ 
-idp-attribute-filter-api-3.1.1.jar,\ 
-idp-attribute-filter-impl-3.1.1.jar,\ 
-idp-attribute-filter-spring-3.1.1.jar,\ 
-idp-attribute-resolver-api-3.1.1.jar,\ 
-idp-attribute-resolver-impl-3.1.1.jar,\ 
-idp-attribute-resolver-spring-3.1.1.jar,\ 
-idp-authn-api-3.1.1.jar,\ 
-idp-authn-impl-3.1.1.jar,\ 
-idp-cas-api-3.1.1.jar,\ 
-idp-cas-impl-3.1.1.jar,\ 
-idp-consent-3.1.1.jar,\ 
-idp-core-3.1.1.jar,\ 
-idp-profile-api-3.1.1.jar,\ 
-idp-profile-impl-3.1.1.jar,\ 
-idp-profile-spring-3.1.1.jar,\ 
-idp-saml-api-3.1.1.jar,\ 
-idp-saml-impl-3.1.1.jar,\ 
-idp-schema-3.1.1.jar,\ 
-idp-session-api-3.1.1.jar,\ 
-idp-session-impl-3.1.1.jar,\ 
-idp-ui-3.1.1.jar,\ 
-jandex-1.1.0.Final.jar,\ 
-janino-2.7.8.jar,\ 
-javassist-3.18.1-GA.jar,\ 
-java-support-7.1.1.jar,\ 
-javax.json-1.0.4.jar,\ 
-javax.json-api-1.0.jar,\ 
-jboss-logging-3.1.3.GA.jar,\ 
-jboss-logging-annotations-1.2.0.Beta1.jar,\ 
-jboss-transaction-api_1.2_spec-1.0.0.Final.jar,\ 
-jcl-over-slf4j-1.7.10.jar,\ 
-jcommander-1.47.jar,\ 
-joda-time-2.7.jar,\ 
-jsr305-3.0.0.jar,\ 
-ldaptive-1.0.6.jar,\ 
-logback-classic-1.1.2.jar,\ 
-logback-core-1.1.2.jar,\ 
-mail-1.4.7.jar,\ 
-mchange-commons-java-0.2.3.4.jar,\ 
-ognl-2.6.11.jar,\ 
-opensaml-core-3.1.1.jar,\ 
-opensaml-messaging-api-3.1.1.jar,\ 
-opensaml-messaging-impl-3.1.1.jar,\ 
-opensaml-profile-api-3.1.1.jar,\ 
-opensaml-profile-impl-3.1.1.jar,\ 
-opensaml-saml-api-3.1.1.jar,\ 
-opensaml-saml-impl-3.1.1.jar,\ 
-opensaml-security-api-3.1.1.jar,\ 
-opensaml-security-impl-3.1.1.jar,\ 
-opensaml-soap-api-3.1.1.jar,\ 
-opensaml-soap-impl-3.1.1.jar,\ 
-opensaml-storage-api-3.1.1.jar,\ 
-opensaml-storage-impl-3.1.1.jar,\ 
-opensaml-xmlsec-api-3.1.1.jar,\ 
-opensaml-xmlsec-impl-3.1.1.jar,\ 
-slf4j-api-1.7.10.jar,\ 
-spring-aop-4.1.5.RELEASE.jar,\ 
-spring-beans-4.1.5.RELEASE.jar,\ 
-spring-binding-2.4.1.RELEASE.jar,\ 
-spring-context-4.1.5.RELEASE.jar,\ 
-spring-context-support-4.1.5.RELEASE.jar,\ 
-spring-core-4.1.5.RELEASE.jar,\ 
-spring-expression-4.1.5.RELEASE.jar,\ 
-spring-extensions-5.1.1.jar,\ 
-spring-jdbc-4.1.5.RELEASE.jar,\ 
-spring-js-2.4.1.RELEASE.jar,\ 
-spring-js-resources-2.4.1.RELEASE.jar,\ 
-spring-orm-4.1.5.RELEASE.jar,\ 
-spring-tx-4.1.5.RELEASE.jar,\ 
-spring-web-4.1.5.RELEASE.jar,\ 
-spring-webflow-2.4.1.RELEASE.jar,\ 
-spring-webmvc-4.1.5.RELEASE.jar,\ 
-spymemcached-2.11.4.jar,\ 
-stax2-api-3.1.4.jar,\ 
-stax-api-1.0-2.jar,\ 
-velocity-1.7.jar,\ 
-woodstox-core-asl-4.4.1.jar,\ 
-xml-apis-1.0.b2.jar,\ 
-xmlsec-2.0.3.jar 
-</file> 
- 
-In server.xml  
- 
-  * aus Sicherheitsgründen den Default-Port 8080 abschalten 
-  * auf Port 2009 den AJP-Connector aktivieren über den der Webserver Anfragen weiterleitet 
- 
-<file xml /etc/tomcat8/server.xml> 
-<Server port="8005" shutdown="SHUTDOWN"> 
-   <!-- ... --> 
-  <Service name="Catalina"> 
-    <!-- ... --> 
-    <!-- non-SSL/TLS HTTP/1.1 Connector on port 8080 abschalten --> 
-    <!-- <Connector port="8080" protocol="HTTP/1.1" 
-               connectionTimeout="20000" 
-               redirectPort="8443" /> --> 
-    <!-- ... --> 
-    <!-- Define an AJP 1.3 Connector on port 8009 --> 
-    <Connector port="8009" 
-               address="127.0.0.1" 
-               protocol="AJP/1.3" 
-               redirectPort="8443" 
-               enableLookups="false" 
-               useIPVHosts="true" 
-               maxPostSize="100000" 
-               URIEncoding="UTF-8" /> 
-    <!-- ... --> 
-  </Service>  
-  <!-- ... --> 
-</Server> 
-</file>  
-Außerdem ("Sessions, wollt Ihr ewig leben?"): 
-<file xml /etc/tomcat8/context.xml> 
-<Context> 
-    <!-- ... --> 
-    <!-- Uncomment this to disable session persistence across Tomcat restarts --> 
-    <Manager pathname="" /> 
-    <!-- ...--> 
-</Context> 
-</file> 
-Um das IdP-Servlet in Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context: 
-<code xml /etc/tomcat8/Catalina/localhost/idp.xml> 
-<Context docBase="/opt/shibboleth-idp/war/idp.war" 
-         privileged="true" 
-         unpackWAR="true" 
-         antiResourceLocking="false" 
-         swallowOutput="true" /> 
-</code> 
- 
-Als letztes muss noch die Java Server Tag Libarary heruntergeladen und in das Tomcat-Verzeichnis $CATALINA_BASE/lib gelegt werden (unter Debian/Unbuntu ist das /var/lib/tomcat8/lib, bei anderen Distributionen bitte entsprechend anpassen): 
- 
-<code bash> 
-root@idp:~# cd /var/lib/tomcat8/lib 
-root@idp:/var/lib/tomcat8/lib# wget https://build.shibboleth.net/nexus/service/local/repositories/thirdparty/content/javax/servlet/jstl/1.2/jstl-1.2.jar 
-root@idp:/var/lib/tomcat8/lib# systemctl restart tomcat8 
-</code> 
- 
- 
- 
-====Tomcat 7===== 
- 
-Wir empfehlen Tomcat8, siehe oben. Falls Sie noch Tomcat7 einsetzen ist das folgende vielleicht hilfreich: 
- 
-Sollte es beim Neustart nach Installation und Konfiguration des IdP folgender Fehlermeldung kommen:\\ 
-> "Resource specification not allowed here for source level below 1.7"\\ 
-... so muss die Tomcat-eigene web.xml angepasst werden. Siehe hierzu http://www.censore.blogspot.in/2015/04/how-to-set-tomcat-7-source-level-to.html \\ 
-Bei Debian/Ubuntu liegt diese Datei unter /etc/tomcat7/web.xml, bei SLES 12 unter /usr/share/tomcat/conf/web.xml 
- 
-===RHEL=== 
-EPEL installieren 
- 
-RHEL/CentOS 6 32-Bit 
-<code bash> 
-wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 
-rpm -ivh epel-release-6-8.noarch.rpm 
-</code> 
-RHEL/CentOS 6 64-Bit 
-<code bash> 
-wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 
-rpm -ivh epel-release-6-8.noarch.rpm 
-</code> 
-EPEL verifizieren 
-<code bash> 
-yum repolist 
-</code> 
-EPEL aktivieren 
-<code bash> 
-yum-config-manager --enable epel  
-</code> 
-<code bash> 
-yum install tomcat 
-</code> 
-=====Kleinkram===== 
-====Debian 8==== 
-Um die Signatur der Föderationsmetadaten validieren zu können müssen Sie das entsprechende Zertfikat von [[https://www.aai.dfn.de/fileadmin/metadata/dfn-aai.pem|DFN-AAI Portal]] herunterladen und z.B. unter /etc/ssl/aai/dfn-aai.pem ablegen. Der (SHA2) Fingerprint ist unter https://www.aai.dfn.de/teilnahme/metadaten/ dokumentiert 
-<code bash> 
-root@idp:~# mkdir /etc/ssl/aai/ 
-root@idp:~# cd /etc/ssl/aai/ 
-root@idp:~# wget https://www.aai.dfn.de/fileadmin/metadata/dfn-aai.pem 
-</code> 
-Falls noch nicht geschehen, OpenSSL installieren (um später Zertifkat auf dem System verwalten zu können): 
-<code bash> 
-root@idp:~# apt-get install openssl 
-</code> 
-Wer keine Lust hat, später bei jedem install JAVA_HOME neu zu setzen, kann dies auch im jeweiligen home Verzeichnis in .bashrc definieren: 
-<file bash /home/userxy/.bashrc> 
-# ... 
-export JAVA_HOME=/usr 
-</file> 
-(oder für alle User in /etc/profile.d/java.sh) 
- 
-=====Shibboleth Identity Provider===== 
-====Debian 8==== 
-Shib IdP herunterladen, Signatur überprüfen und entpacken. Die aktuelle IdP-Version findet sich stets unter http://shibboleth.net/downloads/identity-provider/latest/ 
-<code bash> 
-root@idp:~# mkdir /opt/install 
-root@idp:~# cd /opt/install 
-root@idp:~# wget http://shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-3.x.x.zip 
-root@idp:~# wget http://shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-3.x.x.zip.asc 
-root@idp:~# wget https://shibboleth.net/downloads/PGP_KEYS 
-root@idp:~# gpg --import PGP_KEYS 
-root@idp:~# gpg --verify shibboleth-identity-provider-3.x.x.zip.asc shibboleth-identity-provider-3.x.x.zip 
-root@idp:~# unzip shibboleth-identity-provider-3.x.x.zip 
-</code> 
-Falls geplant ist, mehrere IdPs parallel zu betreiben, empfiehlt es sich, pro Instanz ein eigenes Installations-Quell-Verzeichnis anzulegen: 
-<code bash> 
-root@idp:~# cp -ar shibboleth-identity-provider-3.x.x shibboleth-identity-provider-3.x.x-idp.uni-beispiel.de 
-</code> 
- 
-**Vor Installation und Konfiguration lohnt sich ein Blick auf die [[https://wiki.shibboleth.net/confluence/display/IDP30/ReleaseNotes|Release Notes]]** 
- 
-Weiter geht es mit der [[de:shibidp3install|Installation]].