From e913773134f617eb7afbe00362e5b580776b8ad8 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Fri, 18 Sep 2020 08:57:35 +0200 Subject: add HTTP-Proxy support for SAML2 Metadata provider --- id/readme_4.1.4-RC1.txt | 508 +++++++++++++++++++++ .../config/persistence/MOAIDConfigurationImpl.java | 6 +- .../apache/commons/httpclient/MOAHttpClient.java | 52 ++- .../utils/EIDAuthMetadataProvider.java | 13 +- 4 files changed, 569 insertions(+), 10 deletions(-) create mode 100644 id/readme_4.1.4-RC1.txt diff --git a/id/readme_4.1.4-RC1.txt b/id/readme_4.1.4-RC1.txt new file mode 100644 index 000000000..f022dc561 --- /dev/null +++ b/id/readme_4.1.4-RC1.txt @@ -0,0 +1,508 @@ +=============================================================================== +MOA ID Version Release 4.1.4-RC1 - Wichtige Informationen zur Installation +=============================================================================== + +------------------------------------------------------------------------------- +A. Neuerungen/Änderungen +------------------------------------------------------------------------------- + +Mit MOA ID Version 4.1.4 unterstützt MOA-ID nun wieder Authentifizierung mittels +Bürgerkarte, Handy-Signatur oder eIDAS als auch den Betrieb als SAML1 Proxy zum +zentralen E-ID System entsprechend dem neuen elektronischen Identitätsnachweis. +Im Detail umfasst das folgende Neuerungen und Änderungen (siehe auch +history.txt im gleichen Verzeichnis). + + - Änderungen + - HTTP Proxy Support zum Laden von SAML2 Metadaten hinzugefügt + +Hinweis: Vor einem Parallelbetrieb von MOA-ID und MOA-SPSS als eigenständige Web-Applikationen in der gleichen + Apache Tomcat Instanz wird seit Java >= 9 abgeraten da es potentiell zu Problem mit dem Java Classloader + im Tomcat Appliactionsserver kommen kann. + +------------------------------------------------------------------------------- +B. Durchführung eines Updates +------------------------------------------------------------------------------- + +Es wird generell eine Neuinstallation lt. Handbuch empfohlen! Dennoch ist auch +eine Aktualisierung bestehender Installationen möglich. Je nachdem von welcher +MOA-ID Version ausgegangen wird ergibt sich eine Kombination der nachfolgend +angebebenen Updateschritte. + +Hinweis: Die bestehende Konfiguration von MOA-ID 3.x.x kann weitestgehend +übernommen werden da mit dem Update auf die Version 4.0.x viele Konfigurationsparameter +nicht mehr erforderlich sind und somit (sofern vorhanden) ignoriert werden. Somit ist +ein Löschen der bestehenden Konfiguration nicht zwingend notwendig. +Für den Betrieb als E-ID Proxy muss in diesem Fall nur die Konfiguration für das das neue +E-ID Proxy Authentifizierungsmodul hinzugefügt wurde. + +Hinweis: Wenn Sie die bestehende Konfiguration von MOA-ID 2.x.x in MOA-ID 4.0.x +reimportieren möchten, so muss diese vor dem Update mit Hilfe der import/export +Funktion der grafischen Konfigurationsoberfläche in eine Datei exportiert werden. +Diese Datei dient dann als Basis für den Import in MOA-ID 4.0.x. + +............................................................................... +B.0 Durchführung eines Updates von Version 4.1.2 auf Version 4.1.4 +............................................................................... +1. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +2. Entpacken Sie die Distribution von MOA-ID-Auth (moa-id-auth-4.1.4.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + +3. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Dateien moa-id-auth.war + als auch das komplette Verzeichnis moa-id-auth. + +4 Umstellung auf Java JDK 9 + Die 'JAVA_HOME\jre\lib\ext' und die 'CATALINA_HOME_ID\endorsed' wird in Java 9 + nicht mehr unterstützt und entsprechende Referenzen müssen aus den Start-Scripts + entfernt werden. Ab MOA-ID 3.3.2 sind die Bibliotheken, welche früher in + den beiden Verzeichnissen hinterlegt waren, direkt in MOA-ID integriert. + Falls sie eine Java Version < 9 verwenden und aktuell Bibliotheken in diesen + Verzeichnissen abgelegt haben müssen diese aktualisiert werden: + + 4.1. Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis + JAVA_HOME\jre\lib\ext und loeschen Sie diese Dateien danach. + + 4.2. Kopieren Sie alle Dateien aus dem Verzeichnis MOA_ID_AUTH_INST\ext in das + Verzeichnis JAVA_HOME\jre\lib\ext (Achtung: Java 1.4.x wird nicht mehr + unterstuetzt). + +5. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + +6. Hinzufügen der zusätzlichen Konfigurationsparameter in der MOA-ID-Auth + Konfigurationsdatei CATALINA_HOME\conf\moa-id\moa-id.properties +6.1 SAML1 Requestparameter Validierung + >configuration.validate.saml1.parameter.strict +6.2 HTTP Proxy Konfiguration via JAVA System-Properties + > -Dhttp.proxyHost= + > -Dhttp.proxyPort= + > -Dhttp.proxyUser= + > -Dhttp.proxyPassword= + +7. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der Konfiguration. + +............................................................................... +B.1 Durchführung eines Updates von Version 4.1.x auf Version 4.1.4 +............................................................................... +1. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +2. Entpacken Sie die Distribution von MOA-ID-Auth (moa-id-auth-4.1.4.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + +3. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Dateien moa-id-auth.war + als auch das komplette Verzeichnis moa-id-auth. + +4 Umstellung auf Java JDK 9 + Die 'JAVA_HOME\jre\lib\ext' und die 'CATALINA_HOME_ID\endorsed' wird in Java 9 + nicht mehr unterstützt und entsprechende Referenzen müssen aus den Start-Scripts + entfernt werden. Ab MOA-ID 3.3.2 sind die Bibliotheken, welche früher in + den beiden Verzeichnissen hinterlegt waren, direkt in MOA-ID integriert. + Falls sie eine Java Version < 9 verwenden und aktuell Bibliotheken in diesen + Verzeichnissen abgelegt haben müssen diese aktualisiert werden: + + 4.1. Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis + JAVA_HOME\jre\lib\ext und loeschen Sie diese Dateien danach. + + 4.2. Kopieren Sie alle Dateien aus dem Verzeichnis MOA_ID_AUTH_INST\ext in das + Verzeichnis JAVA_HOME\jre\lib\ext (Achtung: Java 1.4.x wird nicht mehr + unterstuetzt). + +5. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + +6. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-configuration.war nach + CATALINA_HOME_ID/webapps. + +7. Hinzufügen der zusätzlichen Konfigurationsparameter in der MOA-ID-Auth + Konfigurationsdatei CATALINA_HOME\conf\moa-id\moa-id.properties +7.1 Anbindung an das zentrale E-ID System + > modules.eidproxyauth.endpoint.appreginfo.enable +7.2 SAML1 Requestparameter Validierung + >configuration.validate.saml1.parameter.strict +7.2 HTTP Proxy Konfiguration via JAVA System-Properties + > -Dhttp.proxyHost= + > -Dhttp.proxyPort= + > -Dhttp.proxyUser= + > -Dhttp.proxyPassword= + +8. Geänderte GUI Templates + > MOA_ID_AUTH_INST/conf/moa-id/htmlTemplates/css_template.css + > MOA_ID_AUTH_INST/conf/moa-id/htmlTemplates/javascript_tempalte.js + +9. Neue A-Trust Zertifikate für Handy-Signatur Anmeldung +9.1 Kopieren sie folgende Zertifikate in den jeweiligen TrustStore ihrer MOA-ID Konfiguration + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/a-sign-Premium-Mobile-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Mobile-07.cer + +9.2 Kopieren sie folgende Zertifikate in den CertStore ihrer MOA-ID Konfiguration + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Mobile-07.cer + +10. Zusätzliche Funktionalität für den MOA E-ID Proxy Mode: + Mit der Version 4.1.2 des MOA E-ID Proxy wurde die eindeutigen Applikationsidentifier + von Onlineapplikationen am MOA E-ID Proxy, welche im zentralen Applikationsregister + registriert werden müssen, geändert um die Eindeutigkeit im Applikationsregister gewährleisten + zu können. Somit können die Unique Identifier (PublicUrlPrefix) aus der MOA E-ID Proxy + konfiguration nicht mehr direkt für die Registriergung am E-ID System verwendet werden. + Der MOA E-ID Proxy bietet unter der URL $MOA_EID_PROXY$/eid/getappregid (z.B. + https://demo.egiz.gv.at/moa-id-auth/eid/getappregid?OA=https://labda.iaik.tugraz.at:5553/demologin/test1) + einen Endpunkt an über der eindeute Identifier für die Eintragung ins Applikationsregister abgefragt + werde kann. Als Abfrageparameter dienen die selben Parameter wie sie auch für einen SAML1 + Authentifizierungsrequest verwendet werden (siehe Handbuch + https://apps.egiz.gv.at/handbooks/moa-id/handbook/protocol/protocol.html#saml1_startauth). + Eine Abfrage ist jedoch nur für am MOA E-ID Proxy registrierte Onlineapplikationen möglich. + + +11. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der Konfiguration. + +............................................................................... +B.2 Durchführung eines Updates von Version 4.0.0 auf Version 4.1.4 +............................................................................... +1. Exportieren Sie die aktuelle Konfiguration von MOA-ID mit Hilfe der import/export + Funktion der grafischen Konfigurationsoberfläche in eine Datei. Dieser Export + dient nur als Backup und wird für den Updateprozess nicht zwingend benötigt. + +2. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +3. Entpacken Sie die Distribution von MOA-ID-Auth (moa-id-auth-4.1.4.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + +4. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Dateien moa-id-auth.war + als auch das komplette Verzeichnis moa-id-auth. + +5 Umstellung auf Java JDK 9 + Die 'JAVA_HOME\jre\lib\ext' und die 'CATALINA_HOME_ID\endorsed' wird in Java 9 + nicht mehr unterstützt und entsprechende Referenzen müssen aus den Start-Scripts + entfernt werden. Ab MOA-ID 3.3.2 sind die Bibliotheken, welche früher in + den beiden Verzeichnissen hinterlegt waren, direkt in MOA-ID integriert. + Falls sie eine Java Version < 9 verwenden und aktuell Bibliotheken in diesen + Verzeichnissen abgelegt haben müssen diese aktualisiert werden: + + 5.1. Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis + JAVA_HOME\jre\lib\ext und loeschen Sie diese Dateien danach. + + 5.2. Kopieren Sie alle Dateien aus dem Verzeichnis MOA_ID_AUTH_INST\ext in das + Verzeichnis JAVA_HOME\jre\lib\ext (Achtung: Java 1.6.x wird nicht mehr + unterstuetzt). + +6. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + +7. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-configuration.war nach + CATALINA_HOME_ID/webapps. + +8. Hinzufügen der zusätzlichen Konfigurationsparameter in der MOA-ID-Auth + Konfigurationsdatei CATALINA_HOME\conf\moa-id\moa-id.properties +8.1 Anbindung an das zentrale E-ID System + > modules.eidproxyauth.endpoint.appreginfo.enable +8.2 SAML1 Requestparameter Validierung + >configuration.validate.saml1.parameter.strict +8.2 HTTP Proxy Konfiguration via JAVA System-Properties + > -Dhttp.proxyHost= + > -Dhttp.proxyPort= + > -Dhttp.proxyUser= + > -Dhttp.proxyPassword= + +9. Geänderte GUI Templates + > MOA_ID_AUTH_INST/conf/moa-id/htmlTemplates/css_template.css + > MOA_ID_AUTH_INST/conf/moa-id/htmlTemplates/javascript_tempalte.js + +10. Neue A-Trust Zertifikate für Handy-Signatur Anmeldung +10.1 Kopieren sie folgende Zertifikate in den jeweiligen TrustStore ihrer MOA-ID Konfiguration + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/a-sign-Premium-Mobile-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Mobile-07.cer + +10.2 Kopieren sie folgende Zertifikate in den CertStore ihrer MOA-ID Konfiguration + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Mobile-07.cer + +11. Zusätzliche Funktionalität für den MOA E-ID Proxy Mode: + Mit der Version 4.1.2 des MOA E-ID Proxy wurde die eindeutigen Applikationsidentifier + von Onlineapplikationen am MOA E-ID Proxy, welche im zentralen Applikationsregister + registriert werden müssen, geändert um die Eindeutigkeit im Applikationsregister gewährleisten + zu können. Somit können die Unique Identifier (PublicUrlPrefix) aus der MOA E-ID Proxy + konfiguration nicht mehr direkt für die Registriergung am E-ID System verwendet werden. + Der MOA E-ID Proxy bietet unter der URL $MOA_EID_PROXY$/eid/getappregid (z.B. + https://demo.egiz.gv.at/moa-id-auth/eid/getappregid?OA=https://labda.iaik.tugraz.at:5553/demologin/test1) + einen Endpunkt an über der eindeute Identifier für die Eintragung ins Applikationsregister abgefragt + werde kann. Als Abfrageparameter dienen die selben Parameter wie sie auch für einen SAML1 + Authentifizierungsrequest verwendet werden (siehe Handbuch + https://apps.egiz.gv.at/handbooks/moa-id/handbook/protocol/protocol.html#saml1_startauth). + Eine Abfrage ist jedoch nur für am MOA E-ID Proxy registrierte Onlineapplikationen möglich. + +12. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der Konfiguration. + + +............................................................................... +B.3 Durchführung eines Updates von Version 3.4.x auf Version 4.1.4 +............................................................................... +1. Exportieren Sie die aktuelle Konfiguration von MOA-ID mit Hilfe der import/export + Funktion der grafischen Konfigurationsoberfläche in eine Datei. Dieser Export + dient nur als Backup und wird für den Updateprozess nicht zwingend benötigt. + +2. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +3. Entpacken Sie die Distribution von MOA-ID-Auth (moa-id-auth-4.1.4.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + +4. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Dateien moa-id-auth.war + als auch das komplette Verzeichnis moa-id-auth. + +5 Umstellung auf Java JDK 9 + Die 'JAVA_HOME\jre\lib\ext' und die 'CATALINA_HOME_ID\endorsed' wird in Java 9 + nicht mehr unterstützt und entsprechende Referenzen müssen aus den Start-Scripts + entfernt werden. Ab MOA-ID 3.3.2 sind die Bibliotheken, welche früher in + den beiden Verzeichnissen hinterlegt waren, direkt in MOA-ID integriert. + Falls sie eine Java Version < 9 verwenden und aktuell Bibliotheken in diesen + Verzeichnissen abgelegt haben müssen diese aktualisiert werden: + + 5.1. Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis + JAVA_HOME\jre\lib\ext und loeschen Sie diese Dateien danach. + + 5.2. Kopieren Sie alle Dateien aus dem Verzeichnis MOA_ID_AUTH_INST\ext in das + Verzeichnis JAVA_HOME\jre\lib\ext (Achtung: Java 1.6.x wird nicht mehr + unterstuetzt). + +6. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + +7. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-configuration.war nach + CATALINA_HOME_ID/webapps. + +8. Hinzufügen der zusätzlichen Konfigurationsparameter in der MOA-ID-Auth + Konfigurationsdatei CATALINA_HOME\conf\moa-id\moa-id.properties +8.1 Anbindung an das zentrale E-ID System + > modules.eidproxyauth.keystore.path= + > modules.eidproxyauth.keystore.password= + > modules.eidproxyauth.metadata.sign.password=password + > modules.eidproxyauth.metadata.sign.alias=pvp_metadata + > modules.eidproxyauth.request.sign.password=password + > modules.eidproxyauth.request.sign.alias=pvp_assertion + > modules.eidproxyauth.response.encryption.password=password + > modules.eidproxyauth.response.encryption.alias=pvp_assertion + > modules.eidproxyauth.EID.trustprofileID=eid_metadata + > modules.eidproxyauth.endpoint.appreginfo.enable=true +8.2 SAML1 Requestparameter Validierung + >configuration.validate.saml1.parameter.strict +8.3 HTTP Proxy Konfiguration via JAVA System-Properties + > -Dhttp.proxyHost= + > -Dhttp.proxyPort= + > -Dhttp.proxyUser= + > -Dhttp.proxyPassword= + +9. Update der MOA-SPSS Konfiguration + a.) Erstellen Sie eine Sicherungskopie der Verzeichnisse: + - CATALINA_HOME\conf\moa-spss + b.) Kopieren Sie die Dateien aus dem Verzeichnis MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles\EID_metadata + in das Verzeichnis CATALINA_HOME\conf\moa-spss\trustProfiles\EID_metadata + c.) Kopieren Sie die Datei MOA_ID_INST_AUTH\conf\moa-spss\SampleMOASPSSConfiguration.xml + in das Verzeichnis CATALINA_HOME\conf\moa-spss\ , oder aktualisieren Sie ihre aktuell + verwendete MOA-SPSS Konfiguration manuell. Folgende Teile wurden ergänzt: + ... + eid_metadata + trustProfiles/EID_metadata + + ... + d.) Kopieren sie folgende Zertifikate in den jeweiligen TrustStore ihrer MOA-ID Konfiguration + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/a-sign-Premium-Mobile-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Mobile-07.cer + e.) Kopieren sie folgende Zertifikate in den CertStore ihrer MOA-ID Konfiguration + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Mobile-07.cer + +10. Update the MOA-ID Konfiguration via Web-basierten Konfigurationstool + Diese Schitte können erst nach der Installation und dem Start der Applikation + moa-id-configuration.war durchgeführt werden +10.1 Anbindung das zentrale E-ID System + a.) Bekanntgabe von Endpunkten (Produktiv, Test, ... ) der zu verwendenten + IDPs des zentralen E-ID Systems + + b.) Auswahl des gewünschte EndPunkts je Online-Applikation + sofern im Schritt a. mehr als Ein Endpunkt konfiguriert wurde. + Hinweis: Als Default wird immer der Erste im Schritt a. hinterlegte Endpunkt verwendet + +11. Geänderte GUI Templates + > MOA_ID_AUTH_INST/conf/moa-id/htmlTemplates/css_template.css + > MOA_ID_AUTH_INST/conf/moa-id/htmlTemplates/javascript_tempalte.js + +12. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der Konfiguration. + + +............................................................................... +B.4 Durchführung eines Updates von Version 3.x.x auf Version 4.1.4 +............................................................................... +1. Exportieren Sie die aktuelle Konfiguration von MOA-ID mit Hilfe der import/export + Funktion der grafischen Konfigurationsoberfläche in eine Datei. Dieser Export + dient nur als Backup und wird für den Updateprozess nicht zwingend benötigt. + +2. Stoppen Sie den Tomcat, in dem Ihre bisherige Installation betrieben wird. + Fertigen Sie eine Sicherungskopie Ihrer kompletten Tomcat-Installation an. + +3. Entpacken Sie die Distribution von MOA-ID-Auth (moa-id-auth-4.1.4.zip) in + ein temporäres Verzeichnis, in weiterer Folge als MOA_ID_AUTH_INST + bezeichnet. + +4. Wechseln Sie in jenes Verzeichnis, das die Webapplikation von MOA ID Auth + beinhaltet (für gewöhnlich ist dieses Verzeichnis CATALINA_HOME_ID/webapps, + wobei CATALINA_HOME_ID für das Basisverzeichnis der Tomcat-Installation + für MOA ID steht). Löschen Sie darin sowohl die Dateien moa-id-auth.war + als auch das komplette Verzeichnis moa-id-auth. + +5 Umstellung auf Java JDK 9 + Die 'JAVA_HOME\jre\lib\ext' und die 'CATALINA_HOME_ID\endorsed' wird in Java 9 + nicht mehr unterstützt und entsprechende Referenzen müssen aus den Start-Scripts + entfernt werden. Ab MOA-ID 3.3.2 sind die Bibliotheken, welche früher in + den beiden Verzeichnissen hinterlegt waren, direkt in MOA-ID integriert. + Falls sie eine Java Version < 9 verwenden und aktuell Bibliotheken in diesen + Verzeichnissen abgelegt haben müssen diese aktualisiert werden: + + 5.1. Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis + JAVA_HOME\jre\lib\ext und loeschen Sie diese Dateien danach. + + 5.2. Kopieren Sie alle Dateien aus dem Verzeichnis MOA_ID_AUTH_INST\ext in das + Verzeichnis JAVA_HOME\jre\lib\ext (Achtung: Java 1.6.x wird nicht mehr + unterstuetzt). + + 5.3. Erstellen Sie eine Sicherungskopie aller "iaik*.jar"-Dateien im Verzeichnis + CATALINA_HOME_ID\endorsed und loeschen Sie diese Dateien danach. + + 5.4 Kopieren Sie alle Dateien aus dem Verzeichnis MOA_ID_AUTH_INST\endorsed in das + Verzeichnis CATALINA_HOME_ID\endorsed. + +6. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-auth.war nach + CATALINA_HOME_ID/webapps. + +7. Kopieren Sie die Datei MOA_ID_AUTH_INST/moa-id-configuration.war nach + CATALINA_HOME_ID/webapps. + +8. Hinzufügen der zusätzlichen Konfigurationsparameter in der MOA-ID-Auth + Konfigurationsdatei CATALINA_HOME\conf\moa-id\moa-id.properties +8.1 Anbindung an das zentrale E-ID System + > modules.eidproxyauth.keystore.path= + > modules.eidproxyauth.keystore.password= + > modules.eidproxyauth.metadata.sign.password=password + > modules.eidproxyauth.metadata.sign.alias=pvp_metadata + > modules.eidproxyauth.request.sign.password=password + > modules.eidproxyauth.request.sign.alias=pvp_assertion + > modules.eidproxyauth.response.encryption.password=password + > modules.eidproxyauth.response.encryption.alias=pvp_assertion + > modules.eidproxyauth.EID.trustprofileID=eid_metadata + > modules.eidproxyauth.endpoint.appreginfo.enable=true +8.2 SAML1 Requestparameter Validierung + >configuration.validate.saml1.parameter.strict +8.3 HTTP Proxy Konfiguration via JAVA System-Properties + > -Dhttp.proxyHost= + > -Dhttp.proxyPort= + > -Dhttp.proxyUser= + > -Dhttp.proxyPassword= + +9. Update der MOA-SPSS Konfiguration + a.) Erstellen Sie eine Sicherungskopie der Verzeichnisse: + - CATALINA_HOME\conf\moa-spss + b.) Kopieren Sie die Dateien aus dem Verzeichnis MOA_ID_INST_AUTH\conf\moa-spss\trustProfiles\EID_metadata + in das Verzeichnis CATALINA_HOME\conf\moa-spss\trustProfiles\EID_metadata + c.) Kopieren Sie die Datei MOA_ID_INST_AUTH\conf\moa-spss\SampleMOASPSSConfiguration.xml + in das Verzeichnis CATALINA_HOME\conf\moa-spss\ , oder aktualisieren Sie ihre aktuell + verwendete MOA-SPSS Konfiguration manuell. Folgende Teile wurden ergänzt: + ... + eid_metadata + trustProfiles/EID_metadata + + ... + d.) Kopieren sie folgende Zertifikate in den jeweiligen TrustStore ihrer MOA-ID Konfiguration + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenOhneTestkarten/a-sign-Premium-Mobile-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Mobile-07.cer + e.) Kopieren sie folgende Zertifikate in den CertStore ihrer MOA-ID Konfiguration + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/A-Trust-Root-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Sig-07.cer + > MOA_ID_AUTH_INST/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Mobile-07.cer + + +10. Update the MOA-ID Konfiguration via Web-basierten Konfigurationstool + Diese Schitte können erst nach der Installation und dem Start der Applikation + moa-id-configuration.war durchgeführt werden +10.1 Anbindung das zentrale E-ID System + a.) Bekanntgabe von Endpunkten (Produktiv, Test, ... ) der zu verwendenten + IDPs des zentralen E-ID Systems + + b.) Auswahl des gewünschte EndPunkts je Online-Applikation + sofern im Schritt a. mehr als Ein Endpunkt konfiguriert wurde. + Hinweis: Als Default wird immer der Erste im Schritt a. hinterlegte Endpunkt verwendet + +11. Geänderte GUI Templates + > MOA_ID_AUTH_INST/conf/moa-id/htmlTemplates/css_template.css + > MOA_ID_AUTH_INST/conf/moa-id/htmlTemplates/javascript_tempalte.js + + +12. Optionale Updates: +12.1. Die mySQL Treiber 'com.mysql.jdbc.Drive' und 'org.hibernate.dialect.MySQLDialect' + sind deprecated für aktuelle mySQL DB Versionen. Der neue Treiber + für mySQL Datenbanken lautet 'com.mysql.cj.jdbc.Driver' und ein aktuellerer + Hibernate Dialect lautet 'org.hibernate.dialect.MySQL5Dialect'. + Sollte es zu Problemen kommen ersetzen Sie entsprechenden Zeilen durch: + a.) Konfigurationsdatei CATALINA_HOME\conf\moa-id\moa-id.properties + moasession.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect + moasession.hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver + configuration.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect + configuration.hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver + advancedlogging.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect + advancedlogging.hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver + b.) Konfigurationsdatei CATALINA_HOME\conf\moa-id-configuration\moa-id-configtool.properties + hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver + +13. Starten Sie den Tomcat neu, achten Sie auf eventuelle Fehlermeldungen im + Logging von MOA ID beim Einlesen der Konfiguration. + + + +............................................................................... +B.5 Durchführung eines Updates von Version < 3.0.0 +............................................................................... + +Bitte führen Sie eine Neuinstallation von MOA ID laut Handbuch durch und passen +Sie die mitgelieferte Musterkonfiguration entsprechend Ihren Bedürfnissen unter +Zuhilfenahme Ihrer bisherigen Konfiguration an. + diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfigurationImpl.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfigurationImpl.java index 6ef7a00cd..0e729ca5b 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfigurationImpl.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfigurationImpl.java @@ -60,7 +60,7 @@ public class MOAIDConfigurationImpl extends DatabaseConfigPropertyImpl implement List configResult = configQuery.getResultList(); if (configResult == null || configResult.isEmpty()) { - Logger.warn("Found no configuration keys with prefix: " + preFix + ".%"); + Logger.debug("Found no configuration keys with prefix: " + preFix + ".%"); return null; } @@ -98,7 +98,7 @@ public class MOAIDConfigurationImpl extends DatabaseConfigPropertyImpl implement List configResult = configQuery.getResultList(); if (configResult == null || configResult.isEmpty()) { - Logger.warn("Found no configuration keys with searchKey: " + searchKey); + Logger.debug("Found no configuration keys with searchKey: " + searchKey); return null; } @@ -228,7 +228,7 @@ public class MOAIDConfigurationImpl extends DatabaseConfigPropertyImpl implement List oaConfigResult = oaConfigQuery.getResultList(); if (oaConfigResult == null) { - Logger.warn("Found no configuration keys with prefix: " + oaKey + ".%"); + Logger.info("Found no configuration keys with prefix: " + oaKey + ".%"); return null; } Logger.trace("Find " + oaConfigResult.size() + " key/value pairs with prefix: " + oaKey + ".%"); diff --git a/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java b/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java index edf7ce268..4d4c7fa88 100644 --- a/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java +++ b/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java @@ -26,10 +26,12 @@ import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; +import org.apache.commons.httpclient.auth.AuthScope; import org.apache.commons.httpclient.protocol.Protocol; import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; -import at.gv.egovernment.moa.id.commons.ex.MOAHttpProtocolSocketFactoryException; +import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.util.MiscUtil; /** * @author tlenz @@ -39,10 +41,48 @@ import at.gv.egovernment.moa.id.commons.ex.MOAHttpProtocolSocketFactoryException */ public class MOAHttpClient extends HttpClient { - - public void setCustomSSLTrustStore(String metadataURL, ProtocolSocketFactory protoSocketFactory) throws MOAHttpProtocolSocketFactoryException, MalformedURLException { - ; - + public MOAHttpClient() { + super(); + injectProxyCredentials(); + + } + + public void injectProxyCredentials() { + //set proxy functionality + String host = System.getProperty("http.proxyHost"); //$NON-NLS-1$ + String port = System.getProperty("http.proxyPort"); //$NON-NLS-1$ + String user = System.getProperty("http.proxyUser"); //$NON-NLS-1$ + String pass = System.getProperty("http.proxyPassword"); //$NON-NLS-1$ + + if (MiscUtil.isNotEmpty(host)) { + int p = -1; + if (MiscUtil.isNotEmpty(port)) { + try { + p = Integer.parseInt(port); + + } catch (Exception e) { + Logger.error("'http.proxyPort' not valid!", e); + + } + } + Logger.info("Set HTTP-Proxy to Host: " + host + " and port: " + p); + getHostConfiguration().setProxy(host, p); + if (MiscUtil.isNotEmpty(user) && pass != null) { + //set proxy credentials + AuthScope authscope = new AuthScope(host, p); + Credentials credentials = new UsernamePasswordCredentials(user, pass); + getState().setProxyCredentials(authscope, credentials); + Logger.info(" Use Proxy with Username: " + user + " and password: " + + (Logger.isTraceEnabled() ? pass : "*******")); + + } + + } + } + + public void setCustomSSLTrustStore(String metadataURL, ProtocolSocketFactory protoSocketFactory) + throws MalformedURLException { + URL url = new URL(metadataURL); int port = -1; if (url.getPort() < 0) @@ -52,7 +92,7 @@ public class MOAHttpClient extends HttpClient { Protocol authhttps = new Protocol("https", protoSocketFactory, 443); getHostConfiguration().setHost(url.getHost(), port, authhttps); - + } public int executeMethod(HostConfiguration hostconfig, diff --git a/id/server/modules/moa-id-module-E-ID_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidproxyauth/utils/EIDAuthMetadataProvider.java b/id/server/modules/moa-id-module-E-ID_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidproxyauth/utils/EIDAuthMetadataProvider.java index 649cfa691..e9ea40e0b 100644 --- a/id/server/modules/moa-id-module-E-ID_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidproxyauth/utils/EIDAuthMetadataProvider.java +++ b/id/server/modules/moa-id-module-E-ID_connector/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidproxyauth/utils/EIDAuthMetadataProvider.java @@ -28,8 +28,12 @@ import java.util.Timer; import javax.xml.namespace.QName; +import org.apache.commons.httpclient.Credentials; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.MOAHttpClient; +import org.apache.commons.httpclient.ProxyHost; +import org.apache.commons.httpclient.UsernamePasswordCredentials; +import org.apache.commons.httpclient.auth.AuthScope; import org.apache.commons.httpclient.params.HttpClientParams; import org.opensaml.saml2.metadata.EntitiesDescriptor; import org.opensaml.saml2.metadata.EntityDescriptor; @@ -317,7 +321,14 @@ public class EIDAuthMetadataProvider extends SimpleMetadataProvider HttpClientParams httpClientParams = new HttpClientParams(); httpClientParams.setSoTimeout(AuthConfiguration.CONFIG_PROPS_METADATA_SOCKED_TIMEOUT); httpClient.setParams(httpClientParams); - + + Credentials defaultcreds = new UsernamePasswordCredentials("username", "password"); + httpClient.getState().setProxyCredentials( + new AuthScope("myhost", 8080, AuthScope.ANY_REALM), defaultcreds); + ProxyHost proxyHost = new ProxyHost("myhost", 8080); + httpClient.getHostConfiguration().setProxyHost(proxyHost); + + if (metadataURL.startsWith("https:")) { try { //FIX: change hostname validation default flag to true when httpClient is updated to > 4.4 -- cgit v1.2.3