aboutsummaryrefslogtreecommitdiff
path: root/id/server/doc/moa_id/examples
diff options
context:
space:
mode:
authorkstranacher <kstranacher@d688527b-c9ab-4aba-bd8d-4036d912da1d>2012-02-20 11:21:24 +0000
committerkstranacher <kstranacher@d688527b-c9ab-4aba-bd8d-4036d912da1d>2012-02-20 11:21:24 +0000
commitd3352bc9db1891c8f90f8c542eac65da64a234d3 (patch)
treef7b7c932e39e201d22ef5232bf90081c2d357885 /id/server/doc/moa_id/examples
parent9b1af165432c82d64f49d3e3730534b224230b53 (diff)
parentb858a62942137068394790a22c10b968e1c41e0f (diff)
downloadmoa-id-spss-d3352bc9db1891c8f90f8c542eac65da64a234d3.tar.gz
moa-id-spss-d3352bc9db1891c8f90f8c542eac65da64a234d3.tar.bz2
moa-id-spss-d3352bc9db1891c8f90f8c542eac65da64a234d3.zip
MOA-IDSPSS Release 1.5.1.tags/1.5.1
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/tags/1.5.1@1271 d688527b-c9ab-4aba-bd8d-4036d912da1d
Diffstat (limited to 'id/server/doc/moa_id/examples')
-rw-r--r--id/server/doc/moa_id/examples/BKUSelectionTemplate.html41
-rw-r--r--id/server/doc/moa_id/examples/ChainingModes.txt6
-rw-r--r--id/server/doc/moa_id/examples/IdentityLinkSigners.txt9
-rw-r--r--id/server/doc/moa_id/examples/LoginServletExample.txt171
-rw-r--r--id/server/doc/moa_id/examples/SampleMOAIDVerifyInfoboxesConfiguration.xml149
-rw-r--r--id/server/doc/moa_id/examples/Template.html50
-rw-r--r--id/server/doc/moa_id/examples/TransformsInfoAuthBlockTable_DE.xml161
-rw-r--r--id/server/doc/moa_id/examples/conf/MOA-ID-Configuration.xml118
-rw-r--r--id/server/doc/moa_id/examples/conf/OAConfBasicAuth.xml9
-rw-r--r--id/server/doc/moa_id/examples/conf/OAConfHeaderAuth.xml10
-rw-r--r--id/server/doc/moa_id/examples/conf/OAConfParamAuth.xml10
-rw-r--r--id/server/doc/moa_id/examples/moa-id-env.sh.txt15
-rw-r--r--id/server/doc/moa_id/examples/startTomcat.bat.txt26
13 files changed, 775 insertions, 0 deletions
diff --git a/id/server/doc/moa_id/examples/BKUSelectionTemplate.html b/id/server/doc/moa_id/examples/BKUSelectionTemplate.html
new file mode 100644
index 000000000..731cc36fd
--- /dev/null
+++ b/id/server/doc/moa_id/examples/BKUSelectionTemplate.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>MOA ID - Auswahl der B&uuuml;rgerkartenumgebung</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="Author" content="Max Mustermann">
+ <meta name="keywords" content="MOA-ID">
+ <link rel="stylesheet" type="text/css" href="/moaid-templates/css/main.css">
+ <link rel="stylesheet" type="text/css" href="/moaid-templates/css/display.css" media="screen,projection,tv,handheld">
+</head>
+
+<body>
+<img src="/moaid-templates/SampleLogo.gif" alt='Organisation XY'>
+<h1 align="center">Auswahl der B&uuml;rgerkartenumgebung</h1>
+<p></p>
+<p>Sie haben sich f&uuml;r Anmeldung mit Ihrer B&uuml;rgerkarte entschieden. Da es verschiedene Formen der B&uuml;rgerkarte gibt, m&uuml;ssen Sie nun w&auml;hlen, welche Sie bei der Anmeldung verwenden wollen.</p>
+<h3>Auswahl der B&uuml;rgerkarte</h3>
+<form name="CustomizedForm" method="post" action="<StartAuth>">
+ <BKUSelect>
+ <input type="submit" value="Ausw&auml;hlen"/>
+</form>
+<br/>
+<p></p>
+
+ <input type="hidden" value="Weitere Info"/>
+</form>
+
+<h4>Hinweise: </h4>
+<ul>
+ <li>
+ <p>Wollen Sie eine A-Trust B&uuml;rgerkarte erwerben? Hier finden Sie Informationen
+ dazu: <a href="http://www.a-trust.at/" target="_blank">A-Trust
+ B&uuml;rgerkarte.</a> Bei der Anmeldung mit der A-Trust B&uuml;rgerkarte
+ ben&ouml;tigen Sie eine funktionsf&auml;hige B&uuml;rgerkartensoftware sowie
+ einen passenden Kartenleser.</p>
+ </li>
+</ul>
+
+
+</body>
+</html>
diff --git a/id/server/doc/moa_id/examples/ChainingModes.txt b/id/server/doc/moa_id/examples/ChainingModes.txt
new file mode 100644
index 000000000..820b60d06
--- /dev/null
+++ b/id/server/doc/moa_id/examples/ChainingModes.txt
@@ -0,0 +1,6 @@
+ <ChainingModes systemDefaultMode="pkix">
+ <TrustAnchor mode="chaining">
+ <dsig:X509IssuerName>CN=A-Trust-nQual-0,OU=A-Trust-nQual-0,O=A-Trust,C=AT</dsig:X509IssuerName>
+ <dsig:X509SerialNumber>536</dsig:X509SerialNumber>
+ </TrustAnchor>
+ </ChainingModes>
diff --git a/id/server/doc/moa_id/examples/IdentityLinkSigners.txt b/id/server/doc/moa_id/examples/IdentityLinkSigners.txt
new file mode 100644
index 000000000..15269ad79
--- /dev/null
+++ b/id/server/doc/moa_id/examples/IdentityLinkSigners.txt
@@ -0,0 +1,9 @@
+ <!-- Gueltige Signatoren des IdentityLink, der von der Buergerkarte gelesen wird -->
+ <IdentityLinkSigners>
+ <!-- Personenbindung alt (Ausgabe vor 05.2004) -->
+ <X509SubjectName>CN=zmr,OU=BMI-IV-2,O=BMI,C=AT</X509SubjectName>
+ <!-- Personenbindung neu (ab 05.2004, mit Stammzahl) mit Typo -->
+ <X509SubjectName>T=Dr.,CN=Nikolaus Schwab,O=BM f. Inneres i.A. des gf. Mitgieds der Datenschutzkommission</X509SubjectName>
+ <!-- Personenbindung neu (ab 05.2004, mit Stammzahl) jedoch ohne Typo -->
+ <X509SubjectName>T=Dr.,CN=Nikolaus Schwab,O=BM f. Inneres i.A. des gf. Mitglieds der Datenschutzkommission</X509SubjectName>
+ </IdentityLinkSigners> \ No newline at end of file
diff --git a/id/server/doc/moa_id/examples/LoginServletExample.txt b/id/server/doc/moa_id/examples/LoginServletExample.txt
new file mode 100644
index 000000000..587ef5e97
--- /dev/null
+++ b/id/server/doc/moa_id/examples/LoginServletExample.txt
@@ -0,0 +1,171 @@
+import java.io.IOException;
+import java.util.Vector;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.rpc.Call;
+import javax.xml.rpc.Service;
+import javax.xml.rpc.ServiceFactory;
+
+import org.apache.axis.message.SOAPBodyElement;
+import org.apache.xml.serialize.LineSeparator;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.jaxen.JaxenException;
+import org.jaxen.SimpleNamespaceContext;
+import org.jaxen.dom.DOMXPath;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * Beispiel für ein Login-Servlet, das von MOA-ID-AUTH über einen Redirect aufgerufen wird.
+ * Es werden demonstriert:
+ * - Parameterübergabe von MOA-ID-AUTH
+ * - Aufruf des MOA-ID-AUTH Web Service zum Abholen der Anmeldedaten über das Apache Axis Framework
+ * - Parsen der Anmeldedaten mittels der XPath Engine "Jaxen"
+ * - Speichern der Anmeldedaten in der HTTPSession
+ * - Redirect auf die eigentliche Startseite der OA
+ *
+ * @author Paul Ivancsics
+ */
+public class LoginServletExample extends HttpServlet {
+
+ // Web Service QName und Endpoint
+ private static final QName SERVICE_QNAME = new QName("GetAuthenticationData");
+ private static final String ENDPOINT =
+ "http://localhost:8080/moa-id-auth/services/GetAuthenticationData";
+ // NamespaceContext für Jaxen
+ private static SimpleNamespaceContext NS_CONTEXT;
+ static {
+ NS_CONTEXT = new SimpleNamespaceContext();
+ NS_CONTEXT.addNamespace("saml", "urn:oasis:names:tc:SAML:1.0:assertion");
+ NS_CONTEXT.addNamespace("samlp", "urn:oasis:names:tc:SAML:1.0:protocol");
+ NS_CONTEXT.addNamespace("pr", "http://reference.e-government.gv.at/namespace/persondata/20020228#");
+ }
+
+ /**
+ * Servlet wird von MOA-ID-AUTH nach erfolgter Authentisierung über ein Redirect aufgerufen.
+ */
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+
+ // Parameter "Target" und "SAMLArtifact" aus dem Redirect von MOA-ID-AUTH lesen
+ String target = req.getParameter("Target");
+ String samlArtifact = req.getParameter("SAMLArtifact");
+
+ try {
+ // DOMBuilder instanzieren
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+
+ // <samlp:Request> zusammenstellen und in einen DOM-Baum umwandeln
+ String samlRequest =
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?><samlp:Request IssueInstant=\"2003-01-01T00:00:00+02:00\" MajorVersion=\"1\" MinorVersion=\"0\" RequestID=\"12345678901234567890\" xmlns:samlp=\"urn:oasis:names:tc:SAML:1.0:protocol\"><samlp:AssertionArtifact>"
+ + samlArtifact
+ + "</samlp:AssertionArtifact></samlp:Request>";
+ Document root_request = builder.parse(new ByteArrayInputStream(samlRequest.getBytes()));
+
+ // Neues SOAPBodyElement anlegen und mit dem DOM-Baum füllen
+ SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement());
+ SOAPBodyElement[] params = new SOAPBodyElement[] { body };
+
+ // AXIS-Service für Aufruf von MOA-ID-AUTH instanzieren
+ Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME);
+
+ // Axis-Call erzeugen und mit Endpoint verknüpfen
+ Call call = service.createCall();
+ call.setTargetEndpointAddress(ENDPOINT);
+
+ // Call aufrufen und die Antwort speichern
+ System.out.println("Calling MOA-ID-AUTH ...");
+ Vector responses = (Vector) call.invoke(params);
+
+ // erstes BodyElement auslesen
+ SOAPBodyElement response = (SOAPBodyElement) responses.get(0);
+
+ // <samlp:Response> als DOM-Baum holen
+ Document responseDocument = response.getAsDocument();
+ Element samlResponse = responseDocument.getDocumentElement();
+
+ // <samlp:Response> auf System.out ausgeben
+ System.out.println("Response received:");
+ OutputFormat format = new OutputFormat((Document) responseDocument);
+ format.setLineSeparator(LineSeparator.Windows);
+ format.setIndenting(true);
+ format.setLineWidth(0);
+ XMLSerializer serializer = new XMLSerializer(System.out, format);
+ serializer.asDOMSerializer();
+ serializer.serialize(responseDocument);
+
+ // <samlp:StatusCode> auslesen
+ Attr statusCodeAttr = (Attr)getNode(samlResponse, "/samlp:Response/samlp:Status/samlp:StatusCode/@Value");
+ String samlStatusCode = statusCodeAttr.getValue();
+ System.out.println("StatusCode: " + samlStatusCode);
+
+ // <saml:Assertion> auslesen
+ if ("samlp:Success".equals(samlStatusCode)) {
+ Element samlAssertion = (Element)getNode(samlResponse, "/samlp:Response/saml:Assertion");
+
+ // FamilyName aus der <saml:Assertion> parsen
+ Node familyNameNode = getNode(samlAssertion, "//saml:AttributeStatement/saml:Attribute[@AttributeName=\"PersonData\"]/saml:AttributeValue/pr:Person/pr:Name/pr:FamilyName");
+ String familyName = getText(familyNameNode);
+ System.out.println("Family name: " + familyName);
+
+ // weitere Anmeldedaten aus der <saml:Assertion> parsen
+ // ...
+
+ // Anmeldedaten und Target in der HTTPSession speichern
+ HttpSession session = req.getSession();
+ session.setAttribute("UserFamilyName", familyName);
+ session.setAttribute("Geschaeftsbereich", target);
+
+ // weitere Anmeldedaten in der HTTPSession speichern
+ // ...
+
+ // Redirect auf die eigentliche Startseite
+ resp.sendRedirect("/index.jsp");
+ }
+ }
+ catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ /** Returns the first node matching an XPath expression. */
+ private static Node getNode(Node contextNode, String xpathExpression) throws JaxenException {
+ DOMXPath xpath = new DOMXPath(xpathExpression);
+ xpath.setNamespaceContext(NS_CONTEXT);
+ return (Node) xpath.selectSingleNode(contextNode);
+ }
+ /** Returns the text that a node contains. */
+ public static String getText(Node node) {
+ if (!node.hasChildNodes()) {
+ return "";
+ }
+
+ StringBuffer result = new StringBuffer();
+ NodeList list = node.getChildNodes();
+ for (int i = 0; i < list.getLength(); i++) {
+ Node subnode = list.item(i);
+ if (subnode.getNodeType() == Node.TEXT_NODE) {
+ result.append(subnode.getNodeValue());
+ } else if (subnode.getNodeType() == Node.CDATA_SECTION_NODE) {
+ result.append(subnode.getNodeValue());
+ } else if (subnode.getNodeType() == Node.ENTITY_REFERENCE_NODE) {
+ // Recurse into the subtree for text
+ // (and ignore comments)
+ result.append(getText(subnode));
+ }
+ }
+ return result.toString();
+ }
+}
diff --git a/id/server/doc/moa_id/examples/SampleMOAIDVerifyInfoboxesConfiguration.xml b/id/server/doc/moa_id/examples/SampleMOAIDVerifyInfoboxesConfiguration.xml
new file mode 100644
index 000000000..f31730a06
--- /dev/null
+++ b/id/server/doc/moa_id/examples/SampleMOAIDVerifyInfoboxesConfiguration.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MOA-IDConfiguration xmlns="http://www.buergerkarte.at/namespaces/moaconfig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:sl10="http://www.buergerkarte.at/namespaces/securitylayer/20020225#" xmlns:sl11="http://www.buergerkarte.at/namespaces/securitylayer/20020831#">
+ <!-- Konfiguration fuer MOA-ID-AUTH -->
+ <AuthComponent>
+ <!-- Transformationen fuer die Anzeige des AUTH-Block im Secure Viewer -->
+ <SecurityLayer>
+ <!-- Wählen Sie hier den deutschen oder englischen Auswahltext -->
+ <TransformsInfo filename="transforms/TransformsInfoAuthBlockTable_DE.xml"/>
+ <!-- <TransformsInfo filename="transforms/TransformsInfoAuthBlockTable_EN.xml"/>-->
+ </SecurityLayer>
+ <MOA-SP>
+ <!-- URL und akzeptierte TLS-Server-Zertifikate des MOA-SP Web Service, falls MOA-SP ueber Web Service angesprochen wird.
+ Wenn MOA-SP direkt ueber API aufgerufen werden soll, so wird das Element auskommentiert -->
+ <!-- ConnectionParameter URL="http://localhost:8080/moa-spss/services/SignatureVerification"/ -->
+ <!-- <AcceptedServerCertificates>certs/server-certs</AcceptedServerCertificates> -->
+ <!-- <ClientKeyStore password="Keystore Pass">file_to_clientkeystore</ClientKeyStore> -->
+ <!-- </ConnectionParameter> -->
+ <!-- TrustProfile fuer den IdentityLink der Buergerkarte (muss in MOA-SP konfiguriert sein) -->
+ <VerifyIdentityLink>
+ <TrustProfileID>MOAIDBuergerkartePersonenbindung</TrustProfileID>
+ </VerifyIdentityLink>
+ <!-- TrustProfile fuer die Signatur des Benutzers mit der Buergerkarte (muss in MOA-SP konfiguriert sein) -->
+ <VerifyAuthBlock>
+ <TrustProfileID>MOAIDBuergerkarteAuthentisierungsDaten</TrustProfileID>
+ <!-- VerifyTransformsInfoProfile mit den Transformationen fuer die Anzeige der Anmeldedaten im Secure Viewer (muss in MOA-SP konfiguriert sein) -->
+ <!-- Wählen Sie hier entsprechende der Sprachauswahl im Element <SecurityLayer><TransformsInfo> das deutsche oder englische Profil -->
+ <VerifyTransformsInfoProfileID>MOAIDTransformAuthBlockTable_DE</VerifyTransformsInfoProfileID>
+ <!--<VerifyTransformsInfoProfileID>MOAIDTransformAuthBlockTable_EN</VerifyTransformsInfoProfileID>-->
+ </VerifyAuthBlock>
+ </MOA-SP>
+ <VerifyInfoboxes>
+ <DefaultTrustProfile>
+ <TrustProfileID>GlobalVIDefaultTrust</TrustProfileID>
+ </DefaultTrustProfile>
+ <Infobox Identifier="InfoboxA"/>
+ <Infobox Identifier="InfoboxB" required="true" provideStammzahl="true" provideIdentityLink="false">
+ <FriendlyName>Beispiel Infobox B</FriendlyName>
+ <TrustProfileID>GlobalInfoboxBTrust</TrustProfileID>
+ <SchemaLocations>
+ <Schema namespace="http://ns1.ns1" schemaLocation="schemas/ns1.xsd"/>
+ <Schema namespace="http://ns2.ns2" schemaLocation="schemas/ns2.xsd"/>
+ </SchemaLocations>
+ <ApplicationSpecificParameters>
+ <Parameter1>content1</Parameter1>
+ <Parameter2>content2</Parameter2>
+ <Parameter3>
+ <Parameter3a>content3a</Parameter3a>
+ <Parameter3b>content3b</Parameter3b>
+ </Parameter3>
+ </ApplicationSpecificParameters>
+ </Infobox>
+ </VerifyInfoboxes>
+ <!-- Einstellungen für den Zugriff auf das Stammzahlenregister-Gateway - für ausländische Personen -->
+ <ForeignIdentities>
+ <!-- Echtsystem (Eintragung ins ERnP nur mit Echtkarten gemäß E-Government Gleichwertigkeits Verordnung) -->
+ <ConnectionParameter URL="https://gateway.stammzahlenregister.gv.at/services/IdentityLinkCreation">
+ <!-- Testsystem (Eintragung ins ERnP - auch für Testkarten) -->
+ <!--<ConnectionParameter URL="https://gateway.stammzahlenregister.gv.at:8443/services/IdentityLinkCreation">-->
+ <!-- Geben Sie hier ihren Client Keystore für den Zugriff auf das Stammzahlenregister-Gateway an -->
+ <!-- Voraussetzung: A-Trust oder A-CERT Zertifikat mit Verwaltungseigenschaft oder Dienstleistereigenschaft. -->
+ <!-- Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben. -->
+ <!-- <ClientKeyStore password="Keystore Pass">file_to_clientkeystore</ClientKeyStore> -->
+ </ConnectionParameter>
+ </ForeignIdentities>
+ <!-- Einstellungen für den Zugriff auf das Online-Vollmachten Service -->
+ <!-- <OnlineMandates> -->
+ <!-- Echtsystem -->
+ <!-- <ConnectionParameter URL="https://vollmachten.stammzahlenregister.gv.at/mis/MandateIssueRequest">-->
+ <!-- Testsystem -->
+ <!-- <ConnectionParameter URL="https://vollmachten.stammzahlenregister.gv.at/mis-test/MandateIssueRequest">-->
+ <!-- Geben Sie hier ihren Client Keystore für den Zugriff auf das Online-Vollmachten System an -->
+ <!-- Voraussetzung: A-Trust oder A-CERT Zertifikat mit Verwaltungseigenschaft oder Dienstleistereigenschaft. -->
+ <!-- Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben. -->
+ <!-- <ClientKeyStore password="Keystore Pass">file_to_clientkeystore</ClientKeyStore> -->
+ <!-- </ConnectionParameter> -->
+ <!-- Hinweis: Um den Online-Vollmachten Modus für eine Online Applikation zu aktivieren, müssen Sie das Vollmachten Profil angeben -->
+ <!-- (siehe Element OnlineMandates unter MOA-IDConfiguration/AuthComponent/OnlineMandates)-->
+ <!-- </OnlineMandates> -->
+ </AuthComponent>
+ <!-- Eintragung fuer jede Online-Applikation -->
+ <!-- publicURLPrefix referenziert hier keine richtige Online Applikation; muss angepasst werden -->
+ <!-- erste Online-Applikation -->
+ <OnlineApplication publicURLPrefix="https://OA1/">
+ <!-- fuer MOA-ID-AUTH -->
+ <AuthComponent slVersion="1.2">
+ <VerifyInfoboxes>
+ <DefaultTrustProfile>
+ <TrustProfileID>LocalOA1DefaultTrust</TrustProfileID>
+ </DefaultTrustProfile>
+ <!-- InfoboxB -->
+ <Infobox Identifier="InfoboxB" required="true">
+ <FriendlyName>Demo Infobox B</FriendlyName>
+ <ValidatorClass>oa1.validate.InfoboxBValidator</ValidatorClass>
+ <SchemaLocations>
+ <Schema namespace="http://ns1.ns1" schemaLocation="schemas/local/ns1oa1.xsd"/>
+ <Schema namespace="http://ns2.ns2" schemaLocation="schemas/local/ns2oa1.xsd"/>
+ </SchemaLocations>
+ </Infobox>
+ <!-- InfoboxC -->
+ <Infobox Identifier="InfoboxC">
+ <FriendlyName>Demo Infobox C</FriendlyName>
+ <TrustProfileID>LocalInfoboxOA1CTrust</TrustProfileID>
+ </Infobox>
+ <!-- InfoboxD -->
+ <Infobox Identifier="InfoboxD"/>
+ </VerifyInfoboxes>
+ </AuthComponent>
+ </OnlineApplication>
+ <!-- zweite Online-Applikation -->
+ <OnlineApplication publicURLPrefix="https://OA2/">
+ <!-- fuer MOA-ID-AUTH -->
+ <AuthComponent>
+ <VerifyInfoboxes>
+ <!-- InfoboxA -->
+ <Infobox Identifier="InfoboxA">
+ <TrustProfileID>LocalInfoboxOA2ATrust</TrustProfileID>
+ </Infobox>
+ <!-- InfoboxB -->
+ <Infobox Identifier="InfoboxB"/>
+ </VerifyInfoboxes>
+ </AuthComponent>
+ </OnlineApplication>
+ <!-- dritte Online-Applikation -->
+ <OnlineApplication publicURLPrefix="https://OA3/">
+ <AuthComponent provideStammzahl="true"/>
+ </OnlineApplication>
+ <!-- ChainingModes fuer die Zertifikatspfadueberpruefung der TLS-Zertifikate -->
+ <ChainingModes systemDefaultMode="pkix">
+ </ChainingModes>
+ <!-- fuer MOA-ID-AUTH: CA-Zertifikat des Servers MOA-SP, falls dieses Service ueber HTTPS angesprochen wird
+ zusaeztlich: CA-Zertifikat aller Online-Applikationen, die ueber HTTPS angesprochen werden -->
+ <TrustedCACertificates>certs/ca-certs</TrustedCACertificates>
+ <!-- Cache-Verzeichnis fuer-Zertifikate -->
+ <!-- Hinweis: wenn TC in linux oder unix betrieben wird vollstaendigen pfad fuer DirectoryCertStoreParameters.RootDir verwenden -->
+ <GenericConfiguration name="DirectoryCertStoreParameters.RootDir" value="certs/certstore"/>
+ <!-- Time-Out fuer die Anmeldung von Beginn bis zum Anlegen der Anmeldedaten, in Sekunden -->
+ <GenericConfiguration name="AuthenticationSession.TimeOut" value="600"/>
+ <!-- Time-Out fuer die Anmeldung vom Anlegen bis zum Abholen der Anmeldedaten, in Sekunden -->
+ <GenericConfiguration name="AuthenticationData.TimeOut" value="120"/>
+ <!-- Alternatives Data URL prefix (falls Webserver vorgeschaltet wird) -->
+ <!--GenericConfiguration name="FrontendServlets.DataURLPrefix" value="https://<your_webserver>/moa-id-auth/"/ -->
+ <!-- HTTP Verbindung auf Frontend Servlets zulassen / verbieten (falls Webserver vorgeschaltet wird) -->
+ <!-- GenericConfiguration name="FrontendServlets.EnableHTTPConnection" value="true"/ -->
+ <!-- URL Liste der vertrauenwürdigen Bürgekartenumgebungen -->
+ <TrustedBKUs>
+ <BKUURL>https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx</BKUURL>
+ <BKUURL>https://www.a-trust.at/mobile/https-security-layer-request/default.aspx</BKUURL>
+ </TrustedBKUs>
+</MOA-IDConfiguration>
diff --git a/id/server/doc/moa_id/examples/Template.html b/id/server/doc/moa_id/examples/Template.html
new file mode 100644
index 000000000..5074f5beb
--- /dev/null
+++ b/id/server/doc/moa_id/examples/Template.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>MOA ID - Identifizierter Zugang mit B&uuml;rgerkarte</title>
+</head>
+
+<body>
+<img src="/moaid-templates/SampleLogo.gif" alt='Organisation XY'>
+<h1 align="center">Sicherer Zugang zur Online-Anwendung mit B&uuml;rgerkarte</h1>
+<p></p>
+
+Der identifizierte Zugang erfolgt &uuml;ber die Module f&uuml;r Online Applikationen (MOA) unter Verwendung einer B&uuml;rgerkarte und deren Signaturfunktion.
+
+<p></p>
+<p>Wenn Sie in Folge die Schaltfl&auml;che "Anmeldung mit B&uuml;rgerkarte"
+aktivieren, so werden zur Signatur der Anmeldedaten aufgefordert. Wenn sie diese
+signieren, so werden sie zur Online-Anwendung weitergeleitet und angemeldet.</p>
+
+
+<form name="CustomizedForm" action="<BKU>" method="post">
+<div align="center">
+<input type="hidden"
+name="XMLRequest"
+value="<XMLRequest>"/>
+<input type="hidden"
+name="DataURL"
+value="<DataURL>"/>
+<input type="hidden"
+name="PushInfobox"
+value="<PushInfobox>"/>
+
+<input type="submit" value="Anmeldung mit B&uuml;rgerkarte" name="submit"/>
+</div>
+</form>
+<form name="CustomizedInfoForm"
+action="<BKU>"
+method="post">
+<input type="hidden"
+name="XMLRequest"
+value="<CertInfoXMLRequest>"/>
+<input type="hidden"
+name="DataURL"
+value="<CertInfoDataURL>"/>
+
+
+<input type="hidden" value="Weitere Info"/>
+</form>
+
+</body>
+</html>
diff --git a/id/server/doc/moa_id/examples/TransformsInfoAuthBlockTable_DE.xml b/id/server/doc/moa_id/examples/TransformsInfoAuthBlockTable_DE.xml
new file mode 100644
index 000000000..4ec0f94ae
--- /dev/null
+++ b/id/server/doc/moa_id/examples/TransformsInfoAuthBlockTable_DE.xml
@@ -0,0 +1,161 @@
+<sl10:TransformsInfo>
+ <dsig:Transforms xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116">
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:pr="http://reference.e-government.gv.at/namespace/persondata/20020228#" exclude-result-prefixes="pr saml">
+ <xsl:output method="xml" xml:space="default"/>
+ <xsl:template match="/" xmlns="http://www.w3.org/1999/xhtml">
+ <html>
+ <head>
+ <title>Signatur der Anmeldedaten</title>
+ <style type="text/css" media="screen">
+ .normalstyle { font-size: medium; }
+ .italicstyle { font-size: medium; font-style: italic; }
+ .titlestyle{ text-decoration:underline; font-weight:bold; font-size: medium; }
+ .h4style{ font-size: large; }
+ </style>
+ </head>
+ <body>
+ <h4 class="h4style">Anmeldedaten:</h4>
+ <p class="titlestyle">Daten zur Person</p>
+ <table class="parameters">
+ <xsl:if test="normalize-space(//@Issuer)">
+ <tr>
+ <td class="italicstyle">Name:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="//@Issuer"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="string(//saml:Attribute[@AttributeName='Geburtsdatum']/saml:AttributeValue)">
+ <tr>
+ <td class="italicstyle">Geburtsdatum:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="substring(//saml:Attribute[@AttributeName='Geburtsdatum']/saml:AttributeValue,9,2)"/>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="substring(//saml:Attribute[@AttributeName='Geburtsdatum']/saml:AttributeValue,6,2)"/>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="substring(//saml:Attribute[@AttributeName='Geburtsdatum']/saml:AttributeValue,1,4)"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="//saml:Attribute[@AttributeName='OIDTextualDescription']">
+ <tr>
+ <td class="italicstyle">Rolle:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="//saml:Attribute[@AttributeName='OIDTextualDescription']/saml:AttributeValue"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="//saml:Attribute[@AttributeName='mandateReferenceValue']">
+ <tr>
+ <td class="italicstyle">Vollmacht:</td>
+ <td class="normalstyle">
+ <xsl:text>Ich melde mich in Vertretung an. Im nächsten Schritt wird mir eine Liste der für mich verfügbaren Vertretungsverhältnisse angezeigt, aus denen ich eines auswählen werde.</xsl:text>
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+ <p class="titlestyle">Daten zur Anwendung</p>
+ <table class="parameters">
+ <tr>
+ <td class="italicstyle">Name:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="//saml:Attribute[@AttributeName='oaFriendlyName']/saml:AttributeValue"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="italicstyle">Staat:</td>
+ <td class="normalstyle">Österreich</td>
+ </tr>
+ </table>
+ <p class="titlestyle">Technische Parameter</p>
+ <table class="parameters">
+ <tr>
+ <td class="italicstyle">URL:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="//saml:Attribute[@AttributeName='OA']/saml:AttributeValue"/>
+ </td>
+ </tr>
+ <xsl:if test="//saml:Attribute[@AttributeName='Geschaeftsbereich']">
+ <tr>
+ <td class="italicstyle">Bereich:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="//saml:Attribute[@AttributeName='Geschaeftsbereich']/saml:AttributeValue"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="//saml:Attribute[@AttributeName='mandateReferenceValue']">
+ <tr>
+ <td class="italicstyle">
+ Vollmachten-Referenz:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="//saml:Attribute[@AttributeName='mandateReferenceValue']"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="//saml:Attribute[@AttributeName='IdentityLinkDomainIdentifierType']">
+ <tr>
+ <td class="italicstyle">
+ <xsl:value-of select="//saml:Attribute[@AttributeName='IdentityLinkDomainIdentifierType']"/>:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="//saml:Attribute[@AttributeName='wbPK']/saml:AttributeValue/pr:Identification/pr:Type"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="//saml:Attribute[@AttributeName='bPK'] or //saml:Attribute[@AttributeName='wbPK']">
+ <tr>
+ <td class="italicstyle">Identifikator:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="//saml:Attribute[@AttributeName='bPK']/saml:AttributeValue/pr:Identification/pr:Value"/>
+ <xsl:value-of select="//saml:Attribute[@AttributeName='wbPK']/saml:AttributeValue/pr:Identification/pr:Value"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="//saml:Attribute[@AttributeName='OIDTextualDescription']">
+ <tr>
+ <td class="italicstyle">OID:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="//saml:Attribute[@AttributeName='OID']/saml:AttributeValue"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="//saml:Attribute[@AttributeName='HPI']">
+ <tr>
+ <td class="italicstyle">HPI:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="//saml:Attribute[@AttributeName='HPI']/saml:AttributeValue"/>
+ </td>
+ </tr>
+ </xsl:if>
+ <tr>
+ <td class="italicstyle">Datum:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="substring(//@IssueInstant,9,2)"/>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="substring(//@IssueInstant,6,2)"/>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="substring(//@IssueInstant,1,4)"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="italicstyle">Uhrzeit:</td>
+ <td class="normalstyle">
+ <xsl:value-of select="substring(//@IssueInstant,12,2)"/>
+ <xsl:text>:</xsl:text>
+ <xsl:value-of select="substring(//@IssueInstant,15,2)"/>
+ <xsl:text>:</xsl:text>
+ <xsl:value-of select="substring(//@IssueInstant,18,2)"/>
+ </td>
+ </tr>
+ </table>
+ </body>
+ </html>
+ </xsl:template>
+ </xsl:stylesheet>
+ </dsig:Transform>
+ <dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
+ </dsig:Transforms>
+ <sl10:FinalDataMetaInfo>
+ <sl10:MimeType>application/xhtml+xml</sl10:MimeType>
+ </sl10:FinalDataMetaInfo>
+</sl10:TransformsInfo>
diff --git a/id/server/doc/moa_id/examples/conf/MOA-ID-Configuration.xml b/id/server/doc/moa_id/examples/conf/MOA-ID-Configuration.xml
new file mode 100644
index 000000000..2cdc61653
--- /dev/null
+++ b/id/server/doc/moa_id/examples/conf/MOA-ID-Configuration.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MOA-IDConfiguration xmlns="http://www.buergerkarte.at/namespaces/moaconfig#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:sl10="http://www.buergerkarte.at/namespaces/securitylayer/20020225#" xmlns:sl11="http://www.buergerkarte.at/namespaces/securitylayer/20020831#">
+ <!-- Konfiguration fuer MOA-ID-AUTH -->
+ <AuthComponent>
+ <!-- Transformationen fuer die Anzeige des AUTH-Block im Secure Viewer -->
+ <SecurityLayer>
+ <!-- Wählen Sie hier den deutschen oder englischen Auswahltext -->
+ <TransformsInfo filename="transforms/TransformsInfoAuthBlockTable_DE.xml"/>
+ <!-- <TransformsInfo filename="transforms/TransformsInfoAuthBlockTable_EN.xml"/>-->
+ </SecurityLayer>
+ <MOA-SP>
+ <!-- URL und akzeptierte TLS-Server-Zertifikate des MOA-SP Web Service, falls MOA-SP ueber Web Service angesprochen wird.
+ Wenn MOA-SP direkt ueber API aufgerufen werden soll, so wird das Element auskommentiert -->
+ <!-- ConnectionParameter URL="http://localhost:8080/moa-spss/services/SignatureVerification"/ -->
+ <!-- <AcceptedServerCertificates>certs/server-certs</AcceptedServerCertificates> -->
+ <!-- <ClientKeyStore password="Keystore Pass">file_to_clientkeystore</ClientKeyStore> -->
+ <!-- </ConnectionParameter> -->
+ <!-- TrustProfile fuer den IdentityLink der Buergerkarte (muss in MOA-SP konfiguriert sein) -->
+ <VerifyIdentityLink>
+ <TrustProfileID>MOAIDBuergerkartePersonenbindung</TrustProfileID>
+ </VerifyIdentityLink>
+ <!-- TrustProfile fuer die Signatur des Benutzers mit der Buergerkarte (muss in MOA-SP konfiguriert sein) -->
+ <VerifyAuthBlock>
+ <TrustProfileID>MOAIDBuergerkarteAuthentisierungsDaten</TrustProfileID>
+ <!-- VerifyTransformsInfoProfile mit den Transformationen fuer die Anzeige der Anmeldedaten im Secure Viewer (muss in MOA-SP konfiguriert sein) -->
+ <!-- Wählen Sie hier entsprechende der Sprachauswahl im Element <SecurityLayer><TransformsInfo> das deutsche oder englische Profil -->
+ <VerifyTransformsInfoProfileID>MOAIDTransformAuthBlockTable_DE</VerifyTransformsInfoProfileID>
+ <!--<VerifyTransformsInfoProfileID>MOAIDTransformAuthBlockTable_EN</VerifyTransformsInfoProfileID>-->
+ </VerifyAuthBlock>
+ </MOA-SP>
+ <!-- Einstellungen für den Zugriff auf das Stammzahlenregister-Gateway - für ausländische Personen -->
+ <ForeignIdentities>
+ <!-- Echtsystem (Eintragung ins ERnP nur mit Echtkarten gemäß E-Government Gleichwertigkeits Verordnung) -->
+ <ConnectionParameter URL="https://gateway.stammzahlenregister.gv.at/services/IdentityLinkCreation">
+ <!-- Testsystem (Eintragung ins ERnP - auch für Testkarten) -->
+ <!--<ConnectionParameter URL="https://gateway.stammzahlenregister.gv.at:8443/services/IdentityLinkCreation">-->
+ <!-- Geben Sie hier ihren Client Keystore für den Zugriff auf das Stammzahlenregister-Gateway an -->
+ <!-- Voraussetzung: A-Trust oder A-CERT Zertifikat mit Verwaltungseigenschaft oder Dienstleistereigenschaft. -->
+ <!-- Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben. -->
+ <!-- <ClientKeyStore password="Keystore Pass">file_to_clientkeystore</ClientKeyStore> -->
+ </ConnectionParameter>
+ </ForeignIdentities>
+ <!-- Einstellungen für den Zugriff auf das Online-Vollmachten Service -->
+ <!-- <OnlineMandates> -->
+ <!-- Echtsystem -->
+ <!-- <ConnectionParameter URL="https://vollmachten.stammzahlenregister.gv.at/mis/MandateIssueRequest">-->
+ <!-- Testsystem -->
+ <!-- <ConnectionParameter URL="https://vollmachten.stammzahlenregister.gv.at/mis-test/MandateIssueRequest">-->
+ <!-- Geben Sie hier ihren Client Keystore für den Zugriff auf das Online-Vollmachten System an -->
+ <!-- Voraussetzung: A-Trust oder A-CERT Zertifikat mit Verwaltungseigenschaft oder Dienstleistereigenschaft. -->
+ <!-- Wenn ihr MOA-ID Zertifikat diese Voraussetzung erfüllt, können Sie dieses hier angeben. -->
+ <!-- <ClientKeyStore password="Keystore Pass">file_to_clientkeystore</ClientKeyStore> -->
+ <!-- </ConnectionParameter> -->
+ <!-- Hinweis: Um den Online-Vollmachten Modus für eine Online Applikation zu aktivieren, müssen Sie das Vollmachten Profil angeben -->
+ <!-- (siehe Element OnlineMandates unter MOA-IDConfiguration/AuthComponent/OnlineMandates)-->
+ <!-- </OnlineMandates> -->
+ </AuthComponent>
+
+ <!-- Konfiguration fuer MOA-ID-PROXY -->
+ <ProxyComponent>
+ <!-- URL und akzeptierte TLS-Server-Zertifikate des MOA-ID-AUTH Web Service -->
+ <AuthComponent>
+ <ConnectionParameter URL="http://localhost:8080/moa-id-auth/services/GetAuthenticationData">
+ <!-- <AcceptedServerCertificates>certs/server-certs</AcceptedServerCertificates> -->
+ <!-- <ClientKeyStore password="Keystore Pass">file_to_clientkeystore</ClientKeyStore> -->
+ </ConnectionParameter>
+ </AuthComponent>
+ </ProxyComponent>
+
+ <!-- Eintragung fuer jede Online-Applikation -->
+ <!-- Demo Online-Applikation: Zugriff auf www.digitales.oesterreich.gv.at ueber MOA-ID-PROXY -->
+ <OnlineApplication publicURLPrefix="https://localhost:8443/">
+ <!-- fuer MOA-ID-AUTH -->
+ <AuthComponent>
+ <!-- Spezifikation der Stammzahl des Wirtschaftsunternehmens bei type = "businessService" -->
+ <!-- <IdentificationNumber> -->
+ <!-- Beispiel Firmenbuchnummer -->
+ <!-- <pr:Firmenbuchnummer xmlns:pr="http://reference.e-government.gv.at/namespace/persondata/20020228#">468924i</pr:Firmenbuchnummer> -->
+ <!-- </IdentificationNumber> -->
+ </AuthComponent>
+ <!-- fuer MOA-ID-PROXY -->
+ <ProxyComponent configFileURL="oa/SampleOAConfiguration.xml" sessionTimeOut="600">
+ <!-- <ProxyComponent configFileURL="oa/SampleOAConfiguration.xml" sessionTimeOut="600" loginParameterResolverImpl="at.gv.egovernment.moa.id.proxy.DefaultLoginParameterResolver" loginParameterResolverConfiguration="" connectionBuilderImpl="at.gv.egovernment.moa.id.proxy.DefaultConnectionBuilder"> -->
+ <!-- URL und akzeptierte TLS-Server-Zertifikate der Online-Applikation -->
+ <ConnectionParameter URL="http://www.digitales.oesterreich.gv.at/">
+ <!-- <AcceptedServerCertificates>certs/server-certs</AcceptedServerCertificates> -->
+ <!-- <ClientKeyStore password="Keystore Pass">file_to_clientkeystore</ClientKeyStore> -->
+ </ConnectionParameter>
+ </ProxyComponent>
+ </OnlineApplication>
+
+ <!-- ChainingModes fuer die Zertifikatspfadueberpruefung der TLS-Zertifikate -->
+ <ChainingModes systemDefaultMode="pkix">
+ </ChainingModes>
+
+ <!-- fuer MOA-ID-AUTH: CA-Zertifikat des Servers MOA-SP, falls dieses Service ueber HTTPS angesprochen wird
+ fuer MOA-ID-PROXY: CA-Zertifikat des Servers MOA-ID-AUTH, falls dieses Service ueber HTTPS angesprochen wird
+ zusaeztlich: CA-Zertifikat aller Online-Applikationen, die ueber HTTPS angesprochen werden -->
+ <TrustedCACertificates>certs/ca-certs</TrustedCACertificates>
+
+ <!-- Cache-Verzeichnis fuer-Zertifikate -->
+ <!-- Hinweis: wenn TC in linux oder unix betrieben wird vollstaendigen pfad fuer DirectoryCertStoreParameters.RootDir verwenden -->
+ <GenericConfiguration name="DirectoryCertStoreParameters.RootDir" value="certs/certstore"/>
+ <!-- Time-Out fuer die Anmeldung von Beginn bis zum Anlegen der Anmeldedaten, in Sekunden -->
+ <GenericConfiguration name="AuthenticationSession.TimeOut" value="600"/>
+ <!-- Time-Out fuer die Anmeldung vom Anlegen bis zum Abholen der Anmeldedaten, in Sekunden -->
+ <GenericConfiguration name="AuthenticationData.TimeOut" value="120"/>
+
+ <!-- Alternatives Data URL prefix (falls Webserver vorgeschaltet wird) -->
+ <!--GenericConfiguration name="FrontendServlets.DataURLPrefix" value="https://<your_webserver>/moa-id-auth/"/ -->
+ <!-- HTTP Verbindung auf Frontend Servlets zulassen / verbieten (falls Webserver vorgeschaltet wird) -->
+ <!-- GenericConfiguration name="FrontendServlets.EnableHTTPConnection" value="true"/ -->
+ <!-- URL Liste der vertrauenwürdigen Bürgekartenumgebungen -->
+ <TrustedBKUs>
+ <BKUURL>https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx</BKUURL>
+ <BKUURL>https://www.a-trust.at/mobile/https-security-layer-request/default.aspx</BKUURL>
+ </TrustedBKUs>
+</MOA-IDConfiguration>
diff --git a/id/server/doc/moa_id/examples/conf/OAConfBasicAuth.xml b/id/server/doc/moa_id/examples/conf/OAConfBasicAuth.xml
new file mode 100644
index 000000000..fc99cea79
--- /dev/null
+++ b/id/server/doc/moa_id/examples/conf/OAConfBasicAuth.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Demokonfiguration fuer eine Online Applikation (OA) welche 401 Basic Authentication zur Uebergabe der Parameter verwendet -->
+<Configuration xmlns="http://www.buergerkarte.at/namespaces/moaconfig#" xmlns:sl10="http://www.buergerkarte.at/namespaces/securitylayer/20020225#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <LoginType>stateless</LoginType>
+ <BasicAuth>
+ <UserID>MOAFamilyName</UserID>
+ <Password>MOAGivenName</Password>
+ </BasicAuth>
+</Configuration>
diff --git a/id/server/doc/moa_id/examples/conf/OAConfHeaderAuth.xml b/id/server/doc/moa_id/examples/conf/OAConfHeaderAuth.xml
new file mode 100644
index 000000000..4d34c3646
--- /dev/null
+++ b/id/server/doc/moa_id/examples/conf/OAConfHeaderAuth.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Demokonfiguration fuer eine Online Applikation (OA) welche Header Authentication zur Uebergabe der Parameter verwendet -->
+<Configuration xmlns="http://www.buergerkarte.at/namespaces/moaconfig#" xmlns:sl10="http://www.buergerkarte.at/namespaces/securitylayer/20020225#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <LoginType>stateless</LoginType>
+ <HeaderAuth>
+ <!-- zusaetzlicher Header GivenName -->
+ <Header Name="X-MOAParameterGivenName" Value="MOAGivenName"></Header>
+ <Header Name="X-MOAParameterFamilyName" Value="MOAFamilyName"></Header>
+ </HeaderAuth>
+</Configuration>
diff --git a/id/server/doc/moa_id/examples/conf/OAConfParamAuth.xml b/id/server/doc/moa_id/examples/conf/OAConfParamAuth.xml
new file mode 100644
index 000000000..979faca95
--- /dev/null
+++ b/id/server/doc/moa_id/examples/conf/OAConfParamAuth.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Demokonfiguration fuer eine Online Applikation (OA) welche Parameter Authentication verwendet -->
+<Configuration xmlns="http://www.buergerkarte.at/namespaces/moaconfig#" xmlns:sl10="http://www.buergerkarte.at/namespaces/securitylayer/20020225#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <LoginType>stateless</LoginType>
+ <ParamAuth>
+ <!-- URL Parameter GivenName und FamilyName -->
+ <Parameter Name="GivenName" Value="MOAGivenName"></Parameter>
+ <Parameter Name="FamilyName" Value="MOAFamilyName"></Parameter>
+ </ParamAuth>
+</Configuration>
diff --git a/id/server/doc/moa_id/examples/moa-id-env.sh.txt b/id/server/doc/moa_id/examples/moa-id-env.sh.txt
new file mode 100644
index 000000000..466b2762e
--- /dev/null
+++ b/id/server/doc/moa_id/examples/moa-id-env.sh.txt
@@ -0,0 +1,15 @@
+rem insert Tomcat 4.1.x home directory (no trailing path separator)
+set CATALINA_HOME=<Tomcat home directory>
+
+CONFIG_OPT_SPSS=-Dmoa.spss.server.configuration=$CATALINA_HOME/conf/moa-spss/SampleMOASPSSConfiguration.xml
+CONFIG_OPT_ID=-Dmoa.id.configuration=$CATALINA_HOME/conf/moa-id/SampleMOAIDConfiguration.xml
+
+
+LOGGING_OPT=-Dlog4j.configuration=file:$CATALINA_HOME/conf/moa-id/log4j.properties
+# TRUST_STORE_OPT=-Djavax.net.ssl.trustStore=truststore.jks
+# TRUST_STORE_PASS_OPT=-Djavax.net.ssl.trustStorePassword=changeit
+# TRUST_STORE_TYPE_OPT=-Djavax.net.ssl.trustStoreType=jks
+
+export CATALINA_OPTS="$CONFIG_OPT_SPSS $CONFIG_OPT_ID $LOGGING_OPT $TRUST_STORE_OPT $TRUST_STORE_PASS_OPT $TRUST_STORE_TYPE_OPT"
+echo CATALINA_OPTS=$CATALINA_OPTS
+
diff --git a/id/server/doc/moa_id/examples/startTomcat.bat.txt b/id/server/doc/moa_id/examples/startTomcat.bat.txt
new file mode 100644
index 000000000..29588120c
--- /dev/null
+++ b/id/server/doc/moa_id/examples/startTomcat.bat.txt
@@ -0,0 +1,26 @@
+rem ----------------------------------------------------------------------------------------------
+rem Modify these entries according to your needs
+
+rem JDK home directory (no trailing path separator)
+set JAVA_HOME=<jdk home directory>
+
+rem Tomcat 4.1.x home directory (no trailing path separator)
+set CATALINA_HOME=<Tomcat 4.1.x home directory>
+
+rem ----------------------------------------------------------------------------------------------
+
+set CONFIG_OPT_SPSS=-Dmoa.spss.server.configuration=%CATALINA_HOME%/conf/moa-spss/SampleMOASPSSConfiguration.xml
+set CONFIG_OPT_ID=-Dmoa.id.configuration=%CATALINA_HOME%/conf/moa-id/SampleMOAIDConfiguration.xml
+set LOGGING_OPT=-Dlog4j.configuration=file:%CATALINA_HOME%/conf/moa-id/log4j.properties
+
+set PARAMS_MOA=%CONFIG_OPT_SPSS% %CONFIG_OPT_ID% %LOGGING_OPT%
+
+rem set PARAM_TRUST_STORE=-Djavax.net.ssl.trustStore=truststore.jks
+rem set PARAM_TRUST_STORE_PASS=-Djavax.net.ssl.trustStorePassword=changeit
+rem set PARAM_TRUST_STORE_TYPE=-Djavax.net.ssl.trustStoreType=jks
+rem set PARAMS_SSL=%PARAM_TRUST_STORE% %PARAM_TRUST_STORE_PASS% %PARAM_TRUST_STORE_TYPE%
+
+set CATALINA_OPTS=%PARAMS_MOA% %PARAMS_SSL%
+
+cd %CATALINA_HOME%
+bin\catalina.bat start \ No newline at end of file