Databund: Referenzierung von Schemas

XBAU-187
  • 2.5
Umsetzung
Mi., 13.03.2024 - 14:11
 
So., 15.08.2021 - 17:21
priority-icon Medium
  • Infrastruktur & Technik

Die XBau-Schemas referenzieren via xs:import verschiedene externe Schemas via http, u. a. von osci.de, leitstelle.de und xoev.de, unter anderem hier (Imports der Datei xbau-baukasten.xsd):

{{ <xs:import
schemaLocation="http://www.osci.de/xinneres/basisnachricht/4/xinneresbasisnachricht.xsd"
<xs:import
schemaLocation="http://www.osci.de/xinneres/behoerde/4/xinneresbehoerde.xsd"
<xs:import schemaLocation="http://www.osci.de/xinneres/datum/2/xinneresdatum.xsd"
<xs:import
schemaLocation="http://www.xleitstelle.de/xplanung/schema/5/1/gmlProfile/gm
lProfilexplan.xsd"
<xs:import
schemaLocation="http://xoev.de/latinchars/1_1/datatypes/latinchars.xsd"
xbau-codes.xsd:
<xs:import schemaLocation="http://xoev.de/schemata/code/1_0/xoevcode.xsd"
xbau-nachrichten-anzeige.xsd:
<xs:import
schemaLocation="http://xoev.de/latinchars/1_1/datatypes/latinchars.xsd"
xbau-nachrichten-informationsempfaenger.xsd:
<xs:import
schemaLocation="http://www.xleitstelle.de/xplanung/schema/5/1/gmlProfile/gm
lProfilexplan.xsd"
<xs:import
schemaLocation="http://xoev.de/latinchars/1_1/datatypes/latinchars.xsd"
xbau-nachrichten-ueberwachungspflichtigeAnlagen.xsd:
<xs:import
schemaLocation="http://xoev.de/latinchars/1_1/datatypes/latinchars.xsd"
xbau-prozessnachrichten.xsd:
<xs:import
schemaLocation="http://xoev.de/latinchars/1_1/datatypes/latinchars.xsd"
}}

Anforderungen:
Muss: Die Referenzierung muss aus Sicherheitsgründen via TLS (https) erfolgen. Bei Übertragung per http besteht eine Manipulationsgefahr, was insbesondere bei Formaten wie XSD, die als Code maschinell ausgewertet werden, nicht tragbar ist.

Soll: Es wäre sehr wünschenswert, dass alle Schemas (rekursiv) lokal aufgelöst und geladen würden. Motivation unter anderem: Performance, Betriebstabilität (z.B. Ausfall xoev.de), Netzwerksicherheit (z. B. XBau-Serversystem in abgeschottetem Netzwerksegment, aus dem keine http-Requests ins öffentliche Internet möglich sind). Es ist zwar technisch möglich, dies zu ändern bzw. eine abweichende Auflösung bei der Schema-Validierung zu realisieren, ist aber bei allen integrierenden System mit zusätzlichem Programmier- und ggf.- Betriebs- und Konfigurationsaufwand verbunden.

Kommentare

EG21-03 07.09.2021

Bemerkungen:  

  • die Anforderung entspricht dem Stand der Technik, soll entsprechend umgesetzt werden
  • die HTTPS-Einbindung (import) ist in den XBau-XSDs für die GML- und Kernmodul-Artefakte bereits realisiert, die Imports für die XInneres- und XÖV-Artefakte müssen nachgezogen werden

XLeitstelle am 15.09.2021

Test der genannten URLs:

Die ersten 3 (OSCI-) Adressen funktionieren gar nicht (404)

xleitstelle (gml) Adresse funktioniert mit http und mit https

xoev/latinchars funktioniert mit http und mit https [wird 5 mal aufgerufen!?]

xoev/schemata Adresse funktioniert gar nicht (404)

 

Aktualisierung mit Bezug zur aktuellen Konfiguration

Zu substituieren (durch die entsprechende https-Variante) sind die folgenden import-Einträge der XSDs von XBau-Fachmodul Hochbau und XBau-Kernmodul:

  1. http://www.osci.de/xinneres/basisnachricht/5/xinneres-basisnachricht.xsd
  2. http://www.osci.de/xinneres/behoerde/5/xinneres-behoerde.xsd
  3. http://www.osci.de/xinneres/datum/2/xinneres-datum.xsd
  4. http://www.osci.de/xinneres/lichtbild/2/xinneres-lichtbild.xsd
  5. http://xoev.de/latinchars/1_1/datatypes/latinchars.xsd
  6. http://xoev.de/DIN-SPEC-91379/2019-03/datatypes/din-91379-datatypes.xsd
  7. http://xoev.de/schemata/code/1_0/xoev-code.xsd

1-4 betrifft Ressourcen des Standards XInneres-Basismodul

5-7 betrifft Ressourcen der XÖV-Bibliothek

Es wurde überprüft, dass alle 7 Ressourcen per https verfügbar sind. 

Der folgende Eintrag bleibt bestehen, weil bereits https: 

Analyse ergibt folgende Befunde:

  • Test 1: Es wurde per Browser überprüft, dass alle 7 Ressourcen per https verfügbar sind. Kein Problem.
  • Test 2: Es wurde in den XBau-XSDs manuell substituiert (https für http). Und dann per XML-Tools Validierungsversuche durchgeführt.

Problem:

  • Es resultiert Fehlermeldung für jede einzelne Substitution mit dem Inhalt: “Type xy is already declared”. 

Hypothese zur Ursache: 

  • Ursache ist vermutlich der Umstand, dass die importierten Ressourcen (z.B. aus XInneres-Basismodul wie z.B. "xinneres-basisnachricht“) ebenfalls hier in Rede stehende Ressourcen (aus xinneres und aus xoev) importieren, aber als „http“. Der Versuch, diese Ressourcen mit einer anderen schemaLocation (per "https") zu importieren, schlägt dann fehl. Obwohl die schemaLocation sich nur im Protokoll unterscheidet, scheint sie als neue Location zu gelten. 

Gegenmittel

  • Die Fehlermeldungen lassen sich nur überwinden, wenn die importierten XSD-Ressourcen ihrerseits an allen Stellen auf die https-Importe umstellen.

Diagnose

  • Zurzeit in XBau nicht zu beheben wg. externer Rahmenbedingungen. Die Importe aus XInneres-Basismodul und aus der XÖV-Bibliothek sind im Kontakt mit der KoSIT zu überprüfen.

Update nach Upgrade der XBau-Spezifikation auf XÖV 3.0: 

  • die XInneres-Artefakte wurden substituiert, stattdessen sind jetzt Artefakte der XÖV-Bibliothek eingebunden (Datentypen aus dem Paket XÖV-Basisnachricht)
  • dadurch haben wir jetzt ein reduziertes Bild zu Imports in den XBau-XSDs:

Die Ausgangslage zur Bereinigung der http-Imports (Anliegen des vorliegenden CRs) ist dadurch verbessert.  

Als nächstes steht ein Test an mit https-Zugriff auf die Artefakte der XÖV-Bibliothek (Basisnachricht, StringLatin, DIN 91379).