diff options
-rw-r--r-- | spss.slinterface/handbook/constraints.txt | 6 | ||||
-rw-r--r-- | spss.slinterface/handbook/operation/images/testapp.screen1.png | bin | 0 -> 38150 bytes | |||
-rw-r--r-- | spss.slinterface/handbook/operation/images/testapp.screen2.png | bin | 0 -> 44749 bytes | |||
-rw-r--r-- | spss.slinterface/handbook/operation/images/testapp.screen3.png | bin | 0 -> 16625 bytes | |||
-rw-r--r-- | spss.slinterface/handbook/operation/images/testapp.screen4.png | bin | 0 -> 40110 bytes | |||
-rw-r--r-- | spss.slinterface/handbook/operation/operation.html | 1746 | ||||
-rw-r--r-- | spss.slinterface/handbook/system/images/Zusammenspiel.VSD | bin | 0 -> 138240 bytes | |||
-rw-r--r-- | spss.slinterface/handbook/system/images/Zusammenspiel.mit.png | bin | 0 -> 48649 bytes | |||
-rw-r--r-- | spss.slinterface/handbook/system/images/Zusammenspiel.ohne.png | bin | 0 -> 36106 bytes | |||
-rw-r--r-- | spss.slinterface/handbook/system/system.html | 960 |
10 files changed, 1823 insertions, 889 deletions
diff --git a/spss.slinterface/handbook/constraints.txt b/spss.slinterface/handbook/constraints.txt new file mode 100644 index 000000000..f21d385c8 --- /dev/null +++ b/spss.slinterface/handbook/constraints.txt @@ -0,0 +1,6 @@ +- Prüfung eines ggf. vorhandenen SL-Manifests wird nicht durchgeführt. + In der Antwort wird der Code 98 zurückgeliefert. + +- Prüfung von dsig-Manifesten escheint nicht in der Auswertungsseite. + +- Bei signiertem XHTML-Dokument wird list-style-image-URL nicht geprüft.
\ No newline at end of file diff --git a/spss.slinterface/handbook/operation/images/testapp.screen1.png b/spss.slinterface/handbook/operation/images/testapp.screen1.png Binary files differnew file mode 100644 index 000000000..38a226d09 --- /dev/null +++ b/spss.slinterface/handbook/operation/images/testapp.screen1.png diff --git a/spss.slinterface/handbook/operation/images/testapp.screen2.png b/spss.slinterface/handbook/operation/images/testapp.screen2.png Binary files differnew file mode 100644 index 000000000..45230d5c9 --- /dev/null +++ b/spss.slinterface/handbook/operation/images/testapp.screen2.png diff --git a/spss.slinterface/handbook/operation/images/testapp.screen3.png b/spss.slinterface/handbook/operation/images/testapp.screen3.png Binary files differnew file mode 100644 index 000000000..7d5db9cad --- /dev/null +++ b/spss.slinterface/handbook/operation/images/testapp.screen3.png diff --git a/spss.slinterface/handbook/operation/images/testapp.screen4.png b/spss.slinterface/handbook/operation/images/testapp.screen4.png Binary files differnew file mode 100644 index 000000000..9fe7ee264 --- /dev/null +++ b/spss.slinterface/handbook/operation/images/testapp.screen4.png diff --git a/spss.slinterface/handbook/operation/operation.html b/spss.slinterface/handbook/operation/operation.html index fbdda0b9e..05287b293 100644 --- a/spss.slinterface/handbook/operation/operation.html +++ b/spss.slinterface/handbook/operation/operation.html @@ -1,449 +1,1351 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> + <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title>MOA SL - Betriebshandbuch</title> + + <link rel="stylesheet" href="../common/MOA.css" type="text/css"> + </head> -<body bgcolor="white" text="#000000" link="#990000" vlink="#666666" alink="#cc9966"> - <table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10"> - <tr> - <td align="center" class="logoTitle" width="267"><img src="../common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td> - <td align="center" class="logoTitle">Open Source<br> - für das E-Government</td> - <td align="center" class="logoTitle" width="123"><img src="../common/LogoMoa4c.jpg" alt="Logo MOA" width="123" height="138" align="right"></td> - </tr> - </table> - <hr/> - <p class="title"><a href="../index.html">MOA: Serverseitige Signaturprüfung (SL), V 1.0</a></p> - <p class="subtitle">Betriebshandbuch</p> - <hr/> - <h1>Inhalt</h1> - <ol> - <li> - <p><a href="#Übersicht">Übersicht</a></p> - </li> - <li>Installation - <ol> - <li>Einführung</li> - </ol> - </li> - <li>Konfiguration</li> - <li> - <p><a href="#webservice">Webservice</a></p> - <ol> - <li><a href="#webservice_basisinstallation">Basisinstallation</a> - <ol> - <li><a href="#webservice_basisinstallation_einführung">Einführung</a></li> - <li><a href="#webservice_basisinstallation_installation">Installation</a> - <ol> - <li><a href="#webservice_basisinstallation_installation_vorbereitung">Vorbereitung</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatconfig">Konfiguration von Apache Tomcat</a> - <ol> - <li><a href="#webservice_basisinstallation_installation_tomcatconfig_httpconn">Konfiguration des HTTP Connectors</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatconfig_httpsconn">Konfiguration des HTTPS Connectors</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatconfig_moaadmin">Einrichten des MOA SP/SS Administrators</a></li> - </ol> - </li> - <li><a href="#webservice_basisinstallation_installation_spssdeploy">Einsatz des MOA SP/SS Webservices in Tomcat</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatconfig_httpsconn">Starten und Stoppen von Tomcat</a> - <ol> - <li><a href="#webservice_basisinstallation_installation_tomcatstartstop_windows">Unter Windows</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatstartstop_unix">Unter Unix</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatstartstop_verify">Prüfen des erfolgreichen Starts</a> </li> - </ol> - </li> - <li><a href="#webservice_basisinstallation_installation_changeonthefly">Änderung der Konfiguration im laufenden Betrieb</a></li> - </ol> - </li> - <li><a href="#webservice_basisinstallation_logging">Logging</a> - <ol> - <li><a href="#webservice_basisinstallation_logging_format">Format der Log-Meldungen</a></li> - <li><a href="#webservice_basisinstallation_logging_messages">Wichtige Log-Meldungen</a></li> - </ol> - </li> - </ol> - </li> - <li><a href="#webservice_erweiterungsmöglichkeiten">Erweiterungsmöglichkeiten</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver">Vorgeschalteter Webserver</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_iis">Microsoft Internet Information Server (MS IIS)</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_iis_jk">Konfiguration von <span class="term">Jakarta mod_jk</span> im MS IIS</a></li> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_iis_tomcat">Konfiguration von Tomcat</a></li> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_iis_ssl">Konfiguration von SSL</a></li> - </ol> - </li> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_apache">Apache</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_apache_jk">Konfiguration von <span class="term">Jakarta mod_jk</span> im Apache </a></li> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_apache_tomcat">Konfiguration von Tomcat</a></li> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_apache_ssl">Konfiguration von SSL mit <span class="term">mod_SSL</span></a></li> - </ol> - </li> - </ol> - </li> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank">Datenbank</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql">PostgreSQL</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql_benutzer">Anlegen eines Benutzers und einer Datenbank für MOA SP/SS</a></li> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql_crls">Archivierung von CRLs</a> </li> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql_logging">Logging</a></li> - </ol> - </li> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank_andere">Andere Datenbanken</a> </li> - </ol> - </li> - </ol> - </li> - </ol> - <li><a href="#klassenbibliothek">Klassenbibliothek</a> - <ol> - <li><a href="#klassenbibliothek_basisinstallation">Basisinstallation</a> - <ol> - <li><a href="#klassenbibliothek_basisinstallation_einfuehrung">Einführung</a></li> - <li><a href="#klassenbibliothek_basisinstallation_vorbereitung">Vorbereitung</a></li> - <li><a href="#klassenbibliothek_basisinstallation_verwendung">Verwendung</a></li> - <li><a href="#klassenbibliothek_basisinstallation_logging">Logging</a></li> - </ol> - </li> - <li><a href="#klassenbibliothek_erweiterungsmöglichkeiten">Erweiterungsmöglichkeiten</a></li> - </ol> - </li> - </ol> - <ol type="A"> - <li><a href="#referenzierte_software">Referenzierte Software</a></li> - </ol> - <hr/> - <h1><a name="übersicht" id="übersicht"></a>1 Übersicht</h1> - <p> Das Modul Serverseitige Signaturprüfung (SL) ist als plattformunabhängiges Modul ausgelegt, das als Webservice über HTTP bzw. HTTPS angesprochen werden kann. </p> - <p>Dieses Handbuch beschreibt einerseits die Installation des Moduls, andererseits werden die Konfigurationsmöglichkeiten dargestellt. Für eine funktionale Beschreibung des Moduls siehe <a href="../system/system.html">Systemhandbuch</a>. </p> - <h1><a name="installation" id="installation"></a>2 Installation</h1> - <h2><a name="installation_einführung" id="installation_einführung"></a>2.1 Einführung </h2> - <p>Das MOA SL Webservice wurde plattformunabhänig konzipiert und in Java entwickelt. Es benötigt als Ablaufumgebung eine Java 2 Standard Edition (J2SE SDK, Version <a href="http://java.sun.com/j2se/1.4.2/">1.4.2</a> oder <a href="http://java.sun.com/j2se/1.5.0/">5.0</a>) sowie einen Java Servlet Container, der die <span class="comment">Java Servlet Specification</span> in der Version <span class="comment">x.y</span> erfüllt.</p> - <p>In diesem Betriebshandbuch wird davon ausgegangen, dass MOA SL <a href="http://jakarta.apache.org/tomcat/index.html">Apache Tomcat</a> (Version 4.1 oder höher) als Servlet Container verwendet. Die Verwendung eines anderen Servlet Containers ist grundsätzlich möglich, wurde aber nicht getestet und ist auch nicht Gegenstand dieses Betriebshandbuchs. </p> - <p>Weiters wird davon ausgegangen, dass Apache Tomcat gleichzeitig als HTTP- bzw. HTTPS-Endpunkt für das MOA SL Webservice dient, d.h. beide Protokolle werden direkt in Tomcat konfiguriert. Die Verwendung eines vor Apache Tomcat geschalteten Webservers ist grundsätzlich möglich. So werden etwa als Teil des Apache Tomcat Projekts <span class="comment">Module</span> zur Verbindung mit einem vorgeschalteten Microsoft Internet Information Server oder mit einem vorgeschalteten Apache Webserver angeboten. Die Beschreibung der möglichen Vorschaltungen ist jedoch nicht Teil dieses Betriebshandbuchs. </p> - <p>Das MOA SL Webservice nimmt Signaturprüfungsrequests für XML-Signaturen entsprechend der Spezifikation des Security-Layers zur österreichischen Bürgerkarte in den Versionen 1.1 und 1.2 entgegen. Für die Durchführung der Signaturprüfung bedient sich MOA SL des Moduls MOA Signaturprüfung (SP). Für den Betrieb von MOA SL ist daher die Verfügbarkeit einer Webservice-Installation von MOA SP in der Version 1.2 oder höher Voraussetzung. </p> - <p>Als Logging Toolkit verwendet das MOA SL Webservice <a href="http://logging.apache.org/log4j/">Apache Log4j</a>. </p> - <h2><a name="installation_vorbereitung" id="installation_vorbereitung"></a>2.2 Vorbereitung</h2> - <p>Die folgenden Schritte dienen der Vorbereitung der Installation.</p> - <dl> + + +<body style="color: rgb(0, 0, 0); background-color: white;" alink="#cc9966" link="#990000" vlink="#666666"> + +<table class="logoTable" border="0" cellpadding="10" cellspacing="0" width="100%"> + + <tbody> + + <tr> + + <td class="logoTitle" align="center" width="267"><img src="../common/LogoBKA.png" alt="Logo BKA" align="left" height="37" width="267"></td> + + <td class="logoTitle" align="center">Open +Source<br> + +für das E-Government</td> + + <td class="logoTitle" align="center" width="123"><img src="../common/LogoMoa4c.jpg" alt="Logo MOA" align="right" height="138" width="123"></td> + + </tr> + + </tbody> +</table> + +<hr> +<p class="title"><a href="../index.html">MOA: +Serverseitige Signaturprüfung (SL), V 1.1</a></p> + +<p class="subtitle">Betriebshandbuch</p> + +<hr> +<h1>Inhalt</h1> + +<ol> + + <li> + <p><a href="#%FCbersicht">Übersicht</a></p> + + </li> + + <li><a href="#installation">Installation</a> + <ol> + + <li><a href="#installation_einf%FChrung">Einführung</a></li> + + <li><a href="#installation_vorbereitung">Vorbereitung</a></li> + + <li><a href="#installation_tomcatconfig">Konfiguration +von Apache Tomcat</a> + <ol> + + <li><a href="#installation_tomcatconfig_httpconn">Konfiguration +des HTTP Connectors</a></li> + + <li><a href="#installation_tomcatconfig_httpsconn">Konfiguration +des HTTPS Connectors</a></li> + + </ol> + + </li> + + <li><a href="#installation_deploy">Einsatz des +MOA SL Webservices in Tomcat</a></li> + + <li><a href="#installation_tomcatstartstop">Starten +und Stoppen von Tomcat</a> + <ol> + + <li><a href="#installation_tomcatstartstop_windows">Unter +Windows</a></li> + + <li><a href="#installation_tomcatstartstop_unix">Unter +Unix</a></li> + + <li><a href="#installation_tomcatstartstop_logging">Logging</a> + <ol> + + <li><a href="#webservice_basisinstallation_logging_format">Format +der Log-Meldungen</a> </li> + + </ol> + + </li> + + <li><a href="#installation_tomcatstartstop_verify">Prüfen +des erfolgreichen Starts</a></li> + + </ol> + + </li> + + </ol> + + </li> + + <li><a href="#konfiguration">Konfiguration</a> + <ol> + + <li><a href="#konfiguration_konfigurationsdatei">Zentrale +Konfigurationsdatei</a> + <ol> + + <li><a href="#konfiguration_konfigurationsdatei_schemata">XML-Schemata +für Request- und Response-Validierung</a></li> + + <li><a href="#konfiguration_konfigurationsdatei_arbeitsverzeichnis">Arbeitsverzeichnis</a></li> + + <li><a href="#konfiguration_konfigurationsdatei_moasp">Parameter +der verwendeten MOA SP Installation</a></li> + + <li><a href="#konfiguration_konfigurationsdatei_umfang">Umfang der +Prüfberichtseite</a></li> + + <li><a href="#konfiguration_konfigurationsdatei_umschreiben">Parameter +für das Umschreiben der Links in der Prüfberichtseite</a></li> + + </ol> + + </li> + + <li><a href="#konfiguration_layout">Layout des +Prüfberichts</a> </li> + + </ol> + + </li> + + <li><a href="#testapp">Durchlaufen der +Testapplikation</a> </li> + +</ol> + +<hr> +<h1><a name="übersicht" id="übersicht"></a>1 +Übersicht</h1> + +<p> Das Modul<span class="term"> Serverseitige +Signaturprüfung</span> (MOA SL) ist als +plattformunabhängiges Modul ausgelegt, das als Webservice +über HTTP bzw. HTTPS angesprochen werden kann. </p> + +<p>Dieses Handbuch beschreibt einerseits die Installation des +Moduls, andererseits werden die Konfigurationsmöglichkeiten +dargestellt. Für eine funktionale Beschreibung des Moduls +siehe <a href="../system/system.html">Systemhandbuch</a>. +</p> + +<h1><a name="installation" id="installation"></a>2 +Installation</h1> + +<h2><a name="installation_einführung" id="installation_einführung"></a>2.1 +Einführung </h2> + +<p>Das MOA SL Webservice wurde plattformunabhänig +konzipiert und in Java entwickelt. Es benötigt als +Ablaufumgebung eine Java 2 Standard Edition (J2SE SDK, Version <a href="http://java.sun.com/j2se/1.4.2/">1.4.2</a> oder <a href="http://java.sun.com/j2se/1.5.0/">5.0</a>) sowie +einen Java Servlet Container, der die <a href="http://java.sun.com/products/servlet/reference/api/index.html">Java +Servlet Specification</a> in der Version 2.3 erfüllt.</p> + +<p>In diesem Betriebshandbuch wird davon ausgegangen, dass MOA SL +<a href="http://jakarta.apache.org/tomcat/index.html">Apache +Tomcat</a> (Version 4.1 oder höher) als Servlet +Container verwendet. Die Verwendung eines anderen Servlet Containers +ist grundsätzlich möglich, wurde aber nicht getestet +und ist auch nicht Gegenstand dieses Betriebshandbuchs. </p> + +<p>Weiters wird davon ausgegangen, dass Apache Tomcat +gleichzeitig als HTTP- bzw. HTTPS-Endpunkt für das MOA SL +Webservice dient, d.h. beide Protokolle werden direkt in Tomcat +konfiguriert. Die Verwendung eines vor Apache Tomcat geschalteten +Webservers ist grundsätzlich möglich. So werden etwa +als Teil des Apache Tomcat Projekts <a href="http://tomcat.apache.org/connectors-doc/">Module</a> +zur Verbindung mit einem vorgeschalteten Microsoft Internet Information +Server oder mit einem vorgeschalteten Apache Webserver angeboten. Die +Beschreibung der möglichen Vorschaltungen ist jedoch nicht +Teil dieses Betriebshandbuchs. </p> + +<p>Das MOA SL Webservice nimmt Signaturprüfungsrequests +für XML-Signaturen entsprechend der Spezifikation des +Security-Layers zur österreichischen Bürgerkarte in +den Versionen 1.1 und 1.2 entgegen. Für die +Durchführung der Signaturprüfung bedient sich MOA SL +des Moduls MOA Signaturprüfung (SP). Für den Betrieb +von MOA SL ist daher die Verfügbarkeit einer +Webservice-Installation von MOA SP in der Version 1.2 oder +höher Voraussetzung. </p> + +<p>Als Logging Toolkit verwendet das MOA SL Webservice <a href="http://logging.apache.org/log4j/">Apache Log4j</a>. +</p> + +<h2><a name="installation_vorbereitung" id="installation_vorbereitung"></a>2.2 Vorbereitung</h2> + +<p>Die folgenden Schritte dienen der Vorbereitung der +Installation.</p> + +<dl> + <dt>Installation von J2SE SDK</dt> - <dd>Installieren Sie <a href="http://java.sun.com/j2se/1.4.2/">J2SE 1.4.2 SDK</a> oder <a href="http://java.sun.com/j2se/1.5.0/">J2SE 5.0 SDK</a> in ein beliebiges Verzeichnis. Das Wurzelverzeichnis der J2SE SDK Installation wird im weiteren Verlauf als <code>$JAVA_HOME</code> bezeichnet. </dd> + + <dd>Installieren Sie <a href="http://java.sun.com/j2se/1.4.2/">J2SE 1.4.2 SDK</a> +oder <a href="http://java.sun.com/j2se/1.5.0/">J2SE 5.0 +SDK</a> in ein beliebiges Verzeichnis. Das Wurzelverzeichnis der +J2SE SDK Installation wird im weiteren Verlauf als <code>$JAVA_HOME</code> +bezeichnet. </dd> + <dt>Installation von Apache Tomcat</dt> - <dd> Installieren Sie <a href="http://jakarta.apache.org/tomcat/index.html">Apache Tomcat</a> 4.1.31 oder höher in ein Verzeichnis, das keine Leerzeichen im Pfadnamen enthält. Verwenden Sie bitte die zu Ihrem J2SE SDK passende Distribution von Tomcat. Das Wurzelverzeichnis der Tomcat-Installation wird im weiteren Verlauf als <code>$CATALINA_HOME</code> bezeichnet.</dd> + + <dd> Installieren Sie <a href="http://jakarta.apache.org/tomcat/index.html">Apache +Tomcat</a> 4.1.31 oder höher in ein Verzeichnis, das +keine Leerzeichen im Pfadnamen enthält. Verwenden Sie bitte +die zu Ihrem J2SE SDK passende Distribution von Tomcat. Das +Wurzelverzeichnis der Tomcat-Installation wird im weiteren Verlauf als <code>$CATALINA_HOME</code> +bezeichnet.</dd> + <dt>Installation von MOA SP </dt> - <dd>Installieren Sie das <span class="comment">Kombinationsmodul MOA SPSS</span> Version 1.2 oder höher entsprechend seiner Installationsanleitung. Sie benötigen die Webservice-Schnittstelle von MOA SP. Es ist ausreichend, mittels entsprechender Konfigurationseinstellungen ausschließlich MOA SP zu aktivieren; MOA SS kann deaktiviert bleiben. Wenn Sie sowohl für MOA SPSS als auch für MOA SL Apache Tomcat als Servlet Container verwenden möchten, empfehlen wir, MOA SPSS und MOA SL in jeweils eigenständigen Instanzen von Apache Tomcat zu betreiben. </dd> + + <dd>Installieren Sie das <a href="http://www.cio.gv.at/onlineservices/basicmodules/moa-spss/">Kombinationsmodul +MOA SPSS</a> Version 1.3 oder höher entsprechend seiner +Installationsanleitung. Sie benötigen die +Webservice-Schnittstelle von MOA SP. Es ist ausreichend, mittels +entsprechender Konfigurationseinstellungen ausschließlich MOA +SP zu aktivieren; MOA SS kann deaktiviert bleiben. Wenn Sie sowohl +für MOA SPSS als auch für MOA SL Apache Tomcat als +Servlet Container verwenden möchten, empfehlen wir, MOA SPSS +und MOA SL in jeweils eigenständigen Instanzen von Apache +Tomcat zu betreiben. </dd> + <dt>Entpacken der MOA SL Distribution</dt> - <dd> Entpacken Sie die Datei <code>moa-sl-1.0.x.zip</code> in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als <code>$MOA_SL_INST</code> bezeichnet. </dd> + + <dd> Entpacken Sie die Datei <code>moa-sl-1.1.x.zip</code> +in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren +Verlauf als <code>$MOA_SL_INST</code> bezeichnet. </dd> + </dl> - <h2><a name="installation_tomcatconfig" id="installation_tomcatconfig"></a>2.3 Konfiguration von Apache Tomcat</h2> - <p> Die zentrale Konfigurations-Datei von Tomcat ist <code>$CATALINA_HOME/conf/server.xml</code>. Tomcat wird grundsätzlich mit einer funktionierenden Default-Konfiguration ausgeliefert, die jedoch einiges an Ballast enthält und viele Ports offen lässt. </p> - <h3><a name="installation_tomcatconfig_httpconn" id="installation_tomcatconfig_httpconn"></a>2.3.1 Konfiguration des HTTP Connectors</h3> - <p> Die Datei <code>$MOA_SL_INST/conf/tomcat/server.xml</code> enthält eine minimale Tomcat-Konfiguration, die ausschließlich den Connector für HTTP auf Port 8080 freischaltet. Durch kopieren dieser Datei nach <code>$CATALINA_HOME/conf/server.xml</code> kann Tomcat mit dieser Konfiguration gestartet werden. Wir empfehlen diese Konfiguration nur für Fälle, in denen das MOA SL Webservice in einer abgeschlossenen Netzwerkumgebung betrieben wird. </p> - <h3><a name="installation_tomcatconfig_httpsconn" id="installation_tomcatconfig_httpsconn"></a>2.3.2 Konfiguration des HTTPS Connectors</h3> - <p>Wird das MOA SL Webservice in einer nicht abgeschlossenen Umgebung (z.B. Erreichbarkeit über das Internet) betrieben, ist es für den Benutzer von MOA SL essentiell, die Identität des Webservice eindeutig feststellen zu können, denn er vertraut dem Webservice ja die Prüfung einer elektronischen Signatur an. Diese Identitätsprüfung kann mit hoher Qualität vorgenommen werden, wenn die Erreichbarkeit des Webservice auf HTTPS mit Serverauthentisierung eingeschränkt wird. </p> - <p>Für die dazu notwendige Konfiguration kann die im vorigen Abschnitt besprochene minimale Tomcat-Konfiguration als Ausgangspunkt verwendet werden: Zunächst ist der HTTP Connector abzuschalten (auszukommentieren). Anschließend ist der HTTPS Connector zu konfigurieren. Das Dokument <a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/ssl-howto.html">Tomcat SSL Configuration HOW-TO </a> gibt einen guten Überblick dazu. Grob zusammengefasst sind folgende Schritte durchzuführen: </p> - <ul> - <li>Erstellung eines <span class="term">Server-Keystores</span>, der den privaten Schlüssel sowie das zugehörige Zertifikat des Webservices enthält, mit dem es sich bei Aufbau einer SSL-Verbindung gegenüber dem Kunden ausweist. Sie können diesen Keystore z.B. mit <code>keytool</code> erstellen, einem Programm, das Ihrem J2SE SDK beiliegt.</li> - <li>Erstellung eines <span class="term">Client-Keystores</span>, der die Zertifikate aller Kunden des Webservices enthält. Nur Kunden des MOA SL Webservices, die sich beim Aufbau einer SSL-Verbindung gegenüber dem Webservice mit einem im <span class="term">Client-Keystore</span> enthaltenen Zertifikat ausweisen, erhalten Zugriff zu den Diensten des MOA SL Webservices. Auch dieser Keystore kann z.B. mit <code>keytool</code> erstellt werden. Dieser Keystore ist optional und braucht nur erstellt zu werden, wenn sich die Kunden gegenüber dem MOA SL Webservice authentisieren müssen. </li> - <li>Konfiguration des HTTPS Connectors in <code>$CATALINA_HOME/conf/server.xml</code>.</li> - </ul> - <p>Die Konfiguration des HTTPS Connectors kann entfallen, wenn Tomcat ein Webserver vorgeschaltet ist, und dieser die SSL-Kommunikation mit dem Kunden übernimmt (siehe <a href="#installation_einführung">Abschnitt 2.1</a>).</p> - <h2><a name="webservice_basisinstallation_installation_spssdeploy" id="webservice_basisinstallation_installation_spssdeploy"></a>2.4 Einsatz des MOA SL Webservices in Tomcat</h2> - <p> Um das MOA SL Webservice in Tomcat für den Einsatz vorzubereiten, sind folgende Schritte notwendig:</p> - <ul> - <li>Die Datei <code>$MOA_SL_INST/moa-sl.war</code> enthält das einsatzfertige MOA SL Webarchiv und muss ins Verzeichnis <code>$CATALINA_HOME/webapps</code> kopiert werden. Dort wird sie beim ersten Start von Tomcat automatisch ins Verzeichnis <code>$CATALINA_HOME/webapps/moa-sl</code> entpackt. </li> - <li>Die zentrale Konfigurationsdatei für MOA SL muss in ein beliebiges Verzeichnis im Dateisystem kopiert werden (z.B. <code>$CATALINA_HOME/conf/moa-sl</code>). Eine funktionsfähige Konfiguration, die als Ausgangspunkt für die Konfiguration des MOA SL Webservices dienen kann, finden Sie <a href="../conf/moa-sl/moa-sl.properties">hier</a>. </li> - <li>Die Dateien <code>xalan.jar</code>, <code>xercesImpl.jar</code> und <code>xmlParserAPIs.jar</code> aus dem Verzeichnis <code>$MOA_SL_INST/endorsed14</code> müssen in das Tomcat-Verzeichnis <code>$CATALINA_HOME/common/endorsed</code> kopiert werden. Sind gleichnamige Dateien dort bereits vorhanden, müssen sie überschrieben werden. Die ggf. in diesem Verzeichnis vorhandene Datei <code>xml-apis.jar</code> muss gelöscht werden.</li> - <li>Folgende <span class="term">System Properties</span> müssen bzw. können gesetzt werden (werden beim Starten von Tomcat der <span class="term">Java Virtual Machine</span> in der Umgebungsvariablen <code>CATALINA_OPTS</code> in der Form <code>-D<name>=<wert></code> übergeben): - <ul> - <li id="klein"><code>at.gv.egovernment.moa.spss.slinterface.PropertiesLocation</code>: Pfad und Name der zentralen Konfigurationsdatei für MOA SL. Eine beispielhafte Konfigurationsdatei finden Sie <a href="../conf/moa-sl/moa-sl.properties">hier</a>. Wird ein relativer Pfad angegeben, wird zuerst versucht, diesen relativ zum Wurzelverzeichnis der Webapplikation (also <code>$CATALINA_HOME/webapps/moa-sl</code>) zu interpretieren. Klappt das nicht, wird dann versucht, den relativen Pfad relativ zum Startverzeichnis der <span class="term">Java Virtual Machine</span> zu interpretieren. Diese <span class="term">System Property</span> muss jedenfalls gesetzt werden.</li> - <li id="klein"><code>log4j.configuration</code>: URL der Log4j Konfigurationsdatei. Eine beispielhafte Log4j-Konfiguration finden Sie <a href="../conf/log4j/log4j.properties">hier</a>. Wird eine relative URL angegeben, wird diese als File-URL relativ zum Startverzeichnis der <span class="term">Java Virtual Machine</span> interpretiert. <span class="comment">Ist diese System Property nicht gesetzt, wird automatisch eine im Webarchiv unter <code>WEB-INF/classes</code> enthaltene Default-Konfiguration herangezogen.</span></li> - <li id="klein"><code>javax.net.ssl.trustStore</code>: Pfad und Dateiname des <span class="term">Truststores</span> für vertrauenswürdige SSL Client-Zertifikate (optional; nur wenn kein Webserver vor Tomcat geschalten wird und SSL Client-Authentisierung durchgeführt werden soll). Ein relativer Pfad werden relativ zum Startverzeichnis der <span class="term">Java Virtual Machine</span> interpretiert.</li> - <li id="klein"><code>javax.net.ssl.trustStorePassword</code>: Passwort für den <span class="term">Truststore</span> (optional; nur wenn kein Webserver vor Tomcat geschalten wird und SSL Client-Authentisierung durchgeführt werden soll). </li> - <li id="klein"><code>javax.net.ssl.trustStoreType</code>: Truststore-Typ (optional; nur wenn kein Webserver vor Tomcat geschalten wird und SSL Client-Authentisierung durchgeführt werden soll). Je nach verwendetem Keystore-Typ muss <code>jks</code> (<span class="term">Java Key Store</span>) oder <code>pkcs12</code> (PKCS#12-Datei) angegeben werden.</li> - </ul> + +<h2><a name="installation_tomcatconfig" id="installation_tomcatconfig"></a>2.3 Konfiguration +von Apache Tomcat</h2> + +<p> Die zentrale Konfigurations-Datei von Tomcat ist <code>$CATALINA_HOME/conf/server.xml</code>. +Tomcat wird grundsätzlich mit einer funktionierenden +Default-Konfiguration ausgeliefert, die jedoch einiges an Ballast +enthält und viele Ports offen lässt. </p> + +<h3><a name="installation_tomcatconfig_httpconn" id="installation_tomcatconfig_httpconn"></a>2.3.1 +Konfiguration des HTTP Connectors</h3> + +<p> Die Datei <code>$MOA_SL_INST/conf/tomcat/server.xml</code> +enthält eine minimale Tomcat-Konfiguration, die +ausschließlich den Connector für HTTP auf Port 8080 +freischaltet. Durch kopieren dieser Datei nach <code>$CATALINA_HOME/conf/server.xml</code> +kann Tomcat mit dieser Konfiguration gestartet werden. Wir empfehlen +diese Konfiguration nur für Fälle, in denen das MOA +SL Webservice in einer abgeschlossenen Netzwerkumgebung betrieben wird. +</p> + +<h3><a name="installation_tomcatconfig_httpsconn" id="installation_tomcatconfig_httpsconn"></a>2.3.2 +Konfiguration des HTTPS Connectors</h3> + +<p>Wird das MOA SL Webservice in einer nicht abgeschlossenen +Umgebung (z.B. Erreichbarkeit über das Internet) betrieben, +ist es für den Benutzer von MOA SL essentiell, die +Identität des Webservice eindeutig feststellen zu +können, denn er vertraut dem Webservice ja die +Prüfung einer elektronischen Signatur an. Diese +Identitätsprüfung kann mit hoher Qualität +vorgenommen werden, wenn die Erreichbarkeit des Webservice auf HTTPS +mit Serverauthentisierung eingeschränkt wird. </p> + +<p>Für die dazu notwendige Konfiguration kann die im +vorigen Abschnitt besprochene minimale Tomcat-Konfiguration als +Ausgangspunkt verwendet werden: Zunächst ist der HTTP +Connector abzuschalten (auszukommentieren). Anschließend ist +der HTTPS Connector zu konfigurieren. Das Dokument <a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/ssl-howto.html">Tomcat +SSL Configuration HOW-TO </a> gibt einen guten +Überblick dazu. Grob zusammengefasst sind folgende Schritte +durchzuführen: </p> + +<ul> + + <li>Erstellung eines <span class="term">Server-Keystores</span>, +der den privaten Schlüssel sowie das zugehörige +Zertifikat des Webservices enthält, mit dem es sich bei Aufbau +einer SSL-Verbindung gegenüber dem Kunden ausweist. Sie +können diesen Keystore z.B. mit <code>keytool</code> +erstellen, einem Programm, das Ihrem J2SE SDK beiliegt.</li> + + <li>Erstellung eines <span class="term">Client-Keystores</span>, +der die Zertifikate aller Kunden des Webservices enthält. Nur +Kunden des MOA SL Webservices, die sich beim Aufbau einer +SSL-Verbindung gegenüber dem Webservice mit einem im <span class="term">Client-Keystore</span> enthaltenen +Zertifikat ausweisen, erhalten Zugriff zu den Diensten des MOA SL +Webservices. Auch dieser Keystore kann z.B. mit <code>keytool</code> +erstellt werden. Dieser Keystore ist optional und braucht nur erstellt +zu werden, wenn sich die Kunden gegenüber dem MOA SL +Webservice authentisieren müssen. </li> + + <li>Konfiguration des HTTPS Connectors in <code>$CATALINA_HOME/conf/server.xml</code>.</li> + +</ul> + +<p>Die Konfiguration des HTTPS Connectors kann entfallen, wenn +Tomcat ein Webserver vorgeschaltet ist, und dieser die +SSL-Kommunikation mit dem Kunden übernimmt (siehe <a href="#installation_einf%FChrung">Abschnitt 2.1</a>).</p> + +<h2><a name="installation_deploy" id="installation_deploy"></a>2.4 Einsatz des MOA SL +Webservices in Tomcat</h2> + +<p> Um das MOA SL Webservice in Tomcat für den Einsatz +vorzubereiten, sind folgende Schritte notwendig:</p> + +<ul> + + <li>Die Datei <code>$MOA_SL_INST/moa-sl.war</code> +enthält das einsatzfertige MOA SL Webarchiv und muss ins +Verzeichnis <code>$CATALINA_HOME/webapps</code> kopiert +werden. Dort wird sie beim ersten Start von Tomcat automatisch ins +Verzeichnis <code>$CATALINA_HOME/webapps/moa-sl</code> +entpackt. </li> + + <li>Die zentrale Konfigurationsdatei für MOA SL muss +in ein beliebiges Verzeichnis im Dateisystem kopiert werden (z.B. <code>$CATALINA_HOME/conf/moa-sl/</code>). +Eine funktionsfähige Konfiguration, die als Ausgangspunkt +für die Konfiguration des MOA SL Webservices dienen kann, +finden Sie unter <code>$MOA_SL_INST/conf/moa-sl/moa-sl.properties</code>. + </li> + + <li>Die Dateien <code>xalan.jar</code>, <code>xercesImpl.jar</code> +und <code>xmlParserAPIs.jar</code> aus dem Verzeichnis <code>$MOA_SL_INST/endorsed14</code> +müssen in das Tomcat-Verzeichnis <code>$CATALINA_HOME/common/endorsed</code> +kopiert werden. Sind gleichnamige Dateien dort bereits vorhanden, +müssen sie überschrieben werden. Die ggf. in diesem +Verzeichnis vorhandene Datei <code>xml-apis.jar</code> +muss gelöscht werden.</li> + + <li>Folgende <span class="term">System Properties</span> +für die <span class="term">Java Virtual Machine</span> +müssen bzw. können gesetzt werden. Am einfachsten +können diese <span class="term">System Properties</span> +beim Starten von Tomcat in der Umgebungsvariablen <code>CATALINA_OPTS</code> +in der Form <code>-D<name>=<wert></code> +übergeben werden. + <ul> + + <li id="klein"><code>at.gv.egovernment.moa.spss.slinterface.PropertiesLocation</code>: +Pfad und Name der zentralen Konfigurationsdatei für MOA SL. +Eine beispielhafte Konfigurationsdatei finden Sie unter <code>$MOA_SL_INST/conf/moa-sl/moa-sl.properties</code>. +Wird ein relativer Pfad angegeben, wird zuerst versucht, diesen relativ +zum Wurzelverzeichnis der Webapplikation (also <code>$CATALINA_HOME/webapps/moa-sl</code>) +zu interpretieren. Klappt das nicht, wird dann versucht, den relativen +Pfad relativ zum Startverzeichnis der <span class="term">Java +Virtual Machine</span> zu interpretieren. Diese <span class="term">System Property</span> muss jedenfalls +gesetzt werden.</li> + + <li id="klein"><code>log4j.configuration</code>: +URL der Log4j Konfigurationsdatei. Eine beispielhafte +Log4j-Konfiguration finden Sie unter <code>$MOA_SL_INST/conf/log4j/log4j.properties</code>. Wird eine +relative URL angegeben, wird diese als File-URL relativ zum +Startverzeichnis der <span class="term">Java Virtual +Machine</span> interpretiert. Ist diese System Property nicht +gesetzt, wird automatisch eine im Webarchiv unter <code>WEB-INF/classes</code> +enthaltene Default-Konfiguration herangezogen.</li> + + <li id="klein"><code>javax.net.ssl.trustStore</code>: +Pfad und Dateiname des <span class="term">Truststores</span> +für vertrauenswürdige SSL Client-Zertifikate +(optional; nur wenn kein Webserver vor Tomcat geschalten wird und SSL +Client-Authentisierung durchgeführt werden soll). Ein +relativer Pfad werden relativ zum Startverzeichnis der <span class="term">Java Virtual Machine</span> interpretiert.</li> + + <li id="klein"><code>javax.net.ssl.trustStorePassword</code>: +Passwort für den <span class="term">Truststore</span> +(optional; nur wenn kein Webserver vor Tomcat geschalten wird und SSL +Client-Authentisierung durchgeführt werden soll). </li> + + <li id="klein"><code>javax.net.ssl.trustStoreType</code>: +Truststore-Typ (optional; nur wenn kein Webserver vor Tomcat geschalten +wird und SSL Client-Authentisierung durchgeführt werden soll). +Je nach verwendetem Keystore-Typ muss <code>jks</code> (<span class="term">Java Key Store</span>) oder <code>pkcs12</code> +(PKCS#12-Datei) angegeben werden.</li> + + </ul> + </li> + </ul> - <h2><a name="installation_tomcatstartstop" id="installation_tomcatstartstop"></a>2.5 Starten und Stoppen von Tomcat</h2> - <h3><a name="installation_tomcatstartstop_windows" id="installation_tomcatstartstop_windows"></a>2.5.1 Unter Windows</h3> - <p>Das Verzeichnis <code>$MOA_SL_INST/conf/tomcat/win32</code> enthält Script-Dateien zum Starten und Stoppen von Tomcat. Vor der erstmaligen Verwendung der Scripts müssen in den ersten Zeilen die Umgebungsvariablen <code>JAVA_HOME</code> (Basisverzeichnis des eingesetzten J2SE SDK) und <code>CATALINA_HOME</code> (Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst werden. Evtl. müssen Sie auch noch die in den Script-Dateien gesetzten, in <a href="#webservice_basisinstallation_installation_spssdeploy">Abschnitt 2.4</a> besprochenen <span class="term">System Properties</span> anpassen. </p> - <h3><a name="webservice_basisinstallation_installation_tomcatstartstop_unix" id="webservice_basisinstallation_installation_tomcatstartstop_unix"></a>2.5.2 Unter Unix</h3> - <p>Zunächst müssen die in <a href="#webservice_basisinstallation_installation_spssdeploy">Abschnitt 2.4</a> besprochenen <span class="term">System Properties</span> mit Hilfe der Umgebungsvariablen <code>CATALINA_OPTS</code> gesetzt wrden. Die Datei <code>$MOA_SL_INST/tomcat/unix/moa-env.sh</code> enthält ein Beispiel dafür. Weiters müssen noch die Umgebungsvariablen <code>JAVA_HOME</code> (Basisverzeichnis des eingesetzten J2SE SDK) und <code>CATALINA_HOME</code> (Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst werden.</p> - <p>Nun kann Tomcat aus seinem Basisverzeichnis mit </p> + +<h2><a name="installation_tomcatstartstop" id="installation_tomcatstartstop"></a>2.5 Starten und +Stoppen von Tomcat</h2> + +<h3><a name="installation_tomcatstartstop_windows" id="installation_tomcatstartstop_windows"></a>2.5.1 +Unter Windows</h3> + +<p>Das Verzeichnis <code>$MOA_SL_INST/conf/tomcat/win32</code> +enthält Script-Dateien zum Starten und Stoppen von Tomcat. Vor +der erstmaligen Verwendung der Scripts müssen in den ersten +Zeilen die Umgebungsvariablen <code>JAVA_HOME</code> +(Basisverzeichnis des eingesetzten J2SE SDK) und <code>CATALINA_HOME</code> +(Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst +werden. Evtl. müssen Sie auch noch die in den Script-Dateien +gesetzten, in <a href="#installation_deploy">Abschnitt 2.4</a> +besprochenen <span class="term">System Properties</span> +anpassen. </p> + +<h3><a name="installation_tomcatstartstop_unix" id="installation_tomcatstartstop_unix"></a>2.5.2 Unter +Unix</h3> + +<p>Zunächst müssen die in <a href="#installation_deploy">Abschnitt 2.4</a> +besprochenen <span class="term">System Properties</span> +mit Hilfe der Umgebungsvariablen <code>CATALINA_OPTS</code> +gesetzt werden. Die Datei <code>$MOA_SL_INST/tomcat/unix/moa-env.sh</code> +enthält ein Beispiel dafür. Weiters müssen +noch die Umgebungsvariablen <code>JAVA_HOME</code> +(Basisverzeichnis des eingesetzten J2SE SDK) und <code>CATALINA_HOME</code> +(Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst +werden.</p> + +<p>Nun kann Tomcat aus seinem Basisverzeichnis mit </p> + <pre>bin/catalina.sh start</pre> + gestartet werden. Das Stoppen von Tomcat erfolgt analog mit <pre>bin/catalina.sh stop</pre> -<h3><a name="installation_tomcatstartstop_verify" id="installation_tomcatstartstop_verify"></a><span class="comment">2.5.3 Prüfen des erfolgreichen Starts </span></h3> - <p>Ein erfolgreicher Start des MOA SL Webservices ist an folgender Log-Meldung ersichtlich: </p> +<h3><a name="installation_tomcatstartstop_logging" id="installation_tomcatstartstop_logging"></a>2.5.3 +Logging </h3> - <pre>INFO | 18 10:09:45,155 | main | TID=startup NID=<null> MSG=MOA Konfiguration erfolgreich geladen -</pre> -<p>Bei leichten Fehlern in der Konfiguration geben <code>WARN</code> Log-Meldungen unmittelbar davor Aufschluss über fehlerhafte Konfigurations-Einträge. - Nach dem Starten von Tomcat steht das MOA SP/SS Webservice für die Server-Signatur und Signatur-Prüfung unter den Endpunkten </p> -<pre>http://<host>:<port>/moa-spss/services/SignatureCreation -</pre> -<p>bzw. +<p>Das MOA SL Webservice verwendet <a href="http://logging.apache.org/log4j/">Apache Log4j</a> für die +Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Log4j +bietet zahlreiche Konfigurationsmöglichkeiten, die +ausführlich im <a href="http://logging.apache.org/log4j/">Apache +Log4j</a> +Handbuch beschrieben sind. Unter anderem gibt es die +Möglichkeit, folgende Einstellungen vorzunehmen: </p> -<pre>http://<host>:<port>/moa-spss/services/SignatureVerification -</pre> -<p>zur Verfügung. Die Verfügbarkeit des Services können Sie einfach überprüfen, indem Sie die Endpunkte mit einem Web-Browser aufgerufen; dies sollte nach erfolgreichem Start zur Anzeige einer Informationsseite führen. </p> -<p>Konnte das MOA SP/SS Webservice nicht ordnungsgemäß gestartet werden, führt das zu folgender Log-Meldung:</p> -<pre>FATAL | 18 10:17:03,475 | main | TID=startup NID=<null> <br> MSG=Fehler beim Lesen der MOA Konfiguration: das Service steht nicht zur Verfügung -</pre> -In diesem Fall geben die <code>WARN</code> bzw. <code>ERROR</code> Log-Meldungen unmittelbar davor Aufschluss über den genaueren Grund. -<h3><a name="webservice_basisinstallation_logging" id="webservice_basisinstallation_logging"></a>2.1.3 Logging </h3> -<p>Das MOA SL Webservice verwendet <a href="http://logging.apache.org/log4j/">Apache Log4j</a><a href="#referenziertesoftware"></a> für die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Log4j bietet zahlreiche Konfigurationsmöglichkeiten, die ausführlich im <a href="http://logging.apache.org/log4j/">Apache Log4j</a><a href="#referenziertesoftware"></a> Handbuch beschrieben sind. Unter anderem gibt es die Möglichkeit, folgende Einstellungen vorzunehmen: + <ul> - <li id="klein"> - <p>Das verwendete Log-Level (<code>DEBUG</code>, <code>INFO</code>, <code>WARN</code>, <code>ERROR</code>, <code>FATAL</code>);</p> - </li> - <li id="klein"> - <p>Name und maximale Größe der Log-Datei(en);</p> - </li> - <li id="klein"> - <p>Das Aussehen der Log-Einträge.</p> - </li> + + <li id="klein"> + <p>Das verwendete Log-Level (<code>DEBUG</code>, <code>INFO</code>, + <code>WARN</code>, <code>ERROR</code>, <code>FATAL</code>);</p> + + </li> + + <li id="klein"> + <p>Name und maximale Größe der +Log-Datei(en);</p> + + </li> + + <li id="klein"> + <p>Das Aussehen der Log-Einträge.</p> + + </li> + </ul> - <p>Das MOA SL Webservice verwendet folgende Log-Hierarchien: </p> - <ul> - <li> - <p><code>moa.spss.server</code> für alle Log-Meldungen aus dem MOA/SPSS Webservice; </p> - </li> - <li> - <p><code>iaik.server</code> für alle Log-Meldungen aus den SIC/IAIK Kryptographie-Modulen. </p> - </li> + +<p>Das MOA SL Webservice verwendet für alle +Logeinträge die Log-Hierarchie <code>slinterface</code>. +Für die einzelnen Pakete des MOA SL Webservices werden davon +abgeleitete Sub-Hierarchien eingesetzt, z.B. <code>slinterface.xmlparser</code>, +<code>slinterface.beans</code> oder <code>slinterface.filters</code>.</p> + +<p>Eine für MOA SL passende Konfigurationsdatei +für Log4j finden Sie unter <code>$MOA_SL_INST/conf/log4j/log4j.properties</code>. Wird diese +Datei als Logging-Konfiguration verwendet, so werden alle Log-Meldungen +sowohl in die Konsole, als auch in die Datei <code>$CATALINA_HOME/logs/moa-sl.log</code> +geschrieben. </p> + +<h4><a name="webservice_basisinstallation_logging_format" id="webservice_basisinstallation_logging_format"></a>2.5.3.1 +Format der Log-Meldungen</h4> + +<p> Anhand einer konkreten Log-Meldung wird das Format der MOA SL +Log-Meldungen erläutert: </p> + +<pre>INFO | 10 15:58:45,531 | slinterface.listeners | main | <br> Web application initialization succeeded..</pre> + +<p> Der Wert <code>INFO</code> besagt, dass die +Log-Meldung im Log-Level <code>INFO</code> entstanden ist. +Folgende Log-Levels existieren:</p> + +<ul> + + <li> + <p><code>DEBUG</code>: Log-Meldungen im Log-Level + <code>DEBUG</code> geben Auskunft über die +innere Arbeitsweise des Systems. Sie sind hauptsächlich +für Entwickler interessant.</p> + + </li> + + <li> + <p><code>INFO</code>: Diese Log-Meldungen geben +Status-Informationen über den Ablauf des Webservices, wie z.B. +über das Einlangen einer neuen Anfrage.</p> + + </li> + + <li> + <p><code>WARN</code>: Bei der Ausführung +einer Anfrage sind leichte Fehler aufgetreten. Der Ablauf des +Webservices ist nicht weiter beeinträchtigt.</p> + + </li> + + <li> + <p><code>ERROR</code>: Die Ausführung +einer Anfrage musste abgebrochen werden. Das Webservice ist davon nicht +beeinträchtigt. </p> + + </li> + + <li> + <p><code>FATAL</code>: Es ist ein Fehler +aufgetreten, der den weiteren Betrieb des Webservices nicht mehr +erlaubt.</p> + + </li> + </ul> - <p>Eine für MOA SP/SS passende Konfigurationsdatei für Log4j finden Sie <a href="../../conf/moa-spss/log4j.properties">hier</a>. Wird diese Datei als Logging-Konfiguration verwendet, so werden alle Log-Meldungen sowohl in die Konsole, als auch in die Datei <code>moa-spss.log</code> geschrieben. </p> - <h4><a name="webservice_basisinstallation_logging_format" id="webservice_basisinstallation_logging_format"></a>2.1.3.1 Format der Log-Meldungen</h4> - <p> Anhand einer konkreten Log-Meldung wird das Format der MOA SP/SS Log-Meldungen erläutert: </p> - <pre>INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=node1 - MSG=Starte neue Transaktion: TID=1049225059594-100, Service=SignatureVerification -</pre> -<p> Der Wert <code>INFO</code> besagt, dass die Log-Meldung im Log-Level <code>INFO</code> entstanden ist. Folgende Log-Levels existieren:</p> - <ul> - <li> - <p><code>DEBUG</code>: Log-Meldungen im Log-Level <code>DEBUG</code> geben Auskunft über die innere Arbeitsweise des Systems. Sie sind hauptsächlich für Entwickler interessant.</p> - </li> - <li> - <p><code>INFO</code>: Diese Log-Meldungen geben Status-Informationen über den Ablauf des Webservices, wie z.B. über das Einlangen einer neuen Anfrage.</p> - </li> - <li> - <p><code>WARN</code>: Bei der Ausführung einer Anfrage sind leichte Fehler aufgetreten. Der Ablauf des Webservices ist nicht weiter beeinträchtigt.</p> - </li> - <li> - <p><code>ERROR</code>: Die Ausführung einer Anfrage musste abgebrochen werden. Das Webservice ist davon nicht beeinträchtigt. </p> - </li> - <li> - <p><code>FATAL</code>: Es ist ein Fehler aufgetreten, der den weiteren Betrieb des Webservices nicht mehr erlaubt.</p> - </li> - </ul> - <p>Der nächste Wert <code>01 21:25:26,540</code> gibt den Zeitpunkt an, zu dem die Log-Meldung generiert wurde (in diesem Fall den 1. Tag im aktuellen Monat, sowie die genaue Uhrzeit). </p> - <p> Der Wert <code>Thread-3</code> bezeichnet den Thread, von dem die Anfrage bearbeitet wird.</p> - <p> Der Wert von <code>TID</code> gibt die für jede Anfrage eindeutige Transaktions-ID an. Log-Meldungen, die bei der Abarbeitung dieser Anfrage geschrieben werden, enthalten alle einen Hinweis auf die entsprechende Transaktions-ID.</p> - <p> Der Wert von <code>NID</code> gibt den Rechner-Knoten an, auf dem das MOA SP/SS Webservice läuft (bei <code>NID=<null></code> ist dieser Wert nicht konfiguriert, vergleiche Abschnitt <a href="#webservice_basisinstallation_installation_spssdeploy">2.1.2.3</a>).</p> - <p> Der Rest der Zeile einer Log-Meldung ist der eigentliche Text, mit dem das System bestimmte Informationen anzeigt. Im Fehlerfall ist häufig ein Java Stack-Trace angefügt, der eine genauere Ursachen-Forschung ermöglicht.</p> - <h4> <a name="webservice_basisinstallation_logging_messages" id="webservice_basisinstallation_logging_messages"></a>2.1.3.2 Wichtige Log-Meldungen</h4> - <p> Neben den im Abschnitt <a href="#webservice_basisinstallation_installation_tomcatstartstop_verify">2.1.2.4.3</a> beschriebenen Log-Meldungen, die anzeigen, ob das Service ordnungsgemäß gestartet wurde, geben nachfolgenden Log-Meldungen Aufschluss über die Abarbeitung von Anfragen. </p> - <p>Die Entgegennahme einer Anfrage wird angezeigt durch: - - </p> - <pre>INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null> - MSG=Starte neue Transaktion: TID=1049225059594-100, Service=SignatureVerification -INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null> - MSG=Aufruf von Adresse=127.0.0.1 -INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null> - MSG=Client-Zertifikat nicht verfügbar</pre> - <p> Die dritte Log-Meldung besagt, dass für die Abarbeitung dieser Anfrage kein Client-Zertifikat verfügbar ist (entweder, weil die Anfrage über HTTP eingelangt ist, oder weil die SSL Client-Authentisierung nicht eingeschaltet ist). Bei erfolgreicher SSL Client-Authentisierung, gibt beispielsweise folgende Log-Meldung Informationen über das Client-Zertifikat aus: - <pre>INFO | 12 13:58:08,772 | Thread-10 | TID=1045054687159-2 NID=<null> - MSG=Client-Zertifikat: Subject=CN=Testuser, OU=MOA, O=BRZ, L=Vienna, ST=Vienna, C=AT, - Serial=1.039.104.204, Issuer=CN=TestCA, OU=MOA, O=BRZ, L=Vienna, ST=Vienna, C=AT</pre> - <p>Eine erfolgreich abgearbeitete Anfrage wird angezeigt durch: - </p> - <pre>INFO | 01 21:25:53,168 | Thread-3 | TID=1049225059594-106 NID=<null> - MSG=Anfrage erfolgreich abgearbeitet</pre> - <p>Ein Fehler beim Abarbeiten der Anfrage wird angezeigt durch: </p> - <pre>INFO | 01 21:25:27,642 | Thread-3 | TID=1049225059594-100 NID=<null> - MSG=Fehler beim Abarbeiten der Anfrage</pre> - <div id="block"> - <p>In diesem Fall gibt der mitgeloggte Stacktrace Auskunft über die Art des Fehlers. Der Aufrufer des MOA SP/SS Webservices bekommt einen Fehlercode sowie eine kurze Beschreibung des Fehlers als Antwort zurück. </p> - <p> Die Tatsächlich übertragenen Anfragen bzw. Antworten werden aus Effizienzgründen nur im Log-Level <code>DEBUG</code> angezeigt. </p> - </div> - <h2><a name="webservice_erweiterungsmöglichkeiten" id="webservice_erweiterungsmöglichkeiten"></a>2.2 Erweiterungsmöglichkeiten</h2> -<p>Ausgehend von der <a href="#webservice_basisinstallation">Basisinstallation</a> können die optionalen Erweiterungen, die in den nachfolgenden Abschnitten beschrieben werden, unabhängig und in beliebiger Kombination aufgesetzt werden.</p> - <h3><a name="webservice_erweiterungsmöglichkeiten_webserver" id="webservice_erweiterungsmöglichkeiten_webserver"></a>2.2.1 Vorgeschalteter Webserver</h3> - <h4><a name="webservice_erweiterungsmöglichkeiten_webserver_iis" id="webservice_erweiterungsmöglichkeiten_webserver_iis"></a>2.2.1.1 Microsoft Internet Information Server (MS IIS) </h4> - <p>Den MOA SP/SS Webservices kann optional ein MS IIS vorgeschaltet sein. In diesem Fall übernimmt der MS IIS die HTTP- bzw. HTTPS-Kommunikation mit dem Aufrufer des Webservices. Die Kommunikation zwischen MS IIS und dem in Tomcat eingerichteten MOA SP/SS Webservice wird durch <span class="term">Jakarta mod_jk</span> durchgeführt. Die angeführten Konfigurationsschritte gehen von einer MS IIS Standard-Installation aus.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_iis_jk" id="webservice_erweiterungsmöglichkeiten_webserver_iis_jk"></a>2.2.1.1.1 Konfiguration von <span class="term">Jakarta mod_jk</span> im MS IIS</h5> - <p> Für die Kommunikation des MS IIS mit dem im Tomcat eingerichteten MOA SP/SS Webservice wird das <span class="term">ISAPI</span>-Modul von <span class="term">Jakarta mod_jk</span> im MS IIS installiert und konfiguriert. Eine detaillierte Installations- und Konfigurationsanleitung gibt das <span class="term"><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/howto/iis.html" target="_blank">mod_jk</a></span><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/jk/iishowto.html"> IIS HowTo</a>. Beispiele für <code>workers.properties</code> und <code>uriworkermap.properties</code> Dateien liegen im Verzeichnis <code>$MOA_SL_INST/tomcat</code> bei.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_iis_tomcat" id="webservice_erweiterungsmöglichkeiten_webserver_iis_tomcat"></a>2.2.1.1.2 Konfiguration von Tomcat</h5> - <p> Damit Tomcat die Aufrufe entgegennehmen kann, die von MS IIS mittels <span class="term">Jakarta mod_jk</span> weiterleitet werden, muss in <code>$CATALINA_HOME/conf/server.xml</code> der <span class="term">AJP 1.3 Connector</span> aktiviert werden. Im Gegenzug können die Konnektoren für HTTP und HTTPS deaktiviert werden. Das geschieht am einfachsten durch Ein- bzw. Auskommentieren der entsprechenden <code>Connector</code> Konfigurations-Elemente in dieser Datei. Die Datei <code>$MOA_SL_INST/tomcat/server.mod_jk.xml</code> enthält eine Konfiguration, die ausschließlich den Port für den <span class="term">AJP 1.3 Connector</span> offen lässt.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_iis_ssl" id="webservice_erweiterungsmöglichkeiten_webserver_iis_ssl"></a>2.2.1.1.3 Konfiguration von SSL</h5> - <p> Die Dokumentation zum Einrichten von SSL auf dem MS IIS steht nach Installation des IIS unter http://localhost/iisHelp/ oder aber auch auf den Websiten vo Mircrosoft zur Verfügung. </p> - <h4><a name="webservice_erweiterungsmöglichkeiten_webserver_apache" id="webservice_erweiterungsmöglichkeiten_webserver_apache"></a>2.2.1.2 Apache</h4> - <p>Den MOA SP/SS Webservices kann ein Apache Webserver vorgeschaltet sein. Das Prinzip funktioniert wie bei MS IIS, auch hier wird <span class="term">Jakarta mod_jk</span> für die Kommunikation zwischen Webserver und Tomcat eingesetzt. Die angeführten Konfigurationsschritte gehen von einer Standard-Installation des Apache Webservers aus und sind ident für die Versionen 1.3.x und 2.0.x.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_apache_jk" id="webservice_erweiterungsmöglichkeiten_webserver_apache_jk"></a>2.2.1.2.1 Konfiguration von <span class="term">Jakarta mod_jk</span> im Apache </h5> - <p>Um das MOA-SPSS Webservice hinter einem Apache Webserver zu betreiben, ist die Konfiguration des Apache-Moduls <span class="term">mod_jk</span> erforderlich. Eine detaillierte Installations- und Konfigurationsanleitung gibt das <span class="term"><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/howto/apache.html" target="_blank">mod_jk</a></span><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/howto/apache.html" target="_blank"> Apache HowTo</a>. Ein Beispiel für eine <code>workers.properties</code> Datei liegt im Verzeichnis <code>$MOA_SL_INST/tomcat</code> bei.</p> - <p>Um das MOA SP/SS Webservice dem Apache Webserver bekannt zu machen, sind zumindest folgende Einträge im globalen Kontext der Apache-Konfigurationsdatei notwendig:</p> - <pre>LoadModule jk_module /usr/lib/apache/mod_jk.so<br>AddModule jk_module<br>JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories<br>JkWorkersFile conf/workers.properties <br>JkMount /moa-spss/* moaworker </pre> - <p>Die Pfad- und Dateinamen können je nach existierender Apache Installation geringfügig variieren.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_apache_tomcat" id="webservice_erweiterungsmöglichkeiten_webserver_apache_tomcat"></a>2.2.1.2.2 Konfiguration von Tomcat</h5> - <p>Die Konfiguration von Tomcat ist analog zu Abschnitt <a href="#webservice_erweiterungsmöglichkeiten_webserver_iis_tomcat">2.2.1.1.2</a> durchzuführen.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_apache_ssl" id="webservice_erweiterungsmöglichkeiten_webserver_apache_ssl"></a>2.2.1.2.2 Konfiguration von SSL mit <span class="term">mod_SSL</span></h5> - <p>Apache kann in Verbindung mit <span class="term">mod_SSL</span> als SSL-Endpunkt für das MOA SP/SS Webservice fungieren. In diesem Fall entfällt die SSL-Konfiguration in Tomcat, da Apache und Tomcat auch im Fall von SSL Daten via <span class="term">mod_jk</span> austauschen. Eine detaillierte Installations- und Konfigurationsanleitung enthält die <a href="http://www.modssl.org/docs/" target="_blank">Online-Dokumentation</a> von <span class="term">mod_SSL</span>.</p> - <p>Bei der Verwendung von Client-Authentisierung muss darauf geachtet werden, dass <span class="term">mod_ssl</span> die HTTP-Header mit den Informationen über das Client-Zertifikat exportiert. Dies wird durch Angabe der folgenden Option in der Apache-Konfiguration erreicht: </p> - <pre>SSLOptions +ExportCertData +StdEnvVars</pre> - <p>Je nach vorhandener SSL-Konfiguration des Apache Webservers kann diese Option im globalen Kontext, im Kontext des Virtual Hosts oder im Kontexts eines Verzeichnisses spezifiziert werden.</p> - <h3><a name="webservice_erweiterungsmöglichkeiten_datenbank" id="webservice_erweiterungsmöglichkeiten_datenbank"></a>2.2.2 Datenbank</h3> - <p>Die MOA SP/SS Module können eine Datenbank zum Archivieren von Certificate Revocation Lists (CRLs), sowie zum Abspeichern von Log-Meldungen verwenden. In beiden Fällen wird eine installierte und konfigurierte Datenbank vorausgesetzt.</p> - <h4><a name="webservice_erweiterungsmöglichkeiten_datenbank_postgresql" id="webservice_erweiterungsmöglichkeiten_datenbank_postgresql"></a>2.2.2.1 PostgreSQL</h4> - <p>Eine detaillierte Übersicht über die Installation und Konfiguration von <span class="term">PostgreSQL</span> gibt die <a href="http://techdocs.postgresql.org/" target="_blank">Online-Dokumentation</a>. </p> - <p class="term">Bitte beachten Sie: Eine Möglichkeit, PostgreSQL unter MS Windows zu installieren, besteht darin, <a href="http://sources.redhat.com/cygwin/" target="_blank">Cygwin</a> mit dem PostgreSQL-Package zu installieren. Alternative Installationsvarianten werden auf <a href="http://techdocs.postgresql.org/guides/Windows" target="_blank">dieser Seite</a> angeführt.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_benutzer" id="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_benutzer"></a>2.2.2.1.1 Anlegen eines Benutzers und einer Datenbank für MOA SP/SS</h5> - <p>Damit die MOA SP/SS Module eine Verbindung zu <span class="term">PostgreSQL</span> aufbauen kann, müssen der Name eines <span class="term">PostgreSQL</span>-Benutzers und einer <span class="term">PostgreSQL</span>-Datenbank bekannt sein. Sollten diese nicht vorhanden sein, kann mit folgenden Kommandos ein Benutzer namens <code>moa</code> und eine Datenbank namens <code>moadb</code> angelegt werden:</p> - <pre>createuser -U postgres -d -A -P moa<br>createdb -U moa moadb</pre> - <p>Da die MOA SP/SS Module über <span class="term">JDBC</span> mit der Datenbank kommunizieren, ist in der Folge die Angabe einer <span class="term">JDBC</span>-URL notwendig, welche die Verbindungsparameter enthält. Wurden der Benutzer und die Datenbank wie im obigen Beispiel angelegt, ist folgende <span class="term">JDBC</span>-URL anzugeben (Annahme: als Passwort für den Benutzer moa wurde moapass gewählt):</p> - <pre> jdbc:postgresql://host/moadb?user=moa&password=moapass</pre> - <p>Die Zeichen <code>jdbc:postgresql://</code> sind unveränderliche Bestandteile einer <span class="term">PostgreSQL</span> <span class="term">JDBC</span>-URL. <code>host</code> gibt den Rechner an, auf dem <span class="term">PostgreSQL</span> läuft. <code>moadb</code> identifiziert den Namen der Datenbank. Über die Parameter <code>user=</code> und <code>pass=</code> werden Benutzername und Passwort für den DB-User bekanntgegeben.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_crls" id="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_crls"></a>2.2.2.1.2 Archivierung von CRLs</h5> - <p>Zum Archivieren von CRLs müssen in der MOA SP/SS Konfigurationsdatei die Kinder des Elements <code>cfg:MOAConfiguration/cfg:SignatureVerification/cfg:CertificateValidation/cfg:RevocationChecking/cfg:Archiving</code> entsprechend - konfiguriert werden: </p> - <ul> - <li><code>cfg:EnableArchiving</code> muss auf den Wert <code>true</code> gesetzt sein;</li> - <li><code>cfg:ArchiveDuration</code> muss als nichtnegative Ganzzahl die maximale Archivierungsdauer in Tagen enthalten;</li> - <li><code>cfg:Archive</code> muss genau ein Element <code>cfg:DatabaseArchive</code> enthalten, das wiederum aus zwei Elementen - bestehen muss: - <ul> - <li><code>cfg:JDBCURL</code> muss eine gültige JDBC-URL enthalten, mit der auf die Datenbank zur Archivierung - zugegriffen werden kann (<span class="remark">Hinweis: da es sich hierbei um einen Eintrag - in eine XML-Datei handelt, muss das Zeichen <code>&</code> in der in Abschnitt <a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql_benutzer">2.2.2.1.1</a> gezeigten - JDBC-URL - durch die Zeichenfolge <code>&amp;</code> ersetzt werden.</span>);</li> - <li><code>cfg:JDBCDriverClassName</code> muss den vollständig qualifizierten Java-Klassennamen des JDBC-Treibers - enthalten. </li> - </ul> - </li> - </ul> - <p>Vergleiche auch Abschnitt <a href="../config/config.html#konfigurationsparameter_sp_certificatevalidation_revocationchecking_archiving">2.3.1.3.4</a> im - Konfigurationshandbuch.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_logging" id="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_logging"></a>2.2.2.1.3 Logging</h5> - <p>Für das Logging in eine <span class="term">PostgreSQL</span> Datenbank mittels <span class="term">Jakarta Log4j</span> muss zunächst eine Tabelle für die Log-Meldungen angelegt werden. Dies kann mit folgendem SQL-Statement erreicht werden:</p> - <pre> create table spss_log (log_time timestamp, log_level varchar(5), log_msg text);</pre> - <p>Damit <span class="term">Log4j</span> die Log-Meldungen in diese Datenbanktabelle schreibt, muss die <span class="term">Log4j</span>-Konfiguration adaptiert werden. Die mit MOA SP/SS mitgelieferte, beispielhafte <a href="../../conf/moa-spss/log4j.properties">Log4j-Konfiguration</a> enthält bereits die notwendigen Einträge für das Logging in eine PostgreSQL Datenbank, die jedoch standardmäßig ausgeschaltet sind. </p> - <p>Wie beim Caching von CRLs ist auch hier die Angabe einer <span class="term">JDBC</span>-URL notwendig, damit die MOA SP/SS Module eine Verbindung zur Datenbank aufnehmen können.</p> - <p><span class="remark">Bitte beachten Sie: Bei Tests hat sich das Logging in eine Datenbank mit Jakarta Log4j als Performance-Engpass herausgestellt. Es wird deshalb empfohlen, dieses Feature mit Bedacht einzusetzen.</span></p> - <h4><a name="webservice_erweiterungsmöglichkeiten_datenbank_andere" id="webservice_erweiterungsmöglichkeiten_datenbank_andere"></a>2.2.2.2 Andere Datenbanken </h4> - <p>Über die generische Anbindung JDBC können auch andere Datenbanken für die Archivierung von CRLs bzw. für die Speicherung der Log-Meldungen eingesetzt werden. Hinweise zu bestimmten Datenbanken finden Sie in den <a href="../faq/faq.html">FAQ</a>. </p> - <p>Die in Abschnitt <a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql">2.2.2.1</a> gemachten Angaben zu Archivierung von CRLs bzw. zur Speicherung von Log-Meldungen gelten sinngemäß. </p> - <h3><a name="webservice_erweiterungsmöglichkeiten_hsm" id="webservice_erweiterungsmöglichkeiten_hsm"></a>2.2.3 Hardware Security Module (HSM)</h3> - <p>MOA SS kann für die Erstellung von Signaturen auf die Dienste eines HSM zurückgreifen. Voraussetzung dafür ist, dass für das HSM eine Implementierung der Schnittstelle PCKS#11 (PKCS#11-Bibliothek) angeboten wird. </p> - <p>Für die Einbindung des HSM in MOA SS müssen zunächst die Bibliotheken aus <code>$MOA_SL_INST/pkcs11</code> in ein beliebiges Verzeichnis kopiert werden, welches dann in den Libray-Pfad des jeweiligen Betriebssystems aufgenommen werden muss (Windows: Umgebungsvariable <code>PATH</code>; Linux: Umgebungsvariable <code>LD_LIBRARY_PATH</code>). </p> - <p>Der Name der für das HSM spezifischen PKCS#11-Bibliothek muss in der Konfigurationsdatei eingetragen werden (vergleiche Abschnitt <a href="../config/config.html#konfigurationsparameter_ss_keymodules_hardwarekeymodule">2.2.1.1</a> des Konfigurationshandbuchs).</p> - <h1><a name="klassenbibliothek"></a>3 Klassenbibliothek</h1> - <p>Dieser Abschnitt beschreibt die Verwendung von MOA SP/SS als Klassenbibliothek. Im ersten Unterkapitel wird eine minimale Basisinstallation beschrieben. Das zweite Unterkapitel zeigt eine Reihe von optionalen Erweiterungsmöglichkeiten auf.</p> - <h2><a name="klassenbibliothek_basisinstallation" id="klassenbibliothek_basisinstallation"></a>3.1 Basisinstallation</h2> - <h3><a name="klassenbibliothek_basisinstallation_einfuehrung" id="klassenbibliothek_basisinstallation_einfuehrung"></a>3.1.1 Einführung </h3> - <p>Die Basisinstallation der Klassenbibliothek stellt einerseits die minimalen Anforderungen für den Einsatz von MOA SP/SS als Klassenbibliothek dar, andererseits dient sie als Ausgangspunkt für optionale Erweiterungsmöglichkeiten.</p> - <p> Folgende Software ist Voraussetzung für die Basisinstallation der Klassenbibliothek: </p> - <ul> - <li><a href="#referenziertesoftware">J2SE 1.3.1 JRE</a> oder <a href="#referenziertesoftware">J2SE 1.4.2 JRE</a> oder <a href="#referenziertesoftware">J2SE 5.0 JRE</a> </li> - </ul> - <h3><a name="klassenbibliothek_basisinstallation_vorbereitung" id="klassenbibliothek_basisinstallation_vorbereitung"></a>3.1.2 Vorbereitung </h3> - <p>Die folgenden Schritte dienen der Vorbereitung der Installation.</p> - <dl> - <dt>Installation von J2SE SDK</dt> - <dd>Installieren Sie <a href="#referenziertesoftware">J2SE 1.3.1 SDK</a> oder <a href="#referenziertesoftware">J2SE 1.4.2 SDK</a> oder <a href="#referenziertesoftware">J2SE 5.0 SDK</a> in ein beliebiges Verzeichnis. Wir empfehlen die Installation von <a href="#referenziertesoftware">J2SE 5.0 SDK</a>. Das Wurzelverzeichnis der J2SE SDK Installation wird im weiteren Verlauf als <code>$JAVA_HOME</code> bezeichnet. </dd> - <dt>Entpacken der MOA SP/SS Klassenbibliotheks-Distribution</dt> - <dd> Entpacken Sie die Datei <code>moa-spss-1.2.x-lib.zip</code> in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als <code>$MOA_SL_INST</code> bezeichnet. </dd> - <dt>Installation der Krypographiebibliotheken von SIC/IAIK</dt> - <dd> - <p>Die Installation der Kryptographiebibliotheken von <a href="http://jce.iaik.tugraz.at/" target="_blank">SIC/IAIK</a> ist abhängig vom eingesetzten J2SE SDK:</p> - <dl> - <dt>J2SE 1.3.1 SDK</dt> - <dd>Kopieren Sie alle Dateien aus dem Verzeichnis <code>$MOA_SL_INST/ext13</code> in das Verzeichnis <code>$JAVA_HOME/jre/lib/ext</code>.</dd> - <dt>J2SE 1.4.2 SDK oder JSE 5.0 SDK </dt> - <dd>Kopieren Sie alle Dateien aus dem Verzeichnis <code>$MOA_SL_INST/ext14</code> in das Verzeichnis <code>$JAVA_HOME/jre/lib/ext</code>. Zusätzlich müssen Sie die Rechtedateien Ihres J2SE 1.4.2 SDK bzw. J2SE 5.0 SDK austauschen. Laden Sie dazu die <span class="term">Unlimited Strength Jurisdiction Policy Files</span> von der <a href="http://java.sun.com/j2se/1.4.2/download.html" target="_blank">J2SE 1.4.2 SDK Downloadseite</a> bzw. <a href="http://java.sun.com/j2se/1.5.0/download.html">J2SE 5.0 SDK Downloadseite</a> und folgen Sie der darin enthaltenen Installationsanweisung. </dd> - </dl> - </dd> - </dl> - <h3><a name="klassenbibliothek_basisinstallation_verwendung" id="klassenbibliothek_basisinstallation_verwendung"></a>3.1.3 Verwendung</h3> - <p> Um die MOA SP/SS Klassenbibliothek in einer Applikation verwenden zu können, müssen die mit MOA SP/SS ausgelieferten Bibliotheken in den Java Klassenpfad der Applikation eingebunden werden. </p> - <p>Die nachfolgende Tabelle listet diese Klassenbibliotheken auf; die Einträge in der Spalte Dateien sind relativ zum Verzeichnis <code>$MOA_SL_INST</code> zu interpretieren.</p> + +<p>Der nächste Wert <code>10 15:58:45,531</code> +gibt den Zeitpunkt an, zu dem die Log-Meldung generiert wurde (in +diesem Fall den 10. Tag im aktuellen Monat, sowie die genaue Uhrzeit). </p> + +<p>Der Wert <code>slinterface.listeners</code> gibt +die Log-Hierarchie an, aus der die Log-Meldung stammt. </p> + +<p>Der Wert <code>main</code> bezeichnet den Thread, +aus der die Log-Meldung stammt. </p> + +<p>Der Rest der Zeile einer Log-Meldung ist der eigentliche Text, +mit dem das System bestimmte Informationen anzeigt. Im Fehlerfall ist +häufig ein Java Stack-Trace angefügt, der eine +genauere Ursachen-Forschung ermöglicht.</p> + +<h3><a name="installation_tomcatstartstop_verify" id="installation_tomcatstartstop_verify"></a>2.5.4 +Prüfen des erfolgreichen Starts </h3> + +<p>Ein erfolgreicher Start des MOA SL Webservices ist an +folgender Log-Meldung ersichtlich: </p> + +<pre>INFO | 10 15:58:45,531 | slinterface.listeners | main | <br> Web application initialization succeeded..</pre> + +<p>Konnte das MOA SL Webservice nicht +ordnungsgemäß gestartet werden, führt das +zu folgender Log-Meldung:</p> + +<pre>FATAL | 18 10:17:03,475 | main | TID=startup NID=<null> <br> Web application initialization failed.<br></pre> + +<p>In diesem Fall geben die<code> </code>Log-Meldungen +unmittelbar davor Aufschluss über den genaueren Grund. </p> + +<p>Fehlermeldungen während der Initialisierung des +XML-Parsers, die wie nachfolgend dargestellt aussehen, können +ignoriert werden. Sie resultieren aus einem Bug im eingesetzten +XML-Parser Apache Xerces in der Version 2.6.2. </p> + +<pre>[Error] xhtml-attribs-1.xsd:<em>xx</em>:<em>xx</em>: src-attribute_group.3: <br> Circular definitions detected for attribute group '<em>xxx</em>'. <br> Recursively following attribute group references eventually leads back to itself.<br>[Error] xhtml-attribs-1.xsd:<em>xx</em>:<em>xx</em>: src-redefine.7.2.1: <br> No attributeGroup in the redefined schema has a name matching '<em>xx</em>'.</pre> + +<h1><a name="konfiguration" id="konfiguration"></a>3 +Konfiguration</h1> + +<h2><a name="konfiguration_konfigurationsdatei" id="konfiguration_konfigurationsdatei"></a>3.1 +Zentrale Konfigurationsdatei</h2> + +<p>Alle Konfigurationsparameter von MOA SL mit Ausnahme des +Layouts für den Prüfbericht (siehe Abschnitt <a href="#konfiguration_layout">3.2</a>) sind in einer +zentralen Konfigurationsdatei zusammengefasst. Eine beispielhafte +Konfigurationsdatei finden Sie unter <code>$MOA_SL_INST/conf/moa-sl/moa-sl.properties</code>. +Für Hinweise, wie Sie dem MOA SL Webservice mitteilen, welche +Konfigurationsdatei es verwenden soll, siehe Abschnitt <a href="#installation_deploy">2.4</a>. </p> + +<p>In den folgenden Abschnitten werden die einzelnen +Konfigurationsparameter der zentralen Konfigurationsdatei im Detail +besprochen. Die meisten Konfigurationsparameter werden leichter +verständlich, wenn Sie zunächst<span style="font-style: italic;"> </span>das <a href="../system/system.html">Systemhandbuch<span class="comment"></span></a> lesen. Dort werden +der gesamte Ablauf eines Signaturprüfvorgangs in MOA SL sowie +die daran beteiligten Komponenten erklärt. </p> + +<p>Die Konfigurationsdatei ist als <span class="term">Java +Properties</span> Datei aufgebaut, d. h. jede Zeile +enthält den Namen sowie den Wert des jeweiligen +Konfigurationsparameters in der Form <code>name=wert</code>. +Details zum Aufbau einer <span class="term">Java +Properties</span> Datei finden Sie in der API-Dokumentation zu +Ihrem Java JDK, beispielsweise <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html">hier</a>. +</p> + +<h3><a name="konfiguration_konfigurationsdatei_schemata" id="konfiguration_konfigurationsdatei_schemata"></a>3.1.1 +XML-Schemata für Request- und Response-Validierung</h3> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>location.schema.sl</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Mit diesem Konfigurationsparameter wird MOA SL +mitgeteilt, wo es das XML-Schema für die Validierung eines +eingehenden Signaturprüfungsrequests nach Security-Layer V1.2 +findet. </p> + + <p>Der Konfigurationsparameter muss als Wert einen Pfad +enthalten, der mit <code>/</code> beginnt, und der von MOA +SL als relativ zum <span class="term">Context Root</span> +der Webapplikation interpretiert wird.</p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>/WEB-INF/classes/resources/schemas/Core.20031231.xsd</code></p> + + </td> + + </tr> + + </tbody> +</table> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>location.schema.moa</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Mit diesem Konfigurationsparameter wird MOA SL +mitgeteilt, wo es das XML-Schema für die Validierung eines von +MOA SP empfangenen Signaturprüfungsresponses nach MOA SPSS +V1.3 findet. </p> + + <p>Der Konfigurationsparameter muss als Wert einen Pfad +enthalten, der mit <code>/</code> beginnt, und der von MOA +SL als relativ zum <span class="term">Context Root</span> +der Webapplikation interpretiert wird.</p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>/WEB-INF/classes/resources/schemas/MOA-SPSS-1.3.xsd</code></p> + + </td> + + </tr> + + </tbody> +</table> + +<h3><a name="konfiguration_konfigurationsdatei_arbeitsverzeichnis" id="konfiguration_konfigurationsdatei_arbeitsverzeichnis"></a>3.1.2 +Arbeitsverzeichnis</h3> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>location.tempdir</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Mit diesem Konfigurationsparameter wird MOA SL +mitgeteilt, wo es das Arbeitsverzeichnis zum Ablegen der von einer +geprüften Signatur abgesicherten Dokumente findet. Diese +Dokumente werden temporär gespeichert, damit sie vom Benutzer +über den Prüfbericht abgerufen werden +können. </p> + + <p>Der Konfigurationsparameter muss als Wert einen Pfad +enthalten, der von MOA SL als relativ zum <span class="term">Context +Root</span> der Webapplikation interpretiert wird. Der angegebene +Pfad muss einen abschließenden <code>/</code> +aufweisen und im Dateisystem tatsächlich existieren. </p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>/workdir/temp/</code></p> + + </td> + + </tr> + + </tbody> +</table> + +<h3><a name="konfiguration_konfigurationsdatei_moasp" id="konfiguration_konfigurationsdatei_moasp"></a>3.1.3 +Parameter der verwendeten MOA SP Installation</h3> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>service.sp.endpoint</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Mit diesem Konfigurationsparameter wird MOA SL der +Zugangspunkt zum Webservice von MOA SP mitgeteilt. </p> + + <p>Der Konfigurationsparameter muss eine URL enthalten, die +von MOA SL aus erreichbar ist und den Zugangspunkt zu MOA SP +adressiert. </p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>http://localhost:8080/moa-spss/services/SignatureVerification</code></p> + + </td> + + </tr> + + </tbody> +</table> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>service.sp.trustProfileId</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Mit diesem Konfigurationsparameter wird MOA SL +mitgeteilt, welches Vertrauensprofil es im Signaturprüfrequest +an MOA SP verwenden soll. </p> + + <p>Der Konfigurationsparameter muss den Bezeichner eines in +MOA SP hinterlegten Vertrauensprofils enthalten.</p> + + <p class="remark">Hinweis: Zum Durchlaufen der +Testapplikation nach Abschnitt <a href="#testapp">4</a> +dieses Handbuchs müssen Sie in MOA SP ein Vertrauensprofil mit +dem Namen <code>MOA-SL-Test</code> einrichten. Unter <code>$MOA_SL_INST/conf/moa-spss/trustprofiles/spssconfig.fragment + </code>finden Sie das dazu notwendige XML-Fragment zum +Einfügen in die Konfigurationsdatei von MOA SP. Unter <code>$MOA_SL_INST/conf/moa-spss/trustprofiles/moa-sl/test/</code> +finden Sie das im XML-Fragment referenzierte Verzeichnis mit den +für das Vertrauensprofil notwendigen Zertifikatsdateien. </p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>MOA-SL-Test</code></p> + + </td> + + </tr> + + </tbody> +</table> + +<h3><a name="konfiguration_konfigurationsdatei_umfang" id="konfiguration_konfigurationsdatei_umfang"></a>3.1.4 +Umfang der Prüfberichtseite</h3> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>result.showetsi</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Dieser Konfigurationsparameter gibt an, ob MOA SL auf +der Prüfberichtseite unter den signierten Dokumenten auch +eventuell vorhandenene, mitsignierte Signatureigenschaften (z.B. das +Signaturdatum) auflisten soll. Signatureigenschaften sind in der Regel +vorhanden, wenn die zur Prüfung eingereichte Signatur von +einer Bürgerkartenumgebung erstellt worden ist.</p> + + <p>Der Konfigurationsparamter muss einen der Werte <code>true</code> +oder <code>false</code> aufweisen. </p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>false</code></p> + + </td> + + </tr> + + </tbody> +</table> + <table class="fixedWidth" border="1" cellpadding="2"> -<tbody><tr> -<th>Klassenbibliothek</th><th>Version</th><th>Dateien</th> - -</tr><tr> -<td>MOA SP/SS</td> -<td>1.2.x </td> -<td><code>moa-spss.jar</code>, <code>moa-common.jar</code></td> -</tr><tr> -<td>MOA IAIK</td> -<td>1.0.7 </td> -<td><p><code>lib/iaik_moa_full.jar</code>, <code>lib/iaik_Pkcs11Wrapper.jar</code>, - <code>lib/iaik_cms.jar</code>, <code>lib/iaik_ixsil.jar</code></p> - </td> -</tr><tr> -<td>JAXP</td><td>1.2_01 </td><td><code>lib/jaxp-api.jar</code>, <code>lib/sax.jar</code>, <code>lib/dom.jar</code></td> - -</tr><tr> -<td>Xerces-J</td><td>2.4.0 </td><td><code>lib/xercesImpl.jar</code>, <code>lib/xmlParserAPIs.jar</code></td> -</tr><tr> -<td>Xalan-J</td><td>2.5.1 </td><td><p><code>lib/xalan.jar</code></p> - <p class="remark">Bitte beachten Sie: Wenn Sie J2SE 1.4.2 JRE oder J2SE 5.0 JRE verwenden, müssen Sie diese Bibliothek der Java VM als endorsed bekanntgeben. Sie können dies tun, indem Sie entweder</p> - <ul> - <li class="remark">die Bibliothek in das (ggf. vorher anzulegende) Verzeichnis <code>$JAVA_HOME/jre/lib/endorsed/</code> kopieren; oder</li> - <li class="remark">die System Property <code>java.endorsed.dirs</code> verwenden, und als Wert den Pfad zu jenem Verzeichnis angeben, in dem Sie die Bibliothek vorhalten (also z.B. <code>java.endorsed.dirs=c:/mylibdir</code>).</li> - </ul></td> -</tr><tr> -<td>Jaxen</td><td>1.0 </td><td><code>lib/jaxen-core.jar</code>, <code>lib/jaxen-dom.jar</code>, <code>lib/saxpath.jar</code></td> - -</tr><tr> -<td>Commons-Logging</td> -<td>1.0.4 </td> -<td><code>lib/commons-logging-api.jar</code>, <code>lib/commons-logging.jar</code></td> -</tr><tr> -<td>Log4j</td><td>1.2.7 </td><td><code>lib/log4j-1.2.7.jar</code></td> -</tr><tr> -<td>Commons-Discovery</td><td>0.2 </td><td><code>lib/commons-discovery.jar</code></td> - -</tr><tr> -<td>JSSE</td><td>1.0.3_01 </td> -<td><p>Diese Bibliotheken benötigen Sie nur, wenn Sie J2SE 1.3.1 verwenden:</p> - <p><code>lib/ext13/jsse.jar</code>, <code>lib/ext13/jcert.jar</code>, <code>lib/ext13/jnet.jar</code></p> - <p class="remark">Bitte beachten Sie: Diese Bibliotheken benötigen Sie nur, wenn Sie J2SE 1.3.1 verwenden.</p> </td> -</tr><tr> -<td>Postgres JDBC2</td><td>7.3 </td><td><p><code>lib/pg73jdbc2.jar</code></p> - <p><span class="remark">Bitte beachten Sie: Wenn Sie keine Datenbank für MOA SP/SS verwenden (vergleiche </span><a href="#webservice_erweiterungsmöglichkeiten_datenbank">2.2.2</a><span class="remark">), benötigen Sie diese Bibliothek nicht.</span></p></td> -</tr><tr> -</tr> -</tbody></table> - - <h3><a name="klassenbibliothek_basisinstallation_logging" id="klassenbibliothek_basisinstallation_logging"></a>3.1.4 Logging</h3> - <p> Die MOA SP/SS Klassenbibliothek verwendet <a href="#referenziertesoftware">Jakarta Log4j</a> für die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Die im Abschnitt <a href="#webservice_basisinstallation_logging">2.1.3</a> gemachten Aussagen lassen sich großteils auf den Einsatz der MOA SP/SS Klassenbibliothek übertragen. </p> - <h2><a name="klassenbibliothek_erweiterungsmöglichkeiten" id="klassenbibliothek_erweiterungsmöglichkeiten"></a>3.2 Erweiterungsmöglichkeiten </h2> - <p>Die im Abschnitt <a href="#webservice_erweiterungsmöglichkeiten">2.2</a> angeführten Erweiterungsmöglichkeiten für die MOA SP/SS Webservices gelten in analoger Weise auch für die Klassenbibliothek.</p> - <h1><a name="referenzierte_software"></a>A Referenzierte Software</h1> -<p>Auf folgende Software-Pakete wird in diesem Handbuch verwiesen:</p> -<table class="fixedWidth" border="1" cellpadding="2"> - <tr> - <th scope="col">Name</th> - <th scope="col">Beschreibung</th> - </tr> - <tr> - <td><a href="http://jakarta.apache.org/tomcat/index.html" target="_blank">Apache Tomcat 4.1.x </a></td> - <td>Servlet-Container des Apache Jakarta Projekts in der Version 4.1.x </td> - </tr> - <tr> - <td><a href="http://java.sun.com/j2se/1.4.2/" target="_blank">J2SE 1.4.2 SDK/JRE</a></td> - <td>Java 2 Standard Edition in der Version 1.4.2 (Software Development Kit bzw. Java Runtime Environment) </td> - </tr> - <tr> - <td><a href="http://java.sun.com/j2se/1.5.0/" target="_blank">J2SE 5.0 SDK/JRE</a> </td> - <td>Java 2 Standard Edition in der Version 5.0 (Software Development Kit bzw. Java Runtime Environment) </td> - </tr> - <tr> - <td><a href="http://logging.apache.org/log4j/" target="_blank">Apache Log4J </a></td> - <td>Logging Framework des Apache Projekts </td> - </tr> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>result.showslmanifest</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Dieser Konfigurationsparameter gibt an, ob MOA SL auf +der Prüfberichtseite unter den signierten Dokumenten auch ein +eventuell vorhandenes, mitsigniertes <span class="term"><a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/aktuell/core/Core.html#signaturerstellungNachXMLDSIGAntwort">Signaturmanifest</a></span> +nach Security-Layer V1.2 auflisten soll. </p> + + <p>Der Konfigurationsparamter muss einen der Werte <code>true</code> +oder <code>false</code> aufweisen. </p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>false</code></p> + + </td> + + </tr> + + </tbody> </table> + +<h3><a name="konfiguration_konfigurationsdatei_umschreiben" id="konfiguration_konfigurationsdatei_umschreiben"></a>3.1.5 +Parameter für das Umschreiben der Links in der +Prüfberichtseite</h3> + +<p>Insbesondere zum Verständnis dieses Abschnitts +sollten Sie zunächst das <a href="../system/system.html">Systemhandbuch</a> lesen. +Dort werden der gesamte Ablauf eines Signaturprüfvorgangs in +MOA SL sowie die daran beteiligten Komponenten erklärt. </p> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>rewrite</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Dieser Konfigurationsparameter gibt an, ob MOA SL Links +auf der Prüfberichtseite umschreiben soll.</p> + + <p>der </p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>true</code></p> + + </td> + + </tr> + + </tbody> +</table> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>rewrite.proxyURL</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Dieser Konfigurationsparameter enthält die URL +des <span class="term">Rewrite-Proxy</span>. Der <span class="term">Rewrite-Proxy</span> ist jener Rechner, +der (möglicherweise im Gegensatz zum Rechner, auf dem MOA SL +läuft) vom Internet aus erreichbar ist, und über den +alle Anfragen vom Benutzer an MOA SL geleitet werden. </p> + + <p>Teil der mit diesem Konfigurationsparameter angegebenen +URL ist der Platzhalter für den Domänennamen des <span class="term">Rewrite-Proxy</span>. Wie dieser +Platzhalter aussehen muss, wird im Konfigurationsparameter <code>rewrite.proxyURL.proxyhostDummy</code> +festgelegt. Im unten angegebenen Beispiel lautet der Platzhalter <code><proxyhost></code>.</p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>http://<rewriteproxyhost>:1234/rewrite</code></p> + + </td> + + </tr> + + </tbody> +</table> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>rewrite.proxyURL.proxyhostDummy</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Dieser Konfigurationsparameter enthält das +Format für den Platzhalter für den +Domänennamen des <span class="term">Rewrite-Proxy</span>. +Der Platzhalter im Konfigurationsparameter <code>rewrite.proxyURL</code> +muss genau diesem Format entsprechen. </p> + + <p>Notwendig ist dieser Platzhalter, weil MOA SL bei der +Erstellung der Prüfberichtseite alle Vorkommnisse dieses +Platzhalters in der Prüfberichtseite durch den +Domänennamen jener IP-Adresse ersetzt, von der aus der +Signaturprüfrequest an MOA SL gesendet wurde. Die +Konfiguration des dazu notwendigen <span class="term">Reverse +DNS Lookup</span> geschieht mit dem Konfigurationsparameter <code>rewrite.dn.*</code>. + </p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code><rewriteproxyhost></code></p> + + </td> + + </tr> + + </tbody> +</table> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>rewrite.dn.*</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Dieser (bzw. diese) Konfigurationsparameter definieren +die Lookup-Tabelle für das <span class="term">Reverse +DNS Lookup</span> im Zuge der Umschreibung von Links in der +Prüfberichtseite, damit diese ausschließlich +über den <span class="term">Rewrite-Proxy</span> +abgerufen werden können. </p> + + <p>Der Aufbau der Konfigurationsparameter entspricht dabei +dem Schema<code> +rewrite.dn.<IP-Adresse>=<Domänenname></code>. + </p> + + <p>Der Default-Domänenname, der für die +Umschreibung verwendet wird, wenn für die IP-Adresse des <span class="term">Rewrite-Proxy</span> kein Eintrag in der +Lookup-Tabelle definiert wurde, wird wie folgt angegeben: <code>rewrite.dn.default=<Domänenname></code>. + </p> + + <p>Das Beispiel geht von zwei möglichen <span class="term">Rewrite-Proxys</span> aus, denen die +IP-Adressen <code>192.168.0.101</code> bzw. <code>192.168.0.102</code> +zugeordnet sind. Die nach außen sichtbaren Namen dieser <span class="term">Rewrite-Proxys</span> lauten <code>rewriteproxyhost1</code> +und <code>rewriteproxyhost2</code>. <code>rewriteproxyhost1</code> +ist als Standard-<span class="term">Rewrite-Proxy</span> +konfiguriert. </p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>rewrite.dn.192.168.0.101=rewriteproxyhost1<br> + +rewrite.dn.192.168.0.102=rewriteproxyhost2<br> + +rewrite.dn.default=rewriteproxyhost1</code></p> + + </td> + + </tr> + + </tbody> +</table> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>rewrite.MOASLUrlParamName</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Dieser Konfigurationsparameter gibt den Namen des +URL-Parameters in den im Signaturprüfbericht für den <span class="term">Rewrite-Proxy</span> umgeschriebenen +Links an, dessen Wert die vom <span class="term">Rewrite-Proxy</span> +für den tatsächlichen Abruf von Daten von MOA SL +enthält.</p> + + <p>Am Wert dieses Konfigurationsparameters erkennt der <span class="term">Rewrite-Proxy</span>, wie der +HTTP-Request an den <span class="term">Rewrite-Proxy</span> +in einen HTTP-Request an das MOA SL Webservice umzusetzen ist. Lautet +eine im Signaturprüfbericht enthaltene URL z.B. <code>http://rewriteproxyhost1:1234/rewrite?targetURL=http://moaslhost:8080/moa-sl/showdata?hidCount=0</code>, +dann geht zunächst ein HTTP-Request an den <span class="term">Rewrite-Proxy </span>(der auf dem +Rechner mit dem Namen <code>rewriteproxyhost1 unter Port 1234 +lauscht)</code>. Der <span class="term">Rewrite-Proxy</span> +entnimmt nun aus dem URL-Parameter <code>targetURL</code> +die URL für die Umsetzung an MOA SL, also <code>http://moaslhost:8080/moa-sl/showdata?hidCount=0</code>. +Der <span class="term">Rewrite-Proxy</span> setzt +nun einen entsprechenden HTTP-Request an MOA SL ab; die Antwort von MOA +SL wird als Antwort auf den an den <span class="term">Rewrite-Proxy</span> +gerichteten HTTP-Request weitergegeben. </p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>targetURL</code></p> + + </td> + + </tr> + + </tbody> +</table> + +<table class="fixedWidth" border="1" cellpadding="2"> + + <tbody> + + <tr> + + <td>Name</td> + + <td><code>rewrite.MOASLWebAppServUrl</code></td> + + </tr> + + <tr> + + <td>Erläuterung</td> + + <td> + <p>Dieser Konfigurationsparameter gibt jene URL an, unter +der der Webapplikationsserver mit MOA SL vom <code>Rewrite-Proxy</code> +aus erreichbar ist.</p> + + <p>Die URL besteht aus Protokoll, Domänennamen +sowie gegebenenfalls Port (wenn dieser nicht dem Standardport +für das Protokoll entspricht). Nach dem Domänennamen +bzw. Port dürfen keine weiteren Bestandteile mehr vorkommen. </p> + + <p>Verwendung findet dieser Konfigurationsparameter als +erster Teil des Werts für den oben besprochenen URL-Parameter (<code>rewrite.sliUrlParamName</code>). + </p> + + </td> + + </tr> + + <tr> + + <td>Beispiel</td> + + <td> + <p><code>http://moaslhost:8080</code></p> + + </td> + + </tr> + + </tbody> +</table> + +<h2><a name="konfiguration_layout" id="konfiguration_layout"></a>3.2 Layout des +Prüfberichts </h2> + +<p>Die einzige Schnittstelle des MOA SL Webservices zum Benutzer +ist der Prüfbericht über die eingereichte Signatur, +den das Service dem Benutzer in einer für ihn gut +aufbereiteten Form darstellt, bevor das automatisch auswertbare +Prüfprotokoll an die aufrufende Applikation +zurückübermittelt (für eine +Erklärung des gesamten Signaturprüfvorgangs in MOA SL +sowie der daran beteiligten Komponenten vergleiche das <a href="../system/system.html">Systemhandbuch</a>). </p> + +<p>Das Layout des Prüfberichts, das in der JSP-Seite <code>$MOA_SL_WEBAPP/pages/resultOverview.jsp</code> +(<code>$MOA_SL_WEBAPP</code> steht für den Ort der +Webapplikatioin, für gewöhnlich ist das<code> +$CATALINA_HOME/webapps</code>) festgelegt ist, kann +völlig frei gestaltet werden. </p> + +<p>Wenn Sie das Layout gegenüber der Vorgabe +verändern möchten, editieren Sie einfach die +HTML-Teile dieser JSP-Seite. Beachten Sie bitte, dass Sie dabei die +JSP-Scriptelemente unverändert lassen. JSP-Scriptelemente sind +entweder Tags, die mit dem Präfix <code>jsp</code> +gekennzeichnet sind (z.B. <code><jsp:useBean></code> +oder <code><jsp:getProperty></code>, oder +Bereiche die mit der Kennzeichnung <code><%</code> +eingeleitet bzw. mit der Kennzeichnung <code>%></code> +ausgeleitet werden. </p> + +<h1><a name="testapp" id="testapp"></a>4 +Durchlaufen der Testapplikation</h1> + +<p>Konnte das MOA SL Webservice entsprechend Abschnitt <a href="#installation_tomcatstartstop_verify">2.5.4</a> +erfolgreich initialisiert werden, und haben Sie weiters die +Konfiguration des MOA SL Webservices entsprechend Abschnitt <a href="#konfiguration">3</a> an Ihre Anforderungen +angepasst, sollten Sie schließlich prüfen, ob die +mit MOA SL mitgelieferte Testapplikation erfolgreich durchlaufen werden +kann.</p> + +<p>Beginnen Sie bitte, in dem Sie einen Webbrowser starten und +sich mit folgender Seite verbinden, die Teil des MOA SL Webservices +ist. Sollte Ihre Tomcat-Installation unter einer anderen Adresse als <code>localhost:8080</code> +erreichbar sein, passen Sie die URL bitte entsprechend an.</p> + +<pre>http://localhost:8080/moa-sl/pages/test/forms/verify.slxhtml.jsp</pre> + +<p>Die aufgerufene Webseite sollte in etwa wie folgt aussehen +(für eine größere Darstellung bitte +klicken):</p> + +<p style="text-align: center;"><a href="images/testapp.screen1.png" target="_blank"><img src="images/testapp.screen1.png" alt="pplikation - Screen 1" border="0" height="287" width="400"></a></p> + +<p>Durch Abschicken des dargestellten Formulars wird ein +vorbereiteter Signaturprüfungsrequest entsprechend der +Spezifikation des Security-Layers an MOA SL übermittelt. Als +weiterer Parameter wird eine DataURL ebenfalls ensprechend der +Spezifikation des Security-Layers angegeben. Beide Parameter sind auf +das installierte MOA SL Webservice abgestimmt und können +unverändert übernommen werden. </p> + +<p>Wenn das Formular an an MOA SL übermittelt wurde, +antwortet MOA SL mit dem Signaturprüfbericht, der in etwa wie +folgt aussehen sollte:</p> + +<p style="text-align: center;"><a href="images/testapp.screen2.png" target="_blank"><img src="images/testapp.screen2.png" alt="pplikation - Screen 2" height="458" width="400"></a></p> + +<p>Sollten Sie an statt des Prüfberichts eine +Fehlerseite von Tomcat erhalten, liegt das mit hoher Wahrscheinlichkeit +daran, dass das Zusammenspiel von MOA SL mit MOA SPSS nicht korrekt +konfiguriert wurde. Prüfen Sie dann Ihre Konfiguration +entsprechend den Angaben in Abschnitt <a href="#konfiguration_konfigurationsdatei_moasp">3.1.3</a>.</p> + +<p>Wenn Sie den Prüfbericht zwar erhalten, der Text zu +Prüfungen/Zertifikat jedoch in rot gehalten ist und auf einen +Fehler bei der Zertifikatsprüfung hinweist, wurde das +für die Testapplikation notwendige Vertrauensprofil in MOA +SPSS nicht korrekt konfiguriert. Folgen Sie dann den Hinweisen in +Abschnitt <a href="#konfiguration_konfigurationsdatei_moasp">3.1.3</a>.</p> + +<p>Der Prüfbericht selbst enthält Informationen +zum Ersteller der Signatur, zum Aussteller des Zertifikats, +über Seriennummer und Qualität des Zertifikats, sowie +über die durchgeführten Prüfungen +bezüglich der Signatur selbst sowie des verwendeten +Zertifikats. Nach diesen Informationen enthält der +Prüfbericht eine Liste der von der Signatur gesicherten +Dokumente. In unserem Fall erstreckt sich die Signatur über +genau ein Dokument. Dieses Dokument kann durch einen Klick auf den +entsprechenden Link in einem neuen Fenster geöffnet werden. +Das geöffnete Dokument sollte in etwa wie folgt aussehen:</p> + +<p style="text-align: center;"><a href="images/testapp.screen3.png" target="_blank"><img src="images/testapp.screen3.png" alt="Testapplikation - Screen 3" height="100" width="400"></a> +</p> + +<p>Wenn Sie schließlich im Prüfbericht dem +Link <span class="term">Zurück zur Anwendung ...</span> +folgen, gelangen Sie zur Abschlussseite der Testapplikation:</p> + +<p style="text-align: center;"><a href="images/testapp.screen4.png" target="_blank"><img src="images/testapp.screen4.png" alt="Testapplikation - Screen 4" border="0" height="290" width="400"></a></p> + +<p> Die Abschlussseite präsentiert in Tabellenform die +Informationen, die vom MOA SL Webservice als automatisch auswertbare +Information entsprechend der Spezifikation des Security-Layers an den <code>DataURL</code>-Server +(vergleiche Parameter auf der Startseite der Testapplikation) +übermittelt. Im Wesentlichen ist das der +Signaturprüfresponse entsprechend der Spezifikation des +Security-Layers. </p> + </body> </html> diff --git a/spss.slinterface/handbook/system/images/Zusammenspiel.VSD b/spss.slinterface/handbook/system/images/Zusammenspiel.VSD Binary files differnew file mode 100644 index 000000000..0088d5109 --- /dev/null +++ b/spss.slinterface/handbook/system/images/Zusammenspiel.VSD diff --git a/spss.slinterface/handbook/system/images/Zusammenspiel.mit.png b/spss.slinterface/handbook/system/images/Zusammenspiel.mit.png Binary files differnew file mode 100644 index 000000000..4e7fcda67 --- /dev/null +++ b/spss.slinterface/handbook/system/images/Zusammenspiel.mit.png diff --git a/spss.slinterface/handbook/system/images/Zusammenspiel.ohne.png b/spss.slinterface/handbook/system/images/Zusammenspiel.ohne.png Binary files differnew file mode 100644 index 000000000..0dc944cb9 --- /dev/null +++ b/spss.slinterface/handbook/system/images/Zusammenspiel.ohne.png diff --git a/spss.slinterface/handbook/system/system.html b/spss.slinterface/handbook/system/system.html index eb287ee8a..b911d84c8 100644 --- a/spss.slinterface/handbook/system/system.html +++ b/spss.slinterface/handbook/system/system.html @@ -1,486 +1,512 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> + <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> - <title>MOA SS und SP - Installation</title> + <title>MOA SL - Systemhandbuch</title> + + <link rel="stylesheet" href="../common/MOA.css" type="text/css"> + </head> -<body bgcolor="white" text="#000000" link="#990000" vlink="#666666" alink="#cc9966"> - <table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10"> + + +<body style="color: rgb(0, 0, 0); background-color: white;" alink="#cc9966" link="#990000" vlink="#666666"> + +<table class="logoTable" border="0" cellpadding="10" cellspacing="0" width="100%"> + + <tbody> + <tr> - <td align="center" class="logoTitle" width="267"><img src="../common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td> - <td align="center" class="logoTitle">Open Source<br> - für das E-Government</td> - <td align="center" class="logoTitle" width="123"><img src="../common/LogoMoa4c.jpg" alt="Logo MOA" width="123" height="138" align="right"></td> + + <td class="logoTitle" align="center" width="267"><img src="../common/LogoBKA.png" alt="Logo BKA" align="left" height="37" width="267"></td> + + <td class="logoTitle" align="center">Open +Source<br> + +für das E-Government</td> + + <td class="logoTitle" align="center" width="123"><img src="../common/LogoMoa4c.jpg" alt="Logo MOA" align="right" height="138" width="123"></td> + </tr> - </table> - <hr/> - <p class="title"><a href="../index.html">MOA: Serversignatur (SS) und Signaturprüfung (SP), V 1.3</a></p> - <p class="subtitle">Installation</p> - <hr/> - <h1>Inhalt</h1> - <ol> - <li> - <p><a href="#Übersicht">Übersicht</a></p> - </li> - <li> - <p><a href="#webservice">Webservice</a></p> - <ol> - <li><a href="#webservice_basisinstallation">Basisinstallation</a> - <ol> - <li><a href="#webservice_basisinstallation_einführung">Einführung</a></li> - <li><a href="#webservice_basisinstallation_installation">Installation</a> - <ol> - <li><a href="#webservice_basisinstallation_installation_vorbereitung">Vorbereitung</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatconfig">Konfiguration von Apache Tomcat</a> - <ol> - <li><a href="#webservice_basisinstallation_installation_tomcatconfig_httpconn">Konfiguration des HTTP Connectors</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatconfig_httpsconn">Konfiguration des HTTPS Connectors</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatconfig_moaadmin">Einrichten des MOA SP/SS Administrators</a></li> - </ol> - </li> - <li><a href="#webservice_basisinstallation_installation_spssdeploy">Einsatz des MOA SP/SS Webservices in Tomcat</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatconfig_httpsconn">Starten und Stoppen von Tomcat</a> - <ol> - <li><a href="#webservice_basisinstallation_installation_tomcatstartstop_windows">Unter Windows</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatstartstop_unix">Unter Unix</a></li> - <li><a href="#webservice_basisinstallation_installation_tomcatstartstop_verify">Prüfen des erfolgreichen Starts</a> </li> - </ol> - </li> - <li><a href="#webservice_basisinstallation_installation_changeonthefly">Änderung der Konfiguration im laufenden Betrieb</a></li> - </ol> - </li> - <li><a href="#webservice_basisinstallation_logging">Logging</a> - <ol> - <li><a href="#webservice_basisinstallation_logging_format">Format der Log-Meldungen</a></li> - <li><a href="#webservice_basisinstallation_logging_messages">Wichtige Log-Meldungen</a></li> - </ol> - </li> - </ol> - </li> - <li><a href="#webservice_erweiterungsmöglichkeiten">Erweiterungsmöglichkeiten</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver">Vorgeschalteter Webserver</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_iis">Microsoft Internet Information Server (MS IIS)</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_iis_jk">Konfiguration von <span class="term">Jakarta mod_jk</span> im MS IIS</a></li> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_iis_tomcat">Konfiguration von Tomcat</a></li> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_iis_ssl">Konfiguration von SSL</a></li> - </ol> - </li> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_apache">Apache</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_apache_jk">Konfiguration von <span class="term">Jakarta mod_jk</span> im Apache </a></li> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_apache_tomcat">Konfiguration von Tomcat</a></li> - <li><a href="#webservice_erweiterungsmöglichkeiten_webserver_apache_ssl">Konfiguration von SSL mit <span class="term">mod_SSL</span></a></li> - </ol> - </li> - </ol> - </li> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank">Datenbank</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql">PostgreSQL</a> <ol> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql_benutzer">Anlegen eines Benutzers und einer Datenbank für MOA SP/SS</a></li> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql_crls">Archivierung von CRLs</a> </li> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql_logging">Logging</a></li> - </ol> - </li> - <li><a href="#webservice_erweiterungsmöglichkeiten_datenbank_andere">Andere Datenbanken</a> </li> - </ol> - </li> - </ol> - </li> - </ol> - <li><a href="#klassenbibliothek">Klassenbibliothek</a> - <ol> - <li><a href="#klassenbibliothek_basisinstallation">Basisinstallation</a> - <ol> - <li><a href="#klassenbibliothek_basisinstallation_einfuehrung">Einführung</a></li> - <li><a href="#klassenbibliothek_basisinstallation_vorbereitung">Vorbereitung</a></li> - <li><a href="#klassenbibliothek_basisinstallation_verwendung">Verwendung</a></li> - <li><a href="#klassenbibliothek_basisinstallation_logging">Logging</a></li> - </ol> - </li> - <li><a href="#klassenbibliothek_erweiterungsmöglichkeiten">Erweiterungsmöglichkeiten</a></li> - </ol> - </li> - </ol> - <ol type="A"> - <li><a href="#referenzierte_software">Referenzierte Software</a></li> - </ol> - <hr/> - <h1><a name="übersicht" id="übersicht"></a>1 Übersicht</h1> - <p> Die Module Signaturprüfung (SP) und Serversignatur (SS) sind als plattformunabhängige Module ausgelegt, die entweder als Webservice über HTTP bzw. HTTPS oder als Klassenbibliothek über ein API angesprochen werden können. Dieses Handbuch beschreibt die Installation der beiden Module als Webservice oder als Klassenbibliothek, sowie die Einrichtung der Systemumgebung.</p> - <h1><a name="webservice"></a>2 Webservice </h1> - <p>Dieser Abschnitt beschreibt die Installation von MOA SP/SS als Webservice. Im ersten Unterkapitel wird eine minimale Basisinstallation beschrieben. Das zweite Unterkapitel zeigt eine Reihe von optionalen Erweiterungsmöglichkeiten auf.</p> - <h2><a name="webservice_basisinstallation" id="webservice_basisinstallation"></a>2.1 Basisinstallation</h2> - <h3><a name="webservice_basisinstallation_einführung" id="webservice_basisinstallation_einführung"></a>2.1.1 Einführung </h3> - <p> Die Basisinstallation des Webservices stellt einerseits die minimalen Anforderungen für den Betrieb von MOA SP/SS als Webservices dar, andererseits dient sie als Ausgangspunkt für optionale <a href="#webservice_erweiterungsmöglichkeiten">Erweiterungsmöglichkeiten</a>.</p> - <p> Folgende Software ist Voraussetzung für die Basisinstallation des Webservices: </p> - <ul> - <li><a href="#referenziertesoftware">J2SE 1.3.1 SDK oder J2SE 1.4.2 SDK oder J2SE 5.0 SDK </a></li> - <li><a href="#referenziertesoftware">Apache Tomcat 4.1.18 oder höher </a></li> - </ul> - <p>In diesem Betriebs-Szenario wird das MOA SP/SS Webservice in Tomcat zum Einsatz gebracht. Tomcat fungiert gleichzeitig als HTTP- und HTTPS-Endpunkt für das MOA SP/SS Webservice. Beide Protokolle werden direkt in Tomcat konfiguriert. Das MOA SP/SS Webservice verwendet Log4j als Logging Toolkit.</p> - <h3><a name="webservice_basisinstallation_installation" id="webservice_basisinstallation_installation"></a>2.1.2 Installation</h3> - <h4><a name="webservice_basisinstallation_installation_vorbereitung" id="webservice_basisinstallation_installation_vorbereitung"></a>2.1.2.1 Vorbereitung</h4> - <p>Die folgenden Schritte dienen der Vorbereitung der Installation.</p> - <dl> - <dt>Installation von J2SE SDK</dt> - <dd>Installieren Sie <a href="#referenziertesoftware">J2SE 1.3.1 SDK</a> oder <a href="#referenziertesoftware">J2SE 1.4.2 SDK</a> oder <a href="#referenziertesoftware">J2SE 5.0 SDK</a> in ein beliebiges Verzeichnis. Wir empfehlen die Installation von <a href="#referenziertesoftware">J2SE 5.0 SDK</a>. Das Wurzelverzeichnis der J2SE SDK Installation wird im weiteren Verlauf als <code>$JAVA_HOME</code> bezeichnet. </dd> - <dt>Installation von Apache Tomcat 4.1</dt> - <dd> Installieren Sie <a href="#referenziertesoftware">Apache Tomcat 4.1.18</a> oder höher in ein Verzeichnis, das keine Leerzeichen im Pfadnamen enthält. Wir empfehlen die Installation von <a href="#referenziertesoftware">Apache Tomcat 4.1.31</a>. Verwenden Sie bitte die zu Ihrem J2SE SDK passende Distribution von Tomcat. Das Wurzelverzeichnis der Tomcat-Installation wird im weiteren Verlauf als <code>$CATALINA_HOME</code> bezeichnet.</dd> - <dt>Entpacken der MOA SP/SS Webservice Distribution</dt> - <dd> Entpacken Sie die Datei <code>moa-spss-1.2.x.zip</code> in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als <code>$MOA_SPSS_INST</code> bezeichnet. </dd> - <dt>Installation der Krypographiebibliotheken von SIC/IAIK</dt> - <dd> - <p>Die Installation der Kryptographiebibliotheken von <a href="http://jce.iaik.tugraz.at/" target="_blank">SIC/IAIK</a> ist abhängig vom eingesetzten J2SE SDK:</p> - <dl> - <dt>J2SE 1.3.1 SDK</dt> - <dd>Kopieren Sie alle Dateien aus dem Verzeichnis - - - <code>$MOA_SPSS_INST/ext13</code> in das Verzeichnis <code>$JAVA_HOME/jre/lib/ext</code>.</dd> - <dt>J2SE 1.4.2 SDK oder JSE 5.0 SDK </dt> - <dd>Kopieren Sie alle Dateien aus dem Verzeichnis <code>$MOA_SPSS_INST/ext14</code> in das Verzeichnis <code>$JAVA_HOME/jre/lib/ext</code>. Zusätzlich müssen Sie die Rechtedateien Ihres J2SE 1.4.2 SDK bzw. J2SE 5.0 SDK austauschen. Laden Sie dazu die <span class="term">Unlimited Strength - - - Jurisdiction Policy Files</span> von der <a href="http://java.sun.com/j2se/1.4.2/download.html" target="_blank">J2SE 1.4.2 SDK Downloadseite</a> bzw. <a href="http://java.sun.com/j2se/1.5.0/download.html">J2SE 5.0 SDK Downloadseite</a> und folgen Sie der darin enthaltenen Installationsanweisung. </dd> - </dl> - </dd> - </dl> - <h4><a name="webservice_basisinstallation_installation_tomcatconfig" id="webservice_basisinstallation_installation_tomcatconfig"></a>2.1.2.2 Konfiguration von Apache Tomcat</h4> - <p> Die zentrale Konfigurations-Datei von Tomcat ist <code>$CATALINA_HOME/conf/server.xml</code>. Tomcat wird grundsätzlich mit einer funktionierenden Default-Konfiguration ausgeliefert, die jedoch einiges an Ballast enthält und viele Ports offen lässt. </p> - <h5><a name="webservice_basisinstallation_installation_tomcatconfig_httpconn" id="webservice_basisinstallation_installation_tomcatconfig_httpconn"></a>2.1.2.2.1 Konfiguration des HTTP Connectors</h5> - <p> Die Datei <code>$MOA_SPSS_INST/tomcat/server.xml</code> enthält eine minimale Tomcat-Konfiguration, die ausschließlich den Connector für HTTP auf Port 8080 freischaltet. Durch kopieren dieser Datei nach <code>$CATALINA_HOME/conf/server.xml</code> kann Tomcat mit dieser Konfiguration gestartet werden. Wir empfehlen diese Konfiguration nur für Fälle, in denen das MOA SP/SS Webservice in einer abgeschlossenen Netzwerkumgebung betrieben wird. </p> - <h5><a name="webservice_basisinstallation_installation_tomcatconfig_httpsconn" id="webservice_basisinstallation_installation_tomcatconfig_httpsconn"></a>2.1.2.2.2 Konfiguration des HTTPS Connectors</h5> - <p>Wird das MOA SP/SS Webservice in einer nicht abgeschlossenen Umgebung (z.B. Erreichbarkeit über das Internet) betrieben, ist die gegenseitige Identitätsfeststellung von Kunde und Webservice essentiell: </p> - <ul> - <li> Nutzt ein Kunde MOA SP, ist es für ihn wichtig, die Identität des Webservice eindeutig feststellen zu können, denn er vertraut dem Webservice ja die Prüfung einer elektronischen Signatur an.</li> - <li>Nutzt ein Kunde MOA SS, ist es für ihn wesentlich, dass nur er Zugriff auf die für ihn vom Webservice verwalteten privaten Schlüssel hat, um elektronische Signaturen zu erstellen. Das Webservice muss also die Identität des Kunden prüfen. </li> - </ul> - <p>Beide Identitätsprüfungen können mit hoher Qualität vorgenommen werden, wenn die Erreichbarkeit des Webservice auf SSL mit Server- (für MOA SP) bzw. Client- und Serverauthentisierung (für MOA SS) eingeschränkt wird. </p> - <p>Für die dazu notwendige Konfiguration kann die im vorigen Abschnitt besprochene minimale Tomcat-Konfiguration als Ausgangspunkt verwendet werden: Zunächst ist der HTTP Connector abzuschalten (auszukommentieren). Anschließend ist der HTTPS Connector zu konfigurieren. Das Dokument <a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/ssl-howto.html">Tomcat SSL Configuration HOW-TO </a> gibt einen guten Überblick dazu. Grob zusammengefasst sind folgende Schritte durchzuführen: </p> - <ul> - <li>Erstellung eines <span class="term">Server-Keystores</span>, der den privaten Schlüssel sowie das zugehörige Zertifikat des Webservices enthält, mit dem es sich bei Aufbau einer SSL-Verbindung gegenüber dem Kunden ausweist.sowie das dazugehörige ZertiServer-Zertifikat enthält. Sie können diesen Keystore z.B. mit <code>keytool</code> erstellen, einem Programm, das Ihrem J2SE SDK beiliegt.</li> - <li>Erstellung eines <span class="term">Client-Keystores</span>, der die Zertifikate aller Kunden des Webservices enthält. Nur Kunden des Webservices, die sich beim Aufbau einer SSL-Verbindung gegenüber dem Webservice mit einem im <span class="term">Client-Keystore</span> enthaltenen Zertifikat ausweisen, erhalten grundsätzlich Zugriff zu den Diensten des Webservices (für die Konfiguration, welcher Kunde welche Schlüssel von MOA SS verwenden darf, siehe <a href="../config/config.html#konfigurationsparameter_ss_keygroupmapping">Abschnitt 2.2.3 des Konfigurationshandbuchs</a>). Auch dieser Keystore kann z.B. mit <code>keytool</code> erstellt werden. Dieser Keystore ist optional und braucht nur erstellt zu werden, wenn sich die Kunden gegenüber dem Webservice authentisieren müssen. </li> - <li>Konfiguration des HTTPS Connectors in <code>$CATALINA_HOME/conf/server.xml</code>.</li> - </ul> - <p>Die Konfiguration des HTTPS Connectors kann entfallen, wenn Tomcat ein Webserver vorgeschaltet ist, und dieser die SSL-Kommunikation mit dem Kunden übernimmt (siehe <a href="#webservice_erweiterungsmöglichkeiten_webserver">Abschnitt 2.2.1</a>).</p> - <h5><a name="webservice_basisinstallation_installation_tomcatconfig_moaadmin" id="webservice_basisinstallation_installation_tomcatconfig_moaadmin"></a>2.1.2.2.3 Einrichten des MOA SP/SS Administrators </h5> - <p>Das MOA SP/SS Webservice kann <span class="term">remote</span> durch den Aufruf einer speziellen URL des Webservices dazu veranlasst werden, seine Konfiguration neu einzulesen (vergleiche Abschnitt <a href="#webservice_basisinstallation_installation_changeonthefly">2.1.2.5</a>). Der Zugriff auf diese URL ist durch eine Passwort-Abfrage geschützt, und kann nur von Tomcat-Benutzern aufgerufen werden, denen die Tomcat-Benutzer-Rolle <code>moa-admin</code> zugeordnet wurde.</p> - <p> Um diese Benutzer-Rolle und einen oder mehrere Benutzer einzurichten, müssen in der Datei <code>$CATALINA_HOME/conf/tomcat-users.xml </code>unter dem Element <code><tomcat-users></code> sinngemäß folgende Einträge hinzugefügt werden: </p> - <p> - <pre><role rolename="moa-admin"/> -<user username="moa-chief" password="openSesam" roles="moa-admin"/> </pre> -<p>Soll der Aufruf dieser URL niemandem ermöglicht werden, sind die oben beschriebenen Einträge einfach nicht vorzunehmen.</p> - -<h4><a name="webservice_basisinstallation_installation_spssdeploy" id="webservice_basisinstallation_installation_spssdeploy"></a>2.1.2.3 Einsatz des MOA SP/SS Webservices in Tomcat</h4> -<p> Um das MOA SP/SS Webservice in Tomcat für den Einsatz vorzubereiten, sind folgende Schritte notwendig:</p> + + </tbody> +</table> + +<hr> +<p class="title"><a href="../index.html">MOA: +Serverseitige Signaturprüfung (SL), V 1.1</a></p> + +<p class="subtitle">Systemhandbuch</p> + +<hr> +<h1>Inhalt</h1> + +<ol> + + <li> + <p><a href="#einf%FChrung">Einführung</a></p> + + </li> + + <li><a href="#%FCberblick">Überblick</a></li> + + <li> <a href="#komponenten">Komponenten</a> + <ol> + + <li><a href="#komponenten.sl2moafilter">Der +Filter <code>SL2MOAFilter</code></a> + </li> + + <li><a href="#komponenten.moaservlet">Das +Servlet <code>MOAServlet</code></a> + </li> + + <li><a href="#komponenten.resultoverview">Die +JSP-Seite <code>resultOverview.jsp</code></a> + </li> + + <li><a href="#komponenten.hashinputservlet">Das +Servlet <code>HashInputDataServlet</code></a></li> + + <li><a href="#komponenten.returnservlet">Das +Servlet <code>ReturnServlet</code></a></li> + + <li><a href="#komponenten.urlrewriter">Die +Klasse URLRewriter</a></li> + + <li><a href="#komponenten.webxml">Der +Deployment Descriptor web.xml</a></li> + + </ol> + + </li> + + <li><a href="#zusammenspiel">Zusammenspiel der +Komponenten</a> + <ol> + + <li><a href="#zusammenspiel.basis">Basisablauf</a></li> + + <li><a href="#zusammenspiel.rewrite">Ablauf mit Rewrite-Proxy</a></li> + + </ol> + + </li> + +</ol> + +<hr> +<h1><a name="einführung" id="einführung"></a>1 +Einführung </h1> + +<p>Das Modul <span class="term">Serverseitige +Signaturprüfung</span> (MOA SL) ist als +plattformunabhängiges Modul ausgelegt, das als Webservice +über HTTP bzw. HTTPS angesprochen werden kann. </p> + +<p>Dieses Handbuch beschreibt den Aufbau von MOA SL. Abschnitt 2 +bietet einen groben Überblick über die Funktionsweise +von MOA SL. Abschnitt 3 beschreibt die einzelnen Komponenenten, aus +denen MOA SL aufgebaut ist. Abschnitt 4 schließlich +beschreibt das Zusammenspiel der einzelnen Komponenten.</p> + +<p>Für die Installation und die Konfiguration von MOA SL +siehe <a href="../operation.html">Betriebshandbuch</a>. +</p> + +<h1><a name="überblick" id="überblick"></a>2 +Überblick</h1> + +<p>Das Modul <span class="term">Serverseitige +Signaturprüfung</span> (MOA SL) bietet für +Signaturprüfung eine serverseitige Implementierung einer +Bürgerkarten-Umgebung entsprechend den <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/">Spezifikationen +zur österreichischen Bürgerkarte</a> in der +Version 1.2. </p> + +<p>Der Funktionsumfang von MOA SL kann wie folgt zusammengefasst +werden:</p> + <ul> - <li>Die Datei <code>$MOA_SPSS_INST/moa-spss.war</code> enthält das einsatzfertige MOA SP/SS Webarchiv und muss ins Verzeichnis <code>$CATALINA_HOME/webapps</code> kopiert werden. Dort wird sie beim ersten Start von Tomcat automatisch ins Verzeichnis <code>$CATALINA_HOME/webapps/ moa-spss</code> entpackt. </li> - <li>Die zentrale Konfigurationsdatei für MOA SP/SS und die zugehörigen Profil-Verzeichnisse müssen in ein beliebiges Verzeichnis im Dateisystem kopiert werden (z.B. <code>$CATALINA_HOME/conf/moa-spss</code>). Eine funktionsfähige Konfiguration, die als Ausgangspunkt für die Konfiguration des MOA SP/SS Webservices dienen kann, finden Sie <a href="../../conf/moa-spss/spss.config.xml">hier</a>. </li> - <li>Wird Tomcat unter J2SE 1.4.x SDK oder höher betrieben, müssen die Dateien <code>xalan.jar</code>, <code>xercesImpl.jar</code> und <code>xmlParserAPIs.jar</code> aus dem Verzeichnis <code>$MOA_SPSS_INST/endorsed14</code> in das Tomcat-Verzeichnis <code>$CATALINA_HOME/common/endorsed</code> kopiert werden. Sind gleichnamige Dateien dort bereits vorhanden, müssen sie überschrieben werden. Die ggf. in diesem Verzeichnis vorhandene Datei <code>xml-apis.jar</code> muss gelöscht werden.</li> - <li>Folgende <span class="term">System Properties</span> können gesetzt werden (wird beim Starten von Tomcat der <span class="term">Java Virtual Machine</span> in der Umgebungsvariablen <code>CATALINA_OPTS</code> in der Form <code>-D<name>=<wert></code> übergeben): - <ul> - <li id="klein"><code>moa.spss.server.configuration</code>: Pfad und Name der zentralen Konfigurationsdatei für MOA SP/SS. Eine beispielhafte Konfigurationsdatei finden Sie <a href="../../conf/moa-spss/spss.config.xml">hier</a>. Wird ein relativer Pfad angegeben, wird dieser relativ zum Startverzeichnis der <span class="term">Java Virtual Machine</span> interpretiert. Ist diese <span class="term">System Property</span> nicht gesetzt, wird automatisch eine im Webarchiv unter <code>WEB-INF/conf</code> enthaltene Default-Konfiguration herangezogen.</li> - <li id="klein"><code>log4j.configuration</code>: URL der Log4j Konfigurationsdatei. Eine beispielhafte Log4j-Konfiguration finden Sie <a href="../../conf/moa-spss/log4j.properties">hier</a>. Wird eine relative URL angegeben, wird diese als File-URL relativ zum Startverzeichnis der <span class="term">Java Virtual Machine</span> interpretiert. Ist diese <span class="term">System Property</span> nicht gesetzt, wird automatisch eine im Webarchiv unter <code>WEB-INF/classes</code> enthaltene Default-Konfiguration herangezogen.</li> - <li id="klein"><code>moa.node.id</code>: Frei wählbarer Name des Rechner-Knotens, auf dem MOA SP/SS läuft. Der Name des Knotens wird bei Log-Ausgaben von MOA SP/SS angeführt und dient zur Unterscheidung mehrerer gleichzeitig betriebener MOA SP/SS Webservice-Instanzen. </li> - <li id="klein"><code>javax.net.ssl.trustStore</code>: Pfad und Dateiname des <span class="term">Truststores</span> für vertrauenswürdige SSL Client-Zertifikate (optional; nur, wenn SSL Client-Authentisierung durchgeführt werden soll). Ein relativer Pfad werden relativ zum Startverzeichnis der <span class="term">Java Virtual Machine</span> interpretiert.</li> - <li id="klein"><code>javax.net.ssl.trustStorePassword</code>: Passwort für den <span class="term">Truststore</span> (optional; nur, wenn SSL Client-Authentisierung durchgeführt werden soll). </li> - <li id="klein"><code>javax.net.ssl.trustStoreType</code>: Truststore-Typ (optional; nur, wenn SSL Client-Authentisierung durchgeführt werden soll). Je nach verwendetem Keystore-Typ muss <code>jks</code> (<span class="term">Java Key Store</span>) oder <code>pkcs12</code> (PKCS#12-Datei) angegeben werden.</li> - </ul> + + <li>Von den XML-Befehlen der <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/core/Core.html">Applikationsschnittstelle +Security-Layer</a> wird genau ein Befehl unterstützt, +und zwar jener zur Prüfung von XML-Signaturen (<span class="term">VerifyXMLSignature</span>).</li> + + <li>Hinsichtlich der <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/bindings/Bindings.html">Transportprotokolle +des Security-Layer</a> wird ausschließlich die +HTTP-Bindung unterstützt, wobei für diese Bindung +zusätzlich folgende Einschränkungen gelten: + <ul> + + <li>Keine Unterstützung der Formularparameter +RedirectURL und StylesheetURL.</li> + + <li>Verpflichtende Verwendung des Formularparameters +DataURL. </li> + + <li>Keine Unterstützung von Weitergabe-Parametern +und Weitergabe-Headern.</li> + + <li>Keine Referenzierbarkeit von Formularfeldern.</li> + + <li>Hinsichtlich der Ablaufsteuerung laut <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/bindings/Bindings.html#http.ablauf.schritte">Abschnitt +3.2.3</a> wird ausschließlich Fall 5e +unterstützt. </li> + + </ul> + </li> + + <li>Hinsichtlich der Anzeigeformate des Security-Layer wird +ausschließlich das <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/minimum/Minimum.html#anzeigeformate.formate.slxhtml">Standardanzeigeformat +des Security-Layers</a> unterstützt. Liegen die von der +zu prüfenden Signatur gesicherten Daten in einem anderen +Format vor, können diese nicht angezeigt, sondern stattdessen +per Download bezogen werden. </li> + </ul> -<h4><a name="webservice_basisinstallation_installation_tomcatstartstop" id="webservice_basisinstallation_installation_tomcatstartstop"></a>2.1.2.4 Starten und Stoppen von Tomcat</h4> -<h5><a name="webservice_basisinstallation_installation_tomcatstartstop_windows" id="webservice_basisinstallation_installation_tomcatstartstop_windows"></a>2.1.2.4.1 Unter Windows</h5> -<div id="block"> - <p>Das Verzeichnis <code>$MOA_SPSS_INST/tomcat/win32</code> enthält Script-Dateien zum Starten und Stoppen von Tomcat. Vor der erstmaligen Verwendung der Scripts müssen in den ersten Zeilen die Umgebungsvariablen <code>JAVA_HOME</code> (Basisverzeichnis des eingesetzten J2SE SDK) und <code>CATALINA_HOME</code> (Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst werden. Evtl. müssen Sie auch noch die in den Script-Dateien gesetzten, in Abschnitt 2.1.2.3 besprochenen <span class="term">System Properties</span> anpassen. </p> -</div> -<h5><a name="webservice_basisinstallation_installation_tomcatstartstop_unix" id="webservice_basisinstallation_installation_tomcatstartstop_unix"></a>2.1.2.4.2 Unter Unix</h5> -<p>Zunächst müssen die in Abschnitt 2.1.2.3 besprochenen <span class="term">System Properties</span> mit Hilfe der Umgebungsvariablen <code>CATALINA_OPTS</code> gesetzt sein. Die Datei <code>$MOA_SPSS_INST/tomcat/unix/moa-env.sh</code> enthält ein Beispiel dafür. Weiters müssen noch die Umgebungsvariablen <code>JAVA_HOME</code> (Basisverzeichnis des eingesetzten J2SE SDK) und <code>CATALINA_HOME</code> (Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst werden.</p> -<p>Nun kann Tomcat aus seinem Basisverzeichnis mit </p> -<pre>bin/catalina.sh start</pre> -gestartet werden. Das Stoppen von Tomcat erfolgt analog mit -<pre>bin/catalina.sh stop</pre> -<h5><a name="webservice_basisinstallation_installation_tomcatstartstop_verify" id="webservice_basisinstallation_installation_tomcatstartstop_verify"></a>2.1.2.4.3 Prüfen des erfolgreichen Starts </h5> -<div id="block"> - <p>Ein erfolgreicher Start des MOA SP/SS Webservices ist an folgender Log-Meldung ersichtlich: <br> - </p> -</div> -<pre>INFO | 18 10:09:45,155 | main | TID=startup NID=<null> MSG=MOA Konfiguration erfolgreich geladen -</pre> -<p>Bei leichten Fehlern in der Konfiguration geben <code>WARN</code> Log-Meldungen unmittelbar davor Aufschluss über fehlerhafte Konfigurations-Einträge. - Nach dem Starten von Tomcat steht das MOA SP/SS Webservice für die Server-Signatur und Signatur-Prüfung unter den Endpunkten </p> -<pre>http://<host>:<port>/moa-spss/services/SignatureCreation -</pre> -<p>bzw. + +<h1><a name="komponenten" id="komponenten"></a>3 +Komponenten</h1> + +<h2><a name="komponenten.sl2moafilter" id="komponenten"></a>3.1 +Der Filter <code>SL2MOAFilter</code></h2> + +<p>Die Klasse <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code> +ist ein +<code><abbr title="javax.servlet.Filter">Filter</abbr></code>, +der einerseits +den <code><abbr title="javax.servlet.http.httpservletrequest=">HttpServletRequest</abbr> +verändert, bevor er an das Servlet <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> +weitergeleitet wird, und andererseits den <code><abbr title="javax.servlet.http.HttpServletResponse">HttpServletResponse</abbr></code> +verändert, nachdem er vom Servlet <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> +bearbeitet wurde.</code></p> + +<p>Der <code><abbr title="javax.servlet.http.HttpServletRequest">HttpServletRequest</abbr></code> +enhält ja zunächst den Request zur Prüfung +der XML-Signatur in einem Format entsprechend der <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/">Spezifikationen +zur österreichischen Bürgerkarte</a> in der +Version 1.2 (SL-Request). Das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> +erwartet sich jedoch den +Request zur Prüfung der XML-Signatur in einem Format +entsprechend der Webservice-Schnittstelle für das Basismodul +MOA SP (MOA-Request). Aufgabe des <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code>s +ist es daher, vor der Ausführung des <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code>s +für eine passende Umsetzung des SL-Requests in den +entsprechenden MOA-Request zu sorgen. Zur Erfüllung dieser +Aufgabe bedient sich der <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code> +der Klasse <code><abbr title="at.gv.egovernment.moa.spss.slinterface.transformers.SL2MOA">SL2MOA</abbr></code>, +in der die +Request-Transformation gekapselt ist.</p> + +<p>Das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> +würde dann die Antwort des Basismoduls MOA SP in einem Format +entsprechend der Webservice-Schnittstelle für das Basismodul +MOA SP (MOA-Response) retournieren. Die Anwendung, die das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> +aufruft, erwartet sich jedoch die Antwort auf den Request zur +Prüfung +der XML-Signatur in einem Format entsprechend der <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/">Spezifikationen +zur österreichischen Bürgerkarte</a> in der +Version 1.2 (SL-Response). Aufgabe des <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code>s +ist es daher, nach der Ausführung des <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code>s +für eine passende Umsetzung der MOA-Response in die +entsprechende SL-Response zu sorgen. Zur Erfüllung +dieser +Aufgabe bedient sich der <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code> +der Klasse <code><abbr title="at.gv.egovernment.moa.spss.slinterface.transformers.MOA2SL">MOA2SL</abbr></code>, +in der die +Response-Transformation gekapselt ist.</p> + +<p>Eine weitere Aufgabe der Klasse <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code> +ist es schließlich, die JSP-Seite <code>resultoverview.jsp</code> +einzubinden, die für eine benutzertaugliche HTML-Darstellung +der SL-Response sorgt. Diese benutzertaugliche Darstellung wird dann +tatsächlich als finales Resultat des <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code>s +an die Anwendung zurückübermittelt. Bevor die +JSP-Seite eingebunden wird, erzeugt <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code> +Java Beans aus den Informationen der SL-Response und speichert sie im +Request Scope bzw. Session Scope. Diese Java Beans werden dann von der +JSP-Seite zum +Aufbau der benutzertauglichen HTML-Darstellung herangezogen. +Für weitere Informationen zur JSP-Seite sowie zu den von ihr +verwendeten Java Beans siehe <a href="#komponenten.resultoverview">Abschnitt 3.3</a>. </p> -<pre>http://<host>:<port>/moa-spss/services/SignatureVerification -</pre> -<p>zur Verfügung. Die Verfügbarkeit des Services können Sie einfach überprüfen, indem Sie die Endpunkte mit einem Web-Browser aufgerufen; dies sollte nach erfolgreichem Start zur Anzeige einer Informationsseite führen. </p> -<p>Konnte das MOA SP/SS Webservice nicht ordnungsgemäß gestartet werden, führt das zu folgender Log-Meldung:</p> -<pre>FATAL | 18 10:17:03,475 | main | TID=startup NID=<null> <br> MSG=Fehler beim Lesen der MOA Konfiguration: das Service steht nicht zur Verfügung -</pre> -In diesem Fall geben die <code>WARN</code> bzw. <code>ERROR</code> Log-Meldungen unmittelbar davor Aufschluss über den genaueren Grund. -<h4><a name="webservice_basisinstallation_installation_changeonthefly" id="webservice_basisinstallation_installation_changeonthefly"></a>2.1.2.5 Änderung der Konfiguration im laufenden Betrieb </h4> -<p> Sie können die Konfiguration für MOA SP/SS im laufenden Betrieb aktualisieren, in dem Sie mittels eines Web-Browsers folgende URL aufrufen:</p> -<pre> http://<host>:<port>/moa-spss/ConfigurationUpdate </pre> -<p>Damit dies funktioniert, muss in der Konfiguration von Tomcat ein spezieller Benutzer sowie eine spezielle Benutzerrolle eingerichtet werden (vergleiche Abschnitt <a href="#webservice_basisinstallation_installation_tomcatconfig_moaadmin">2.1.2.2.3</a>). </p> -<h3><a name="webservice_basisinstallation_logging" id="webservice_basisinstallation_logging"></a>2.1.3 Logging </h3> -<p>Das MOA SP/SS Webservice verwendet <a href="#referenziertesoftware">Jakarta Log4j</a> für die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Log4j bietet zahlreiche Konfigurationsmöglichkeiten, die ausführlich im <a href="#referenziertesoftware">Jakarta Log4j</a> Handbuch beschrieben sind. Unter anderem gibt es die Möglichkeit, folgende Einstellungen vorzunehmen: + +<h2><a name="komponenten.moaservlet" id="komponenten"></a>3.2 +Das Servlet <code>MOAServlet</code></h2> + +<p>Die Klasse <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet"> +MOAServlet</abbr></code> ist ein <code><abbr title="javax.servlet.http.HttpServlet">HttpServlet</abbr></code> +und als solches für die Kommunikation mit dem Basismodul MOA +SP verantwortlich. </p> + +<p>Das Servlet liest aus dem <code><abbr title="javax.servlet.ServletInputStream">ServletInputStream</abbr></code> +des <code><abbr title="javax.servlet.http.HttpServletRequest">HttpServletRequest</abbr></code>s +den MOA SP Request +zur Prüfung der XML-Signatur und sendet diesen XML-Request +unter Verwendung der Webservice-Schnittstelle von MOA SP an das +Basismodul MOA SP.</p> + +<p>Danach liest das Servlet die vom Basismodul MOA SP auf den +Request zur Prüfung der XML-Signatur +rückübermittelte Response und schreibt diese +XML-Response in den <code><abbr title="javax.servlet.ServletOutputStream">ServletOutputStream</abbr></code> +der <code><abbr title="javax.servlet.http.HttpServletResponse">HttpServletResponse</abbr></code>.</p> + +<p>Das MOAServlet bedient sich zur Kommunikation mit MOA SP der +Klasse <code><abbr title="at.gv.egovernment.moa.spss.slinterface.moainvoker.MOAInvoker"> +MOAInvoker</abbr></code>, in der die +Funktionalität des Webservice-Clients für MOA SP +gekapselt ist.</p> + +<h2><a name="komponenten.resultoverview" id="komponenten"></a>3.3 Die JSP-Seite <code>resultOverview.jsp</code></h2> + +<p>Die JSP-Seite <code>resultOverview.jsp</code> ist +verantwortlich für die Aufbereitung +einer benutzertauglichen HTML-Darstellung der SL-Response, die +das Servlet <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> +im Zusammenspiel mit dem Filter <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code> +erzeugt. </p> + +<p>Die für die Aufbereitung erforderlichen Informationen +werden der JSP-Seite in Form von Java Beans zur Verfügung +gestellt, die zuvor vom <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter +</abbr></code>erzeugt worden sind (vergleiche <a href="#komponenten.sl2moafilter">Abschnitt 3.1</a>). +Folgende Java Beans stehen der JSP-Seite zur Verfügung:</p> + <ul> - <li id="klein"> - <p>Das verwendete Log-Level (<code>DEBUG</code>, <code>INFO</code>, <code>WARN</code>, <code>ERROR</code>, <code>FATAL</code>);</p> - </li> - <li id="klein"> - <p>Name und maximale Größe der Log-Datei(en);</p> - </li> - <li id="klein"> - <p>Das Aussehen der Log-Einträge.</p> - </li> + + <li><code><abbr title="at.gv.egovernment.moa.spss.slinterface.beans.DataInfoBean">DataInfoBean</abbr></code>: +Enthält +alle notwendigen Informationen zu den von der geprüften +XML-Signatur gesicherten Dokumenten. Beim Erzeugen dieser Java Bean +werden unter anderem die gesicherten Dokumente für den +späteren Abruf durch die Anwendung (vergleiche + <a href="#komponenten.hashinputservlet">Abschnitt 3.4</a>) +im Filesystem zwischengespeichert sowie die Prüfung +vorgenommen, ob es sich bei einem gesicherten Dokument um ein +XHTML-Dokument gemäß <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/">Spezifikationen +zur österreichischen Bürgerkarte</a> in der +Version 1.2 handelt (SLXHTML-Dokument) oder nicht. Die Bean ist im +Session Scope abgelegt.</li> + + <li><code><abbr title="at.gv.egovernment.moa.spss.slinterface.beans.SignerInfoBean">SignerInfoBean</abbr></code>: +Enthält +alle notwendigen Informationen zum Ersteller der geprüften +XML-Signatur. Die Bean ist im Servlet Scope abgelegt.</li> + + <li><code><abbr title="at.gv.egovernment.moa.spss.slinterface.beans.ChecksInfoBean">ChecksInfoBean</abbr></code>: +Enthält +alle notwendigen Informationen zum Ergebnis der Prüfung der +XML-Signatur. Die Bean ist im Servlet Scope abgelegt.</li> + </ul> - <p>Das MOA SP/SS Webservice verwendet folgende Log-Hierarchien: </p> + +<p>Die JSP-Seite <code>resultOverview.jsp</code> +erzeugt aus den mittels der erwähnten Java Beans zur +Verfügung gestellten Informationen eine HTML-Darstellung. +Diese HTML-Darstellung ist in die folgenden Informationsblöcke +unterteilt:</p> + <ul> - <li> - <p><code>moa.spss.server</code> für alle Log-Meldungen aus dem MOA/SPSS Webservice; </p> - </li> - <li> - <p><code>iaik.server</code> für alle Log-Meldungen aus den SIC/IAIK Kryptographie-Modulen. </p> - </li> + + <li>Informationen zum Ersteller der geprüften +XML-Signatur: Name des Erstellers, Name des Ausstellers des +Zertifikats, Angaben zur Qualität des Zertifikats.</li> + + <li>Informationen zum Ergebnis der Prüfung der +XML-Signatur: Ergebnis der Signaturprüfung, Ergebnis der +Prüfung des Zertifikats.</li> + + <li>Informationen zu jedem von der XML-Signatur gesicherten +Dokument: Angabe, ob es sich beim Dokument um ein SLXHTML-Dokument +handelt, Link zum Download des gesicherten Dokuments. Wenn es sich um +ein SLXHTML-Dokument handelt, wird das Dokument bei Verfolgung des +Links in einem neuen Browserfenster angezeigt, ansonsten kann das +Dokument heruntergeladen und gespeichert werden.</li> + </ul> - <p>Eine für MOA SP/SS passende Konfigurationsdatei für Log4j finden Sie <a href="../../conf/moa-spss/log4j.properties">hier</a>. Wird diese Datei als Logging-Konfiguration verwendet, so werden alle Log-Meldungen sowohl in die Konsole, als auch in die Datei <code>moa-spss.log</code> geschrieben. </p> - <h4><a name="webservice_basisinstallation_logging_format" id="webservice_basisinstallation_logging_format"></a>2.1.3.1 Format der Log-Meldungen</h4> - <p> Anhand einer konkreten Log-Meldung wird das Format der MOA SP/SS Log-Meldungen erläutert: </p> - <pre>INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=node1 - MSG=Starte neue Transaktion: TID=1049225059594-100, Service=SignatureVerification -</pre> -<p> Der Wert <code>INFO</code> besagt, dass die Log-Meldung im Log-Level <code>INFO</code> entstanden ist. Folgende Log-Levels existieren:</p> - <ul> - <li> - <p><code>DEBUG</code>: Log-Meldungen im Log-Level <code>DEBUG</code> geben Auskunft über die innere Arbeitsweise des Systems. Sie sind hauptsächlich für Entwickler interessant.</p> - </li> - <li> - <p><code>INFO</code>: Diese Log-Meldungen geben Status-Informationen über den Ablauf des Webservices, wie z.B. über das Einlangen einer neuen Anfrage.</p> - </li> - <li> - <p><code>WARN</code>: Bei der Ausführung einer Anfrage sind leichte Fehler aufgetreten. Der Ablauf des Webservices ist nicht weiter beeinträchtigt.</p> - </li> - <li> - <p><code>ERROR</code>: Die Ausführung einer Anfrage musste abgebrochen werden. Das Webservice ist davon nicht beeinträchtigt. </p> - </li> - <li> - <p><code>FATAL</code>: Es ist ein Fehler aufgetreten, der den weiteren Betrieb des Webservices nicht mehr erlaubt.</p> - </li> - </ul> - <p>Der nächste Wert <code>01 21:25:26,540</code> gibt den Zeitpunkt an, zu dem die Log-Meldung generiert wurde (in diesem Fall den 1. Tag im aktuellen Monat, sowie die genaue Uhrzeit). </p> - <p> Der Wert <code>Thread-3</code> bezeichnet den Thread, von dem die Anfrage bearbeitet wird.</p> - <p> Der Wert von <code>TID</code> gibt die für jede Anfrage eindeutige Transaktions-ID an. Log-Meldungen, die bei der Abarbeitung dieser Anfrage geschrieben werden, enthalten alle einen Hinweis auf die entsprechende Transaktions-ID.</p> - <p> Der Wert von <code>NID</code> gibt den Rechner-Knoten an, auf dem das MOA SP/SS Webservice läuft (bei <code>NID=<null></code> ist dieser Wert nicht konfiguriert, vergleiche Abschnitt <a href="#webservice_basisinstallation_installation_spssdeploy">2.1.2.3</a>).</p> - <p> Der Rest der Zeile einer Log-Meldung ist der eigentliche Text, mit dem das System bestimmte Informationen anzeigt. Im Fehlerfall ist häufig ein Java Stack-Trace angefügt, der eine genauere Ursachen-Forschung ermöglicht.</p> - <h4> <a name="webservice_basisinstallation_logging_messages" id="webservice_basisinstallation_logging_messages"></a>2.1.3.2 Wichtige Log-Meldungen</h4> - <p> Neben den im Abschnitt <a href="#webservice_basisinstallation_installation_tomcatstartstop_verify">2.1.2.4.3</a> beschriebenen Log-Meldungen, die anzeigen, ob das Service ordnungsgemäß gestartet wurde, geben nachfolgenden Log-Meldungen Aufschluss über die Abarbeitung von Anfragen. </p> - <p>Die Entgegennahme einer Anfrage wird angezeigt durch: - - </p> - <pre>INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null> - MSG=Starte neue Transaktion: TID=1049225059594-100, Service=SignatureVerification -INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null> - MSG=Aufruf von Adresse=127.0.0.1 -INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null> - MSG=Client-Zertifikat nicht verfügbar</pre> - <p> Die dritte Log-Meldung besagt, dass für die Abarbeitung dieser Anfrage kein Client-Zertifikat verfügbar ist (entweder, weil die Anfrage über HTTP eingelangt ist, oder weil die SSL Client-Authentisierung nicht eingeschaltet ist). Bei erfolgreicher SSL Client-Authentisierung, gibt beispielsweise folgende Log-Meldung Informationen über das Client-Zertifikat aus: - <pre>INFO | 12 13:58:08,772 | Thread-10 | TID=1045054687159-2 NID=<null> - MSG=Client-Zertifikat: Subject=CN=Testuser, OU=MOA, O=BRZ, L=Vienna, ST=Vienna, C=AT, - Serial=1.039.104.204, Issuer=CN=TestCA, OU=MOA, O=BRZ, L=Vienna, ST=Vienna, C=AT</pre> - <p>Eine erfolgreich abgearbeitete Anfrage wird angezeigt durch: - </p> - <pre>INFO | 01 21:25:53,168 | Thread-3 | TID=1049225059594-106 NID=<null> - MSG=Anfrage erfolgreich abgearbeitet</pre> - <p>Ein Fehler beim Abarbeiten der Anfrage wird angezeigt durch: </p> - <pre>INFO | 01 21:25:27,642 | Thread-3 | TID=1049225059594-100 NID=<null> - MSG=Fehler beim Abarbeiten der Anfrage</pre> - <div id="block"> - <p>In diesem Fall gibt der mitgeloggte Stacktrace Auskunft über die Art des Fehlers. Der Aufrufer des MOA SP/SS Webservices bekommt einen Fehlercode sowie eine kurze Beschreibung des Fehlers als Antwort zurück. </p> - <p> Die Tatsächlich übertragenen Anfragen bzw. Antworten werden aus Effizienzgründen nur im Log-Level <code>DEBUG</code> angezeigt. </p> - </div> - <h2><a name="webservice_erweiterungsmöglichkeiten" id="webservice_erweiterungsmöglichkeiten"></a>2.2 Erweiterungsmöglichkeiten</h2> -<p>Ausgehend von der <a href="#webservice_basisinstallation">Basisinstallation</a> können die optionalen Erweiterungen, die in den nachfolgenden Abschnitten beschrieben werden, unabhängig und in beliebiger Kombination aufgesetzt werden.</p> - <h3><a name="webservice_erweiterungsmöglichkeiten_webserver" id="webservice_erweiterungsmöglichkeiten_webserver"></a>2.2.1 Vorgeschalteter Webserver</h3> - <h4><a name="webservice_erweiterungsmöglichkeiten_webserver_iis" id="webservice_erweiterungsmöglichkeiten_webserver_iis"></a>2.2.1.1 Microsoft Internet Information Server (MS IIS) </h4> - <p>Den MOA SP/SS Webservices kann optional ein MS IIS vorgeschaltet sein. In diesem Fall übernimmt der MS IIS die HTTP- bzw. HTTPS-Kommunikation mit dem Aufrufer des Webservices. Die Kommunikation zwischen MS IIS und dem in Tomcat eingerichteten MOA SP/SS Webservice wird durch <span class="term">Jakarta mod_jk</span> durchgeführt. Die angeführten Konfigurationsschritte gehen von einer MS IIS Standard-Installation aus.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_iis_jk" id="webservice_erweiterungsmöglichkeiten_webserver_iis_jk"></a>2.2.1.1.1 Konfiguration von <span class="term">Jakarta mod_jk</span> im MS IIS</h5> - <p> Für die Kommunikation des MS IIS mit dem im Tomcat eingerichteten MOA SP/SS Webservice wird das <span class="term">ISAPI</span>-Modul von <span class="term">Jakarta mod_jk</span> im MS IIS installiert und konfiguriert. Eine detaillierte Installations- und Konfigurationsanleitung gibt das <span class="term"><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/howto/iis.html" target="_blank">mod_jk</a></span><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/jk/iishowto.html"> IIS HowTo</a>. Beispiele für <code>workers.properties</code> und <code>uriworkermap.properties</code> Dateien liegen im Verzeichnis <code>$MOA_SPSS_INST/tomcat</code> bei.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_iis_tomcat" id="webservice_erweiterungsmöglichkeiten_webserver_iis_tomcat"></a>2.2.1.1.2 Konfiguration von Tomcat</h5> - <p> Damit Tomcat die Aufrufe entgegennehmen kann, die von MS IIS mittels <span class="term">Jakarta mod_jk</span> weiterleitet werden, muss in <code>$CATALINA_HOME/conf/server.xml</code> der <span class="term">AJP 1.3 Connector</span> aktiviert werden. Im Gegenzug können die Konnektoren für HTTP und HTTPS deaktiviert werden. Das geschieht am einfachsten durch Ein- bzw. Auskommentieren der entsprechenden <code>Connector</code> Konfigurations-Elemente in dieser Datei. Die Datei <code>$MOA_SPSS_INST/tomcat/server.mod_jk.xml</code> enthält eine Konfiguration, die ausschließlich den Port für den <span class="term">AJP 1.3 Connector</span> offen lässt.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_iis_ssl" id="webservice_erweiterungsmöglichkeiten_webserver_iis_ssl"></a>2.2.1.1.3 Konfiguration von SSL</h5> - <p> Die Dokumentation zum Einrichten von SSL auf dem MS IIS steht nach Installation des IIS unter http://localhost/iisHelp/ oder aber auch auf den Websiten vo Mircrosoft zur Verfügung. </p> - <h4><a name="webservice_erweiterungsmöglichkeiten_webserver_apache" id="webservice_erweiterungsmöglichkeiten_webserver_apache"></a>2.2.1.2 Apache</h4> - <p>Den MOA SP/SS Webservices kann ein Apache Webserver vorgeschaltet sein. Das Prinzip funktioniert wie bei MS IIS, auch hier wird <span class="term">Jakarta mod_jk</span> für die Kommunikation zwischen Webserver und Tomcat eingesetzt. Die angeführten Konfigurationsschritte gehen von einer Standard-Installation des Apache Webservers aus und sind ident für die Versionen 1.3.x und 2.0.x.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_apache_jk" id="webservice_erweiterungsmöglichkeiten_webserver_apache_jk"></a>2.2.1.2.1 Konfiguration von <span class="term">Jakarta mod_jk</span> im Apache </h5> - <p>Um das MOA-SPSS Webservice hinter einem Apache Webserver zu betreiben, ist die Konfiguration des Apache-Moduls <span class="term">mod_jk</span> erforderlich. Eine detaillierte Installations- und Konfigurationsanleitung gibt das <span class="term"><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/howto/apache.html" target="_blank">mod_jk</a></span><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/howto/apache.html" target="_blank"> Apache HowTo</a>. Ein Beispiel für eine <code>workers.properties</code> Datei liegt im Verzeichnis <code>$MOA_SPSS_INST/tomcat</code> bei.</p> - <p>Um das MOA SP/SS Webservice dem Apache Webserver bekannt zu machen, sind zumindest folgende Einträge im globalen Kontext der Apache-Konfigurationsdatei notwendig:</p> - <pre>LoadModule jk_module /usr/lib/apache/mod_jk.so<br>AddModule jk_module<br>JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories<br>JkWorkersFile conf/workers.properties <br>JkMount /moa-spss/* moaworker </pre> - <p>Die Pfad- und Dateinamen können je nach existierender Apache Installation geringfügig variieren.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_apache_tomcat" id="webservice_erweiterungsmöglichkeiten_webserver_apache_tomcat"></a>2.2.1.2.2 Konfiguration von Tomcat</h5> - <p>Die Konfiguration von Tomcat ist analog zu Abschnitt <a href="#webservice_erweiterungsmöglichkeiten_webserver_iis_tomcat">2.2.1.1.2</a> durchzuführen.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_webserver_apache_ssl" id="webservice_erweiterungsmöglichkeiten_webserver_apache_ssl"></a>2.2.1.2.2 Konfiguration von SSL mit <span class="term">mod_SSL</span></h5> - <p>Apache kann in Verbindung mit <span class="term">mod_SSL</span> als SSL-Endpunkt für das MOA SP/SS Webservice fungieren. In diesem Fall entfällt die SSL-Konfiguration in Tomcat, da Apache und Tomcat auch im Fall von SSL Daten via <span class="term">mod_jk</span> austauschen. Eine detaillierte Installations- und Konfigurationsanleitung enthält die <a href="http://www.modssl.org/docs/" target="_blank">Online-Dokumentation</a> von <span class="term">mod_SSL</span>.</p> - <p>Bei der Verwendung von Client-Authentisierung muss darauf geachtet werden, dass <span class="term">mod_ssl</span> die HTTP-Header mit den Informationen über das Client-Zertifikat exportiert. Dies wird durch Angabe der folgenden Option in der Apache-Konfiguration erreicht: </p> - <pre>SSLOptions +ExportCertData +StdEnvVars</pre> - <p>Je nach vorhandener SSL-Konfiguration des Apache Webservers kann diese Option im globalen Kontext, im Kontext des Virtual Hosts oder im Kontexts eines Verzeichnisses spezifiziert werden.</p> - <h3><a name="webservice_erweiterungsmöglichkeiten_datenbank" id="webservice_erweiterungsmöglichkeiten_datenbank"></a>2.2.2 Datenbank</h3> - <p>Die MOA SP/SS Module können eine Datenbank zum Archivieren von Certificate Revocation Lists (CRLs), sowie zum Abspeichern von Log-Meldungen verwenden. In beiden Fällen wird eine installierte und konfigurierte Datenbank vorausgesetzt.</p> - <h4><a name="webservice_erweiterungsmöglichkeiten_datenbank_postgresql" id="webservice_erweiterungsmöglichkeiten_datenbank_postgresql"></a>2.2.2.1 PostgreSQL</h4> - <p>Eine detaillierte Übersicht über die Installation und Konfiguration von <span class="term">PostgreSQL</span> gibt die <a href="http://techdocs.postgresql.org/" target="_blank">Online-Dokumentation</a>. </p> - <p class="term">Bitte beachten Sie: Eine Möglichkeit, PostgreSQL unter MS Windows zu installieren, besteht darin, <a href="http://sources.redhat.com/cygwin/" target="_blank">Cygwin</a> mit dem PostgreSQL-Package zu installieren. Alternative Installationsvarianten werden auf <a href="http://techdocs.postgresql.org/guides/Windows" target="_blank">dieser Seite</a> angeführt.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_benutzer" id="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_benutzer"></a>2.2.2.1.1 Anlegen eines Benutzers und einer Datenbank für MOA SP/SS</h5> - <p>Damit die MOA SP/SS Module eine Verbindung zu <span class="term">PostgreSQL</span> aufbauen kann, müssen der Name eines <span class="term">PostgreSQL</span>-Benutzers und einer <span class="term">PostgreSQL</span>-Datenbank bekannt sein. Sollten diese nicht vorhanden sein, kann mit folgenden Kommandos ein Benutzer namens <code>moa</code> und eine Datenbank namens <code>moadb</code> angelegt werden:</p> - <pre>createuser -U postgres -d -A -P moa<br>createdb -U moa moadb</pre> - <p>Da die MOA SP/SS Module über <span class="term">JDBC</span> mit der Datenbank kommunizieren, ist in der Folge die Angabe einer <span class="term">JDBC</span>-URL notwendig, welche die Verbindungsparameter enthält. Wurden der Benutzer und die Datenbank wie im obigen Beispiel angelegt, ist folgende <span class="term">JDBC</span>-URL anzugeben (Annahme: als Passwort für den Benutzer moa wurde moapass gewählt):</p> - <pre> jdbc:postgresql://host/moadb?user=moa&password=moapass</pre> - <p>Die Zeichen <code>jdbc:postgresql://</code> sind unveränderliche Bestandteile einer <span class="term">PostgreSQL</span> <span class="term">JDBC</span>-URL. <code>host</code> gibt den Rechner an, auf dem <span class="term">PostgreSQL</span> läuft. <code>moadb</code> identifiziert den Namen der Datenbank. Über die Parameter <code>user=</code> und <code>pass=</code> werden Benutzername und Passwort für den DB-User bekanntgegeben.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_crls" id="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_crls"></a>2.2.2.1.2 Archivierung von CRLs</h5> - <p>Zum Archivieren von CRLs müssen in der MOA SP/SS Konfigurationsdatei die Kinder des Elements <code>cfg:MOAConfiguration/cfg:SignatureVerification/cfg:CertificateValidation/cfg:RevocationChecking/cfg:Archiving</code> entsprechend - konfiguriert werden: </p> - <ul> - <li><code>cfg:EnableArchiving</code> muss auf den Wert <code>true</code> gesetzt sein;</li> - <li><code>cfg:ArchiveDuration</code> muss als nichtnegative Ganzzahl die maximale Archivierungsdauer in Tagen enthalten;</li> - <li><code>cfg:Archive</code> muss genau ein Element <code>cfg:DatabaseArchive</code> enthalten, das wiederum aus zwei Elementen - bestehen muss: - <ul> - <li><code>cfg:JDBCURL</code> muss eine gültige JDBC-URL enthalten, mit der auf die Datenbank zur Archivierung - zugegriffen werden kann (<span class="remark">Hinweis: da es sich hierbei um einen Eintrag - in eine XML-Datei handelt, muss das Zeichen <code>&</code> in der in Abschnitt <a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql_benutzer">2.2.2.1.1</a> gezeigten - JDBC-URL - durch die Zeichenfolge <code>&amp;</code> ersetzt werden.</span>);</li> - <li><code>cfg:JDBCDriverClassName</code> muss den vollständig qualifizierten Java-Klassennamen des JDBC-Treibers - enthalten. </li> - </ul> - </li> - </ul> - <p>Vergleiche auch Abschnitt <a href="../config/config.html#konfigurationsparameter_sp_certificatevalidation_revocationchecking_archiving">2.3.1.3.4</a> im - Konfigurationshandbuch.</p> - <h5><a name="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_logging" id="webservice_erweiterungsmöglichkeiten_datenbank_postgresql_logging"></a>2.2.2.1.3 Logging</h5> - <p>Für das Logging in eine <span class="term">PostgreSQL</span> Datenbank mittels <span class="term">Jakarta Log4j</span> muss zunächst eine Tabelle für die Log-Meldungen angelegt werden. Dies kann mit folgendem SQL-Statement erreicht werden:</p> - <pre> create table spss_log (log_time timestamp, log_level varchar(5), log_msg text);</pre> - <p>Damit <span class="term">Log4j</span> die Log-Meldungen in diese Datenbanktabelle schreibt, muss die <span class="term">Log4j</span>-Konfiguration adaptiert werden. Die mit MOA SP/SS mitgelieferte, beispielhafte <a href="../../conf/moa-spss/log4j.properties">Log4j-Konfiguration</a> enthält bereits die notwendigen Einträge für das Logging in eine PostgreSQL Datenbank, die jedoch standardmäßig ausgeschaltet sind. </p> - <p>Wie beim Caching von CRLs ist auch hier die Angabe einer <span class="term">JDBC</span>-URL notwendig, damit die MOA SP/SS Module eine Verbindung zur Datenbank aufnehmen können.</p> - <p><span class="remark">Bitte beachten Sie: Bei Tests hat sich das Logging in eine Datenbank mit Jakarta Log4j als Performance-Engpass herausgestellt. Es wird deshalb empfohlen, dieses Feature mit Bedacht einzusetzen.</span></p> - <h4><a name="webservice_erweiterungsmöglichkeiten_datenbank_andere" id="webservice_erweiterungsmöglichkeiten_datenbank_andere"></a>2.2.2.2 Andere Datenbanken </h4> - <p>Über die generische Anbindung JDBC können auch andere Datenbanken für die Archivierung von CRLs bzw. für die Speicherung der Log-Meldungen eingesetzt werden. Hinweise zu bestimmten Datenbanken finden Sie in den <a href="../faq/faq.html">FAQ</a>. </p> - <p>Die in Abschnitt <a href="#webservice_erweiterungsmöglichkeiten_datenbank_postgresql">2.2.2.1</a> gemachten Angaben zu Archivierung von CRLs bzw. zur Speicherung von Log-Meldungen gelten sinngemäß. </p> - <h3><a name="webservice_erweiterungsmöglichkeiten_hsm" id="webservice_erweiterungsmöglichkeiten_hsm"></a>2.2.3 Hardware Security Module (HSM)</h3> - <p>MOA SS kann für die Erstellung von Signaturen auf die Dienste eines HSM zurückgreifen. Voraussetzung dafür ist, dass für das HSM eine Implementierung der Schnittstelle PCKS#11 (PKCS#11-Bibliothek) angeboten wird. </p> - <p>Für die Einbindung des HSM in MOA SS müssen zunächst die Bibliotheken aus <code>$MOA_SPSS_INST/pkcs11</code> in ein beliebiges Verzeichnis kopiert werden, welches dann in den Libray-Pfad des jeweiligen Betriebssystems aufgenommen werden muss (Windows: Umgebungsvariable <code>PATH</code>; Linux: Umgebungsvariable <code>LD_LIBRARY_PATH</code>). </p> - <p>Der Name der für das HSM spezifischen PKCS#11-Bibliothek muss in der Konfigurationsdatei eingetragen werden (vergleiche Abschnitt <a href="../config/config.html#konfigurationsparameter_ss_keymodules_hardwarekeymodule">2.2.1.1</a> des Konfigurationshandbuchs).</p> - <h1><a name="klassenbibliothek"></a>3 Klassenbibliothek</h1> - <p>Dieser Abschnitt beschreibt die Verwendung von MOA SP/SS als Klassenbibliothek. Im ersten Unterkapitel wird eine minimale Basisinstallation beschrieben. Das zweite Unterkapitel zeigt eine Reihe von optionalen Erweiterungsmöglichkeiten auf.</p> - <h2><a name="klassenbibliothek_basisinstallation" id="klassenbibliothek_basisinstallation"></a>3.1 Basisinstallation</h2> - <h3><a name="klassenbibliothek_basisinstallation_einfuehrung" id="klassenbibliothek_basisinstallation_einfuehrung"></a>3.1.1 Einführung </h3> - <p>Die Basisinstallation der Klassenbibliothek stellt einerseits die minimalen Anforderungen für den Einsatz von MOA SP/SS als Klassenbibliothek dar, andererseits dient sie als Ausgangspunkt für optionale Erweiterungsmöglichkeiten.</p> - <p> Folgende Software ist Voraussetzung für die Basisinstallation der Klassenbibliothek: </p> - <ul> - <li><a href="#referenziertesoftware">J2SE 1.3.1 JRE</a> oder <a href="#referenziertesoftware">J2SE 1.4.2 JRE</a> oder <a href="#referenziertesoftware">J2SE 5.0 JRE</a> </li> - </ul> - <h3><a name="klassenbibliothek_basisinstallation_vorbereitung" id="klassenbibliothek_basisinstallation_vorbereitung"></a>3.1.2 Vorbereitung </h3> - <p>Die folgenden Schritte dienen der Vorbereitung der Installation.</p> - <dl> - <dt>Installation von J2SE SDK</dt> - <dd>Installieren Sie <a href="#referenziertesoftware">J2SE 1.3.1 SDK</a> oder <a href="#referenziertesoftware">J2SE 1.4.2 SDK</a> oder <a href="#referenziertesoftware">J2SE 5.0 SDK</a> in ein beliebiges Verzeichnis. Wir empfehlen die Installation von <a href="#referenziertesoftware">J2SE 5.0 SDK</a>. Das Wurzelverzeichnis der J2SE SDK Installation wird im weiteren Verlauf als <code>$JAVA_HOME</code> bezeichnet. </dd> - <dt>Entpacken der MOA SP/SS Klassenbibliotheks-Distribution</dt> - <dd> Entpacken Sie die Datei <code>moa-spss-1.2.x-lib.zip</code> in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als <code>$MOA_SPSS_INST</code> bezeichnet. </dd> - <dt>Installation der Krypographiebibliotheken von SIC/IAIK</dt> - <dd> - <p>Die Installation der Kryptographiebibliotheken von <a href="http://jce.iaik.tugraz.at/" target="_blank">SIC/IAIK</a> ist abhängig vom eingesetzten J2SE SDK:</p> - <dl> - <dt>J2SE 1.3.1 SDK</dt> - <dd>Kopieren Sie alle Dateien aus dem Verzeichnis <code>$MOA_SPSS_INST/ext13</code> in das Verzeichnis <code>$JAVA_HOME/jre/lib/ext</code>.</dd> - <dt>J2SE 1.4.2 SDK oder JSE 5.0 SDK </dt> - <dd>Kopieren Sie alle Dateien aus dem Verzeichnis <code>$MOA_SPSS_INST/ext14</code> in das Verzeichnis <code>$JAVA_HOME/jre/lib/ext</code>. Zusätzlich müssen Sie die Rechtedateien Ihres J2SE 1.4.2 SDK bzw. J2SE 5.0 SDK austauschen. Laden Sie dazu die <span class="term">Unlimited Strength Jurisdiction Policy Files</span> von der <a href="http://java.sun.com/j2se/1.4.2/download.html" target="_blank">J2SE 1.4.2 SDK Downloadseite</a> bzw. <a href="http://java.sun.com/j2se/1.5.0/download.html">J2SE 5.0 SDK Downloadseite</a> und folgen Sie der darin enthaltenen Installationsanweisung. </dd> - </dl> - </dd> - </dl> - <h3><a name="klassenbibliothek_basisinstallation_verwendung" id="klassenbibliothek_basisinstallation_verwendung"></a>3.1.3 Verwendung</h3> - <p> Um die MOA SP/SS Klassenbibliothek in einer Applikation verwenden zu können, müssen die mit MOA SP/SS ausgelieferten Bibliotheken in den Java Klassenpfad der Applikation eingebunden werden. </p> - <p>Die nachfolgende Tabelle listet diese Klassenbibliotheken auf; die Einträge in der Spalte Dateien sind relativ zum Verzeichnis <code>$MOA_SPSS_INST</code> zu interpretieren.</p> -<table class="fixedWidth" border="1" cellpadding="2"> -<tbody><tr> -<th>Klassenbibliothek</th><th>Version</th><th>Dateien</th> - -</tr><tr> -<td>MOA SP/SS</td> -<td>1.2.x </td> -<td><code>moa-spss.jar</code>, <code>moa-common.jar</code></td> -</tr><tr> -<td>MOA IAIK</td> -<td>1.0.7 </td> -<td><p><code>lib/iaik_moa_full.jar</code>, <code>lib/iaik_Pkcs11Wrapper.jar</code>, - <code>lib/iaik_cms.jar</code>, <code>lib/iaik_ixsil.jar</code></p> - </td> -</tr><tr> -<td>JAXP</td><td>1.2_01 </td><td><code>lib/jaxp-api.jar</code>, <code>lib/sax.jar</code>, <code>lib/dom.jar</code></td> - -</tr><tr> -<td>Xerces-J</td><td>2.4.0 </td><td><code>lib/xercesImpl.jar</code>, <code>lib/xmlParserAPIs.jar</code></td> -</tr><tr> -<td>Xalan-J</td><td>2.5.1 </td><td><p><code>lib/xalan.jar</code></p> - <p class="remark">Bitte beachten Sie: Wenn Sie J2SE 1.4.2 JRE oder J2SE 5.0 JRE verwenden, müssen Sie diese Bibliothek der Java VM als endorsed bekanntgeben. Sie können dies tun, indem Sie entweder</p> - <ul> - <li class="remark">die Bibliothek in das (ggf. vorher anzulegende) Verzeichnis <code>$JAVA_HOME/jre/lib/endorsed/</code> kopieren; oder</li> - <li class="remark">die System Property <code>java.endorsed.dirs</code> verwenden, und als Wert den Pfad zu jenem Verzeichnis angeben, in dem Sie die Bibliothek vorhalten (also z.B. <code>java.endorsed.dirs=c:/mylibdir</code>).</li> - </ul></td> -</tr><tr> -<td>Jaxen</td><td>1.0 </td><td><code>lib/jaxen-core.jar</code>, <code>lib/jaxen-dom.jar</code>, <code>lib/saxpath.jar</code></td> - -</tr><tr> -<td>Commons-Logging</td> -<td>1.0.4 </td> -<td><code>lib/commons-logging-api.jar</code>, <code>lib/commons-logging.jar</code></td> -</tr><tr> -<td>Log4j</td><td>1.2.7 </td><td><code>lib/log4j-1.2.7.jar</code></td> -</tr><tr> -<td>Commons-Discovery</td><td>0.2 </td><td><code>lib/commons-discovery.jar</code></td> - -</tr><tr> -<td>JSSE</td><td>1.0.3_01 </td> -<td><p>Diese Bibliotheken benötigen Sie nur, wenn Sie J2SE 1.3.1 verwenden:</p> - <p><code>lib/ext13/jsse.jar</code>, <code>lib/ext13/jcert.jar</code>, <code>lib/ext13/jnet.jar</code></p> - <p class="remark">Bitte beachten Sie: Diese Bibliotheken benötigen Sie nur, wenn Sie J2SE 1.3.1 verwenden.</p> </td> -</tr><tr> -<td>Postgres JDBC2</td><td>7.3 </td><td><p><code>lib/pg73jdbc2.jar</code></p> - <p><span class="remark">Bitte beachten Sie: Wenn Sie keine Datenbank für MOA SP/SS verwenden (vergleiche </span><a href="#webservice_erweiterungsmöglichkeiten_datenbank">2.2.2</a><span class="remark">), benötigen Sie diese Bibliothek nicht.</span></p></td> -</tr><tr> -</tr> -</tbody></table> - - <h3><a name="klassenbibliothek_basisinstallation_logging" id="klassenbibliothek_basisinstallation_logging"></a>3.1.4 Logging</h3> - <p> Die MOA SP/SS Klassenbibliothek verwendet <a href="#referenziertesoftware">Jakarta Log4j</a> für die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Die im Abschnitt <a href="#webservice_basisinstallation_logging">2.1.3</a> gemachten Aussagen lassen sich großteils auf den Einsatz der MOA SP/SS Klassenbibliothek übertragen. </p> - <h2><a name="klassenbibliothek_erweiterungsmöglichkeiten" id="klassenbibliothek_erweiterungsmöglichkeiten"></a>3.2 Erweiterungsmöglichkeiten </h2> - <p>Die im Abschnitt <a href="#webservice_erweiterungsmöglichkeiten">2.2</a> angeführten Erweiterungsmöglichkeiten für die MOA SP/SS Webservices gelten in analoger Weise auch für die Klassenbibliothek.</p> - <h1><a name="referenzierte_software"></a>A Referenzierte Software</h1> -<p>Auf folgende Software-Pakete wird in diesem Handbuch verwiesen:</p> -<table class="fixedWidth" border="1" cellpadding="2"> - <tr> - <th scope="col">Name</th> - <th scope="col">Beschreibung</th> - </tr> - <tr> - <td><a href="http://jakarta.apache.org/tomcat/index.html" target="_blank">Apache Tomcat 4.1.x </a></td> - <td>Servlet-Container des Apache Jakarta Projekts in der Version 4.1.x </td> - </tr> - <tr> - <td><a href="http://java.sun.com/j2se/1.3.1/" target="_blank">J2SE 1.3.1 SDK/JRE</a> </td> - <td>Java 2 Standard Edition in der Version 1.3.1 (Software Development Kit bzw. Java Runtime Environment) </td> - </tr> - <tr> - <td><a href="http://java.sun.com/j2se/1.4.2/" target="_blank">J2SE 1.4.2 SDK/JRE</a></td> - <td>Java 2 Standard Edition in der Version 1.4.2 (Software Development Kit bzw. Java Runtime Environment) </td> - </tr> - <tr> - <td><a href="http://java.sun.com/j2se/1.5.0/" target="_blank">J2SE 5.0 SDK/JRE</a> </td> - <td>Java 2 Standard Edition in der Version 5.0 (Software Development Kit bzw. Java Runtime Environment) </td> - </tr> - <tr> - <td><a href="http://jakarta.apache.org/log4j/" target="_blank">Jakarta Log4J </a></td> - <td>Logging Framework des Apache Jakarta Projekts </td> - </tr> + +<p>Ein Beispiel für die resultierende HTML-Darstellung +befindet sich <a href="../operation/images/testapp.screen2.png">hier</a>.</p> + +<h2><a name="komponenten.hashinputservlet" id="komponenten"></a>3.4 Das Servlet <code>HashInputDataServlet</code></h2> + +<p>Das Servlet <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.HashInputServlet">HashInputServlet</abbr></code> +ist +für die Verfügbarkeit der von der geprüften +XML-Signatur gesicherten Dokumente verantwortlich. </p> + +<p>In der HTML-Aufbereitung der SL-Response, die von der +JSP-Seite <code>resultOverview.jsp </code>erzeugt wird, +(vergleiche <a href="#komponenten.resultoverview">Abschnitt +3.3</a>) befinden sich Links auf alle gesicherten Dokumente. +Diese Links führen jeweils auf das Servlet <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.HashInputServlet">HashInputServlet</abbr></code>. </p> + +<p>Das Servlet entnimmt aus der aufgerufenen URL die Parameter +zum Auffinden des Session Scopes sowie die fortlaufende Nummer des +gesicherten Dokuments. Im Session Scope ist als Attribut die in <a href="#komponenten.resultoverview">Abschnitt 3.3</a> +erwähnte <code><abbr title="at.gv.egovernment.moa.spss.slinterface.beans.DataInfoBean">DataInfoBean</abbr></code>: +gespeichert, die alle notwendigen Informationen enthält, damit +das Servlet das angefragte gesicherte Dokument aus dem Filesystem lesen +und als Ergebnis an den Browser zurückliefern kann. Je nach +dem, ob es sich beim gesicherten Dokument um ein SLXHTML-Dokument +handelt oder nicht, wird der Content-Type Header der HTTP Response an +den Browser passend gesetzt.</p> + +<h2><a name="komponenten.returnservlet" id="komponenten"></a>3.5 +Das Servlet <code>ReturnServlet</code></h2> + +<p>Das Servlet <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code> +ist nach Quittierung der HTML-Darstellung zur geprüften +XML-Signatur durch den Benutzer für die Weiterleitung der +SL-Response an den DataURL-Server sowie für die Weiterleitung +der daraus resultierenden Antwort des DataURL-Servers an den Benutzer +verantwortlich.</p> + +<p>Damit verhält sich MOA SL genau wie in der +Spezifikation <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/bindings/Bindings.html">Transportprotokolle +Security-Layer</a> (Teil der <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/">Spezifikationen +zur österreichischen Bürgerkarte</a> in der +Version 1.2) in <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/bindings/Bindings.html#http.ablauf.schritte">Abschnitt +3.2.3</a> für den Fall 5e beschrieben ist: Wenn der +Benutzer die HTML-Aufbereitung der Ergebnisse der geprüften +XML-Signatur gesichtet hat und durch Verfolgung des darin enthaltenen +Links quittiert, sendet das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code> +die SL-Response an den DataURL-Server. Die URL des DataURL-Servers +wurde von der Anwendung im ursprünglichen Request an das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> +als Formular-Parameter angegeben. Der DataURL-Server antwortet auf das +Eintreffen der SL-Response mit einem HTTP-Response an das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code>, +diese wird vom <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code> +als Antwort auf das Quittieren der HTML-Darstellung an den Browser +weitergeleitet. </p> + +<p>Nachdem mit diesem Schritt die Bearbeitung der zur +Prüfung übermittelten XML-Signatur durch MOA-SL +abgeschlossen ist, wird am Ende des <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code> +die Session und damit alle gespeicherten Informationen zur +geprüften XML-Signatur gelöscht. </p> + +<h2><a name="komponenten.urlrewriter" id="komponenten"></a>3.6 +Die Klasse <code>URLRewriter</code></h2> + +<p>Die Klasse <code><abbr title="at.gv.egovernment.moa.spss.slinterface.URLRewriter">URLRewriter</abbr></code> +ist +für das Umschreiben von URLs verantwortlich die in der +HTML-Aufbereitung der SL-Response enthalten sind, die dem Benutzer in +seinem Webbrowser angezeigt wird.</p> + +<p>MOA SL kann so konfiguriert werden, dass die in der +HTML-Aufbereitung der SL-Response enthaltenen +URLs nicht direkt +auf +Ressourcen von MOA SL (z.B. die von der Signatur gesicherten +Dokumente), sondern auf einen Rewrite-Proxy +verweisen. Die URL auf die eigentliche Ressource von MOA SL ist in dem +umgeschriebenen Link als URL-Parameter kodiert. Der Rewrite-Proxy sorgt +für die Umsetzung des aus dem umgeschriebenen Link +resultierenden +Requests an ihn selbst in einen Request an MOA SL. </p> + +<p>Sinnvoll ist diese Konfigurationsvariante dann, wenn MOA SL +nicht direkt vom Internet aus erreichbar sein soll, sondern nur auf dem +Umweg über einen dedizierten Webserver, dem Rewrite-Proxy.</p> + +<p>Die Methode <code>rewrite</code> der Klasse <code><abbr title="at.gv.egovernment.moa.spss.slinterface.URLRewriter">URLRewriter</abbr></code> +wird bei der Erstellung der HTML-Aufbereitung der SL-Response durch die +JSP-Seite <code>resultOverview.jsp</code> jedenfalls +aufgerufen; die Entscheidung, ob die in die Methode übergebene +URL tatsächlich umgeschrieben wird oder nicht, entscheidet die +Methode auf Grund der Konfigurationseinstellungen von MOA SL.</p> + +<h2><a name="komponenten.webxml" id="komponenten"></a>3.7 +Der Deployment Descriptor <code>web.xml</code></h2> +<p> +Im Deployment Descriptor <code><abbr title="WEB-INF/web.xml">web.xml</abbr></code>des +Web Archives (WAR-File) von MOA SL sind im Wesentlichen folgende +Konfigurationen eingerichtet, die im Normalfall nicht verändert +werden müssen:</p> +<ul> + <li>Definition der URLs, unter denen die Servlets von MOA SL (<code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code>, <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.HashInputServlet">HashInputServlet</abbr></code>, <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code>) relativ zum Root der Web Application erreichbar sind (XML-Elemente <code>servlet</code> bzw. <code>servlet-mapping</code>).</li> + <li>Definition der Filter, die für das Servlet <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> zur Anwendung kommen sollen (XML Elemente <code>filter</code> bzw. <code>filter-mapping</code>). Die Konfiguration ist so eingerichtet, dass für das Servlet <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> genau ein Filter, nämlich <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code> konfiguriert ist. </li> +</ul> + +<h1><a name="zusammenspiel" id="zusammenspiel"></a>4 +Zusammenspiel der Komponenten</h1> + +<h1><a name="zusammenspiel.basis" id="zusammenspiel"></a>4.1 Basisablauf</h1> +<p>Die nachfolgende Grafik stellt das Zusammenspiel der Komponenten aus Abschnitt 3 mit dem Anwender und dem DataURL-Server dar.</p> +<p style="text-align: center;"><img style="width: 760px; height: 463px;" alt="Zusammenspiel der Komponenten - Basisablauf" src="images/Zusammenspiel.ohne.png" vspace="25"></p> +<table style="text-align: left; width: 983px; height: 216px;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td>1, 2</td> + <td> + <p>Prüfung der Signatur: Anfrage wird eigentlich an <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> gerichtet, durch die Filter-Konfiguration über den Deployment-Descriptor web.xml wird jedoch vorher und nachher der <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code> dazwischengeschalten. Die Aufbereitung der HTML-Darstellung der SL-Response wird vom <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code> an die JSP-Seite <code>resultOverview.jsp</code> delegiert.</p> + </td> + </tr> + <tr> + <td>3,4</td> + <td> + <p>Über die HTML-Ansicht der SL-Response kann der Anwender +die einzelnen, von der XML-Signatur gesicherten Dokumente abrufen. +Die Links für die Dokumente verweisen auf das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.HashInputServlet">HashInputServlet</abbr></code>, die Zuordnung im Servlet passiert über URL-Parameter (Session-ID, fortlaufende Nummer des Dokuments).</p> + </td> + </tr> + <tr> + <td>5, 6, 7, 8</td> + <td> + <p>In Schritt 5 quittiert der Anwender die HTML-Darstellung der +SL-Response. Das Quittieren funktioniert über einen Link in der +HTML-Darstellung, der auf das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code> verweist. Das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code> +sendet die SL-Response an den DataURL-Server. Der DataURL-Server +antwortet entsprechend auf die übermittelte SL-Response; diese +Antwort wird vom <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code> unverändert an den Antwender weitergeleitet.</p> + </td> + </tr> + </tbody> </table> +<h1><a name="zusammenspiel.rewrite" id="zusammenspiel"></a>4.2 Ablauf mit Rewrite-Proxy</h1> +Die nachfolgende Grafik stellt das Zusammenspiel der Komponenten aus +Abschnitt 3 mit dem Anwender und dem DataURL-Server dar, wobei die +Anfragen vom Anwender nicht direkt an MOA SL, sondern indirekt +über einen Rewrite-Proxy gestellt werden.<br> +<div style="text-align: center;"><img style="width: 1021px; height: 463px;" alt="Zusemmenspiel der Komponenten - mit Rewrite-Proxy" src="images/Zusammenspiel.mit.png" vspace="25"><br> +<div style="text-align: left;"> +<table style="text-align: left; width: 983px; height: 216px;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td>1, 2</td> + <td> + <p>Prüfung der Signatur: Anfrage wird eigentlich an <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> gerichtet, durch die Filter-Konfiguration über den Deployment-Descriptor web.xml wird jedoch vorher und nachher der <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code> dazwischengeschalten. Die Aufbereitung der HTML-Darstellung der SL-Response wird vom <code><abbr title="at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter">SL2MOAFilter</abbr></code> an die JSP-Seite <code>resultOverview.jsp</code> delegiert. Die Anfrage des Anwenders wird nicht direkt an das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet">MOAServlet</abbr></code> gerichtet, sondern über den Rewrite-Proxy, der die Anfrage-URL passend umschreibt.</p> + </td> + </tr> + <tr> + <td>3,4</td> + <td> + <p>Über +die HTML-Ansicht der SL-Response kann der Anwender die einzelnen, von +der XML-Signatur gesicherten Dokumente abrufen. Die Links für die +Dokumente verweisen nicht direkt auf das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.HashInputServlet">HashInputServlet</abbr></code>, sondern zunächst auf den Rewrite-Proxy, der die Links passend auf das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.HashInputServlet">HashInputServlet</abbr></code> umsetzt. Die Zuordnung im Servlet passiert über URL-Parameter (Session-ID, fortlaufende Nummer des Dokuments).</p> + </td> + </tr> + <tr> + <td>5, 6, 7, 8</td> + <td> + <p>In +Schritt 5 quittiert der Anwender die HTML-Darstellung der SL-Response. +Das Quittieren funktioniert über einen Link in der HTML-Darstellung, +der nicht direkt auf das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code> verweist, sondern zunächst auf den Rewrite-Proxy, der die Links passend auf das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code> umsetzt. Das <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code> +sendet die SL-Response an den DataURL-Server. Der DataURL-Server +antwortet entsprechend auf die übermittelte SL-Response; diese Antwort +wird vom <code><abbr title="at.gv.egovernment.moa.spss.slinterface.servlets.ReturnServlet">ReturnServlet</abbr></code> unverändert an den Antwender weitergeleitet.</p> + </td> + </tr> + </tbody> +</table> +</div> +</div> </body> </html> |