diff options
Diffstat (limited to 'id/server/doc/moa_id/examples')
13 files changed, 644 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..5536226a8 --- /dev/null +++ b/id/server/doc/moa_id/examples/BKUSelectionTemplate.html @@ -0,0 +1,52 @@ +<!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ürgerkartenumgebung</h1> +<p></p> +<p>Sie haben sich für Anmeldung mit Ihrer Bürgerkarte entschieden. Da es verschiedene Formen der Bürgerkarte gibt, müssen Sie nun wählen, welche Sie bei der Anmeldung verwenden wollen.</p> +<h3>Auswahl der Bürgerkarte</h3> +<form name="CustomizedForm" method="post" action="<StartAuth>"> + <BKUSelect> + <input type="submit" value="Auswählen"/> +</form> +<br/> +<p></p> + + <input type="hidden" value="Weitere Info"/> +</form> + +<h4>Hinweise: </h4> +<ul> + <li> + <p>Wollen Sie eine A-Trust Bürgerkarte erwerben? Hier finden Sie Informationen + dazu: <a href="http://www.a-trust.at/info.asp?node=337" target="_blank">A-Trust + Bürgerkarte.</a> Bei der Anmeldung mit der A-Trust Bürgerkarte + benötigen Sie eine funktionsfähige Bürgerkartensoftware sowie + einen passenden Kartenleser.</p> + </li> + <li> + <p>Wollen Sie ein A1-Signatur erwerben? Wenden Sie sich an 0800-664 680 um + Informationen zur A1-Signatur zu erhalten. + Hier finden Sie ebenfalls Informationen dazu: <a href="http://www.a1.net/signatur" target="_blank">A1-Signatur</a>. + Bei der Anmeldung mit der A1-Signatur wird keine Bürgerkartensoftware und + kein Kartenleser benötigt.</p> + </li> +</ul> +<div align="right"><a href="http://validator.w3.org/check?uri=http://localhost:8080/moaid-templates/SampleBKUSElectionTemplate.html"><img border="0" + src="/moaid-templates/valid-html401.gif" + alt="Valid HTML 4.01!" height="31" width="88"></a> </div> +<p align="right"> </p> + + +</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..09e60c6f1 --- /dev/null +++ b/id/server/doc/moa_id/examples/SampleMOAIDVerifyInfoboxesConfiguration.xml @@ -0,0 +1,148 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Beispielkonfiguration fuer MOA-ID ohne Proxy mit Unterstuetzung fuer A-Trust und A1-Signatur --> +<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> + <!-- URL und akzeptierte TLS-Server-Zertifikate des verwendeten BKU-Auswahl Service --> + <BKUSelection BKUSelectionAlternative="HTMLSelect"> + <ConnectionParameter URL="http://auswahl.buergerkarte.at/htmlcode"> + <!-- <AcceptedServerCertificates>certs/server-certs</AcceptedServerCertificates> --> + </ConnectionParameter> + </BKUSelection> + <!-->Globale Templates zum Anpassen der Seiten "Auswahl der Bürgerkartenumgebung" und + "Anmeldung mit Bürgerkarte"<--> + <!--Templates> + <BKUSelectionTemplate URL="sampleTemplates/SampleBKUSelectionTemplate.html"/> + <Template URL="sampleTemplates/SampleTemplate.html"/> + </Templates--> + <!-- Transformationen fuer die Anzeige des AUTH-Block im Secure Viewer --> + <SecurityLayer> + <!-- TransformInfo in Textform --> + <TransformsInfo filename="transforms/TransformsInfoAuthBlockText.xml"/> + <!--TransformsInfo filename="transforms/TransformsInfoAuthBlockTextAmir.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://moa.gv.at/moa-spss-test/services/SignatureVerification"/ --> + <!-- 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) --> + <VerifyTransformsInfoProfileID>MOAIDTransformAuthBlockText</VerifyTransformsInfoProfileID> + <!-->Auskommentieren, falls die in der Beispiel-Onlineapplikation definierte Transformationverwendet wird:<--> + <!--VerifyTransformsInfoProfileID>MOAIDTransformAuthBlock</VerifyTransformsInfoProfileID--> + </VerifyAuthBlock> + </MOA-SP> + + <!-- 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> + <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> + </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"/ --> +</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ürgerkarte</title> +</head> + +<body> +<img src="/moaid-templates/SampleLogo.gif" alt='Organisation XY'> +<h1 align="center">Sicherer Zugang zur Online-Anwendung mit Bürgerkarte</h1> +<p></p> + +Der identifizierte Zugang erfolgt über die Module für Online Applikationen (MOA) unter Verwendung einer Bürgerkarte und deren Signaturfunktion. + +<p></p> +<p>Wenn Sie in Folge die Schaltfläche "Anmeldung mit Bü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ü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/TransformsInfoAuthBlock.txt b/id/server/doc/moa_id/examples/TransformsInfoAuthBlock.txt new file mode 100644 index 000000000..edbde0073 --- /dev/null +++ b/id/server/doc/moa_id/examples/TransformsInfoAuthBlock.txt @@ -0,0 +1,35 @@ +<sl10:TransformsInfo> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> + <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#"> + <xsl:template match="/" xmlns="http://www.w3.org/1999/xhtml"> + <html> + <head> + <title>Signatur der Anmeldedaten</title> + </head> + <body> +<h1>Signatur der Anmeldedaten</h1> +<p></p> +<h4>Mit meiner elektronischen Signatur beantrage ich, <b><xsl:value-of select="//@Issuer"/></b>, +geboren am +<xsl:value-of select="substring(//saml:Attribute[@AttributeName='Geburtsdatum']/saml:AttributeValue,9,2)"/>.<xsl:value-of select="substring(//saml:Attribute[@AttributeName='Geburtsdatum']/saml:AttributeValue,6,2)"/>.<xsl:value-of select="substring(//saml:Attribute[@AttributeName='Geburtsdatum']/saml:AttributeValue,3,2)"/>, den Zugang zur gesicherten Anwendung.</h4> +<p></p> +<h4>Datum und Uhrzeit: <xsl:value-of select="substring(//@IssueInstant,9,2)"/>.<xsl:value-of select="substring(//@IssueInstant,6,2)"/>.<xsl:value-of select="substring(//@IssueInstant,1,4)"/>, <xsl:value-of select="substring(//@IssueInstant,12,2)"/>:<xsl:value-of select="substring(//@IssueInstant,15,2)"/>:<xsl:value-of select="substring(//@IssueInstant,18,2)"/></h4> +<xsl:if test="//saml:Attribute[@AttributeName='wbPK']"> + <h4>wbPK(*): <xsl:value-of select="//saml:Attribute[@AttributeName='wbPK']/saml:AttributeValue/pr:Identification/pr:Value"/></h4> + <p></p> + <hr></hr> + <font size="2">(*) wbPK: Das <i>Wirtschaftsbereichsspezifische Personenkennzeichen</i> wird aus den jeweiligen Stammzahlen des Buergers und des Wirtschaftsunternehmens berechnet und ermoeglicht eine eindeutige Zuordnung des Buergers zum Wirtschaftsunternehmen.</font> +</xsl:if> + </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>text/html</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..db43b0c1d --- /dev/null +++ b/id/server/doc/moa_id/examples/conf/MOA-ID-Configuration.xml @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Beispielkonfiguration fuer MOA-ID mit Unterstuetzung fuer A-Trust und A1-Signatur + Rudolf Schamberger, Stabsstelle IKT-Strategie des Bundes, Bundeskanzleramt --> +<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> + <!-- URL und akzeptierte TLS-Server-Zertifikate des verwendeten BKU-Auswahl Service --> + <BKUSelection BKUSelectionAlternative="HTMLSelect"> + <ConnectionParameter URL="http://auswahl.buergerkarte.at/htmlcode"> + <!-- <AcceptedServerCertificates>certs/server-certs</AcceptedServerCertificates> --> + </ConnectionParameter> + </BKUSelection> + <!-- Transformationen fuer die Anzeige des AUTH-Block im Secure Viewer --> + <SecurityLayer> + <!-- TransformInfo in Textform --> + <TransformsInfo filename="transforms/TransformsInfoAuthBlockText.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) --> + <VerifyTransformsInfoProfileID>MOAIDTransformAuthBlockText</VerifyTransformsInfoProfileID> + </VerifyAuthBlock> + </MOA-SP> + + <!-- 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> + </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.cio.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.cio.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"/ --> +</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..1ccca10c1 --- /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 4.1.x 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 |