Wiki-Quellcode von Autista

Version 3.1 von MACH ProForms GmbH am 17.03.2021

Zeige letzte Bearbeiter
1 ## Auswahl des Inhalts-Schema
2
3 Ab der Version 4.33.0 wird die Inhaltsnachricht im xPersonenstandsformat an Autista übergeben.
4 Für einen selbstgebauten Assistenten heißt, dies dass je Urkundenart ein Mapping vorgenommen werden muss.
5
6 Damit der Formularserver unabhängig von der Art der Einreichung (siehe unten) weiß welches Mapping-Schema bei der Übergabe an Autista verwendet werden soll, benötigt er ein Feld namens "mappingSchemaFilter".
7
8 Über das Feld "mappingSchemaFilter" wird definiert, welche Mapping-Schema für die Inhaltsnachricht verwendet werden soll.
9
10 Dabei kommen im Verlagsassistent die folgenden Werte zum Einsatz
11
12 - portal2StA.Geburt.081030#@#1.7.5 für Geburtsurkunden
13 - portal2StA.Ehe.082030#@#1.7.5 für Eheurkunden
14 - portal2StA.LP.083030#@#1.7.5 für Lebenspartnerschaftsurkunden
15 - portal2StA.Sterbefall.084030#@#1.7.5 für Sterbefallurkunden
16
17 Sollten Sie die Schema-Dateien unter einem anderen Namen und Version hochgeladen haben, so sind die Werte von oben entsprechend zu ersetzen. Als Trennzeichen zwischen Schema-Namen und Schema-Version ist immer #@# zu verwenden.
18
19 Das Feld "mappingSchemaFilter" wird aus einer Konfigurationsliste gezogen, welche von uns (Form-Solutions) gepflegt wird!
20 Falls eigenständige Anpassungen an der Liste vorgenommen werden und sich daraus Fehler ergeben, sind die daraus entstehenden Kosten selbst zu tragen!
21 Damit die richtigen Daten aus der Konfigurationsliste gezogen werden, benötigen wir von Ihnen folgende Informationen:
22 - Mandantennummer
23 - Mandantenbezeichnung
24 - die eingesetzte Versionsnummer von Autista und xPersonenstand
25 - Standesamtsnummer
26
27 ## Konfiguration der Autista Push-Variante auf Seiten des Form-Solutions Formularservers
28
29 Das Autista Push System steht ab Version 4.22.0 des Formularservers zur Verfügung.
30
31 Bei Verwendung der Push-Variante werden die Inhaltsdaten, beim Einreichen des Assistenten, an einen Webservice verschickt.
32 Für einen erfolgreichen Versand ist es notwendig, dass die Inhaltsdaten zunächst in ein XML (nach xSta Standard) gemappt werden.
33 Anschließend wird dieses XML als Inhalt einer Webservice-Nachricht (nach XTA Standard) an die Autista-Webservice-Schnittstelle des Empfängers verschickt.
34
35 Die Dokumentation zur Konfiguration sowie Veröffentlichung des Assistenten finden Sie [hier](https://wiki.form-solutions.de/wiki/docwiki/view/Main/09_Schnittstellen/01_Fachschnittstellen/02_Autista/)
36
37 ___
38
39 ## Konfiguration der Autista Pull-Variante auf Seiten des Form-Solutions Formularservers
40
41 Das Autista Pull System steht ab Version 4.22.0 des Formularservers zur Verfügung.
42
43 ### 1) Konfiguration des Apache Reverse Proxy
44
45 Der Apache Reverse Proxy muss folgendermaßen konfiguriert werden (siehe vhost-ofs.conf, im Unterverzeichnis customerArea/httpd.conf.d):
46
47 ### 1.1) Konfiguration der ProxyPass Einträge
48
49 Falls die folgenden ProxyPass Einträge nicht vorhanden sind, so müssen diese hinzugefügt werden (falls auf dem System bereits Autista in der Version 1 eingesetzt wurde, so sollte diese Einträge bereits vorhanden sein):
50
51 ```
52 ProxyPass /autista-webservice http://servername:8080/autista-webservice
53 ProxyPassReverse /autista-webservice http://servername:8080/autista-webservice
54 ```
55
56 Der Servername muss durch Ihre konkrete Domain ersetzt werden.
57
58 ### 1.2) Konfiguration der Zertifikatsweiterleitung
59
60 Für die korrekte Weiterleitung von Client Zertifikaten an den Wildfly Applikationsserver müssen die nachfolgenden Einträge hinzugefügt werden:
61 Diese Einstellungen sollten im `<IfModule ssl_module>` Block stehen, am besten direkt nach den Server-Zertifikatseinstellungen ("SSLCertificate*File")
62
63 ```
64 ## pass SSL client certificates to wildfly (required for Autista Webservice)
65 SSLVerifyClient optional_no_ca
66
67 RequestHeader set SSL_CLIENT_CERT ""
68 RequestHeader set SSL_CLIENT_VERIFY ""
69 RequestHeader set SSL_CLIENT_S_DN ""
70 RequestHeader set SSL_CLIENT_I_DN ""
71 RequestHeader set SSL_SERVER_S_DN_OU ""
72 RequestHeader set SSL_CLIENT_CERT "%{SSL_CLIENT_CERT}s"
73 RequestHeader set SSL_CLIENT_VERIFY "%{SSL_CLIENT_VERIFY}s"
74 RequestHeader set SSL_CLIENT_S_DN "%{SSL_CLIENT_S_DN}s"
75 RequestHeader set SSL_CLIENT_I_DN "%{SSL_CLIENT_I_DN}s"
76 RequestHeader set SSL_SERVER_S_DN_OU "%{SSL_SERVER_S_DN_OU}s"
77 ```
78
79 ### 2) Konfiguration der Mandanten (Kundenbereich)
80
81 Die folgenden Konfigurationen müssen zum jetzigen Zeitpunkt manuell durch Manipulation auf Datenbankebene vorgenommen werden.
82
83 #### 2.1) Konfiguration des Client
84
85 Damit Ausfülldaten über den Autista Webservice abgeholt werden können, muss für jedes abholende Autista System (Autista Backend) das verwendete Client-Zertifikat oder alternativ die Remote-IP je Mandant hinterlegt werden.
86
87 Wird ein und dasselbe Client-Zertifikat oder Remote-IP bei mehreren Mandanten hinterlegt, so kann das zugehörige Autista System die Ausfülldaten für all diese Mandanten abholen.
88
89 Client Zertifikate und Remote-IP werden momentan direkt durch manuelle Änderungen an der Datenbank im System hinterlegt.
90 Der entsprechende Datenbankname lautet "fsadministrationCenter" und die Collection wird als "apiKey" bezeichnet.
91
92 #### 2.2) Einrichten mit Client-Zertifikat
93
94 Ein Eintrag in der apiKey Collection muss die Attribute "certificate" und "certificateSha1Fingerprint" enthalten.
95 `certificate` enthält das base-64-codiert (.pem) Zertifikat (zu beachten ist, dass Zeilenumbrüche durch `\n` ersetzt werden müssen).
96 `certificateSha1Fingerprint` enthält den SHA-1 Fingerabdruck des Zertifikats.
97
98 Zum Anlegen eines entsprechenden Eintrages in der apiKey Tabelle muss wie folgt aussehen (der Zertifikat-Eintrag ist gekürzt):
99
100 ```
101 use fsadministrationCenter
102 ```
103
104 ```
105 db.apiKey.save({
106 "_id" : "CMS_Key...",
107 "_class" : "de.formsolutions.administrationcenter.model.entities.ApiKey",
108 "organizationId" : "22222222-2222",
109 "validUntil" : ISODate("2020-06-14T13:16:27.626Z"),
110 "createdAt" : ISODate("2017-06-14T13:16:27.626Z"),
111 "description" : "Test Key",
112 "certificate" : "-----BEGIN CERTIFICATE-----\nMIIDxzCCAq+gAwIBAgIEGdOgVzANBgkqhkiG9w0BAQsFADCBkzELMAkGA1UEBhMC\n___BEISPIELEINTRAG_GEKÜRZT___\nZ1UA5Z7b0EYYTOY=\n-----END CERTIFICATE-----",
113 "certificateSha1Fingerprint" : "dfa4139224337185428ebf8d7d4eeed93a6f0000"
114 });
115 ```
116
117 #### 2.2) Konfiguration des Clients mit Remote-IP
118
119 Sollte es mit der zertifikatsbasierten Abholung Probleme geben, gibt es alternativ noch die Möglichkeit die Abholung via Remote-IP abzusichern. Dazu muss der API-Key wie folgt angelegt werden:
120
121 ```
122 use fsadministrationCenter
123 ```
124
125 ```
126 db.apiKey.save({
127
128 "_id" : "CMS_Key...",
129 "_class" : "de.formsolutions.administrationcenter.model.entities.ApiKey",
130 "organizationId" : "22222222-2222",
131 "validUntil" : ISODate("2020-06-14T13:16:27.626Z"),
132 "createdAt" : ISODate("2017-06-14T13:16:27.626Z"),
133 "description" : "Test Key",
134 "remoteIp" : "<IP-Adresse>"
135 });
136 ```
137
138 Die entsprechende Remote-IP-Adresse können Sie aus dem access-Log des Formularservers ermitteln.
139
140 #### 2.2) Konfiguration von Standesamtzuweisungen
141
142 Welche Standesämter zu einem Mandanten gehören, wird in der Mandantenkonfiguration hinterlegt. Diese Konfiguration enthält eine Menge von Modulkonfigurationen und eine davon (de.formsolutions.administrationcenter.organization.OrganizationAutistaConfiguration) enthält die Standesamtnummern eines Mandanten.
143 Diese befindet sich in der Datenbank `administrationCenter` und hier in der Collection `organizationConfiguration`.
144 Diese Modulkonfiguration hat ein Attribut `civilRegistryOfficeIds`, welches eine Liste von Standesamtnummern enthält.
145
146 Ein Beispieleintrag in der Mandantenkonfiguration für den Mandanten "12345678-1234" würde wie folgt aussehen:
147
148 ```
149 {
150 "_id" : "12345678-1234",
151 "_class" : "de.formsolutions.administrationcenter.organization.OrganizationConfiguration",
152 "moduleConfigurations" : [
153 ... GEKÜRZTER_EINTRAG ...
154 {
155 "civilRegistryOfficeIds" : [
156 "05362020"
157 ],
158 "_class" : "de.formsolutions.administrationcenter.organization.OrganizationAutistaConfiguration"
159 }
160
161 ]
162 }
163 ```
164
165 Beispiele für das Anlegen der Struktur
166
167 ```
168 use administrationCenter
169 ```
170
171 Sofern für den Mandanten bereits eine Modulkonfiguration wie z.B. Payment vorliegt können Sie den Eintrag wie folgt hinzufügen:
172
173 ```
174 db.organizationConfiguration.update({"_id" : "organizationid"}, {$push: {"moduleConfigurations" : {"civilRegistryOfficeIds" : ["standesamtsnummer"], "_class" : "de.formsolutions.administrationcenter.organization.OrganizationAutistaConfiguration"}}})
175 ```
176
177 Sollte noch keine Modulkonfiguration für den Mandanten vorhanden sein, bitte wie folgt vorgehen:
178
179 ```
180 db.organizationConfiguration.insert({
181 "_id" : "organiazationID",
182 "_class" : "de.formsolutions.administrationcenter.organization.OrganizationConfiguration",
183 "moduleConfigurations" : [
184 {
185 "civilRegistryOfficeIds" : [
186 "standesamtsnummer"
187 ],
188 "_class" : "de.formsolutions.administrationcenter.organization.OrganizationAutistaConfiguration"
189 }
190
191 ]
192 })
193 ```
194
195 In beiden Fällen sind die Werte für `_id` und `civilRegistryOfficeIds`durch die entsprechenden Werte Kundennummer und Standesamtsnummer zu ersetzen.