Zeige QuelltextÄltere VersionenLinks hierherNach oben Letzte ÄnderungenPer E-Mail sendenDruckenPermalink × Inhaltsverzeichnis Systemumgebung, Einrichtung der benötigten Software FreeBSD Linux und Windows Java Zertifikat(e) HTTP Server SQL DBMS MySQL Debian 8 PostgreSQL RHEL Servlet Container Tomcat 8 CentOS 7 Debian 8 Tomcat 7 RHEL Kleinkram Debian 8 Shibboleth Identity Provider Debian 8 Dies ist eine alte Version des Dokuments! 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 Hier eine Anleitung für FreeBSD von den Kollegen aus Freiberg. Linux und Windows 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 FAQ der DFN-PKI. HTTP Server HTTP Server SQL DBMS Optional, um die Informationen zu User Consent (ehemals uApprove) und persistentId dauerhaft zu speichern. Siehe Storage. MySQL Debian 8 root@idp:~# apt-get install mysql-server mysql-client libmysql-java Damit der Tomcat die MySQL-Java-Library beim Starten einliest (damit der IdP sie dann verwenden kann) wird diese üblicherweise in /etc/tomcat8/catalina.properties in den „common.loader“ aufgenommen. Dies hat den Nachteil dass diese Datei dann bei jedem Upgrade manuell mit einer neuen catalina.properties verglichen werden muss. Man kann sich die Arbeit ersparen (sofern man dort nicht sowieso Anpassungen machen muss was beim Einsatz des IdPs als einziges Servlet im Tomcat aber nicht nötig sein sollte!) indem man die mysql-Datei in das Runtime-Lib-Verzeichnis von Tomcat verlinkt. Dort wird sie dann automatisch eingelesen: root@idp:~# mkdir -p /var/lib/tomcat8/lib root@idp:~# ln -s /usr/share/java/mysql.jar /var/lib/tomcat8/lib root@idp:~# systemctl restart tomcat8 PostgreSQL Siehe hierzu einstweilen die Anleitung der Schweizer Kolleg(inn)en. Hierzu jedenfalls die entsprechende Java JDBC Komponente installieren (Debian/Ubuntu): root@idp:~# apt-get install libpostgresql-jdbc-java RHEL yum install postgresql-server postgresql 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: root@idp:~# apt-get install -t jessie-backports tomcat8 tomcat8-admin \ tomcat8-docs libservlet3.1-java 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: root@idp:~# usermod -aG ssl-cert tomcat8 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 Tomcat-Dokumentation und die diesbezüglichen Empfehlungen im Shibboleth Wiki. /etc/default/tomcat8 JAVA_OPTS="-Djava.awt.headless=true -Xms1024m -Xmx2048m -XX:+UseConcMarkSweepGC -Djava.security.egd=file:/dev/urandom -Djdk.tls.trustNameService=true" 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 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. /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 In server.xml aus Sicherheitsgründen den Default-Port 8080 abschalten auf Port 2009 den AJP-Connector aktivieren über den der Webserver Anfragen weiterleitet /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> Außerdem („Sessions, wollt Ihr ewig leben?“): /etc/tomcat8/context.xml <Context> <!-- ... --> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <Manager pathname="" /> <!-- ...--> </Context> Um das IdP-Servlet in Tomcat zu aktivieren, erstellen Sie folgende Datei im Tomcat-localhost-Context: /etc/tomcat8/Catalina/localhost/idp.xml <Context docBase="/opt/shibboleth-idp/war/idp.war" privileged="true" unpackWAR="true" antiResourceLocking="false" swallowOutput="true" /> 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): 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 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 wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm RHEL/CentOS 6 64-Bit wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm EPEL verifizieren yum repolist EPEL aktivieren yum-config-manager --enable epel yum install tomcat Kleinkram Debian 8 Um die Signatur der Föderationsmetadaten validieren zu können müssen Sie das entsprechende Zertfikat von 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 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 Falls noch nicht geschehen, OpenSSL installieren (um später Zertifkat auf dem System verwalten zu können): root@idp:~# apt-get install openssl Wer keine Lust hat, später bei jedem install JAVA_HOME neu zu setzen, kann dies auch im jeweiligen home Verzeichnis in .bashrc definieren: /home/userxy/.bashrc # ... export JAVA_HOME=/usr (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/ 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 Falls geplant ist, mehrere IdPs parallel zu betreiben, empfiehlt es sich, pro Instanz ein eigenes Installations-Quell-Verzeichnis anzulegen: root@idp:~# cp -ar shibboleth-identity-provider-3.x.x shibboleth-identity-provider-3.x.x-idp.uni-beispiel.de Vor Installation und Konfiguration lohnt sich ein Blick auf die Release Notes Weiter geht es mit der Installation. idp3 Zuletzt geändert: vor 4 Jahren Anmelden