GeoWerkstatt / interlis-check-service

Webbasierter Checkservice für INTERLIS Daten
GNU General Public License v3.0
4 stars 0 forks source link

ilicop als Plattform für Datenlieferungen #147

Closed romefi closed 7 months ago

romefi commented 1 year ago

Wir im Kanton SH müssen in Zukunft eine geordnete Datenlieferung durch Datenlieferanten (Werke, Ingenieurbüros) aufbauen. Die meisten Daten kommen als INTERLIS und müssen über ilicheck.geo.sh.ch (Instanz von ilicop) geprüft werden. Schön, wäre, wenn sie darüber auch gleich die Daten liefern können. Ein paar (nicht abschliessende) Gedanken dazu:

Falls jemand ähnliche Ideen hat, wären wir sehr offen für eine gemeinsame Weiterentwicklung.

leafelber commented 1 year ago

Im Kanton Zug wollen wir im Rahmen des Projekts Leitungskataster LKZG von extern angelieferte ILI-Datensätze möglichst automatisiert mit unserem ILI-Checker (ilicheck.geo.zg.ch) prüfen und anschliessend je nach Erfolg in die entsprechenden Kanäle weiterleiten und verarbeiten. Die Datenlieferanten müssten sich hierfür authentifizieren können. Wir sind noch ganz am Anfang mit unseren Überlegungen bzgl. konkreten Anforderungen und Bedürfnissen, aber sicher an einer Zusammenarbeit interessiert.

romefi commented 1 year ago

Wie würde das weitere Vorgehen aussehen? Von unserer Seite wären wir daran interessiert, die Weiterentwicklung (dieser Issue + #148) möglichst bald anzugehen.

cype commented 1 year ago

Wird dies nicht grösstenteils das Broker-Modell von geodienste.ch abdecken? Nico und ich würden das gerne mit dir besprechen. Ich schicke dir eine Termineinladung :)

romefi commented 1 year ago

Wird dies nicht grösstenteils das Broker-Modell von geodienste.ch abdecken? Nico und ich würden das gerne mit dir besprechen. Ich schicke dir eine Termineinladung :)

Für euren Anwendungsfall schon. Die Kantone haben teils zusätzliche Anforderungen (zusätzliche Datenprüfungen, kantonale Modelle etc.), die durch das Broker-Modell nicht vollständig abgedeckt sind. Werden wir dann besprechen :)

mauralp commented 1 year ago

Zur Vorbereitung auf das Treffen am Dienstag eine kleine Übersicht für mich Schritte zur Implementierung des Deklarationsteils: (Fronted)

  1. Registrierungsformular erstellen: Erfassen Sie wichtige Informationen von den Datenlieferanten (Organisationsname, Kontaktdaten, Benutzername, Passwort). Überprüfen Sie die Eingaben serverseitig auf Korrektheit und Einhaltung der Kriterien.
  2. Benutzerinformationen speichern: Speichern Sie wichtige Details wie Organisationsname, Kontaktdaten, Benutzername und gehashte Passwörter.
  3. Benutzerkonto erstellen: Verarbeiten Sie die Registrierungsdaten und erstellen Sie ein neues Benutzerkonto im ilivalidator-System. Generieren Sie eine eindeutige Kennung oder einen API-Schlüssel für die Authentifizierung.
  4. Kontoaktivierung (optional): Implementieren Sie einen Aktivierungsschritt, um die E-Mail-Adresse zu überprüfen oder das Konto manuell zu aktivieren.
  5. Bestätigung und Anleitung zur Anmeldung bereitstellen: Geben Sie dem Benutzer eine Bestätigungsmeldung und Anweisungen zur Anmeldung mit dem neuen Konto. Sicherer Umgang mit Passwörtern: Verwenden Sie Sicherheitsmaßnahmen wie Hashing, um Passwörter sicher zu speichern. Speichern Sie niemals Passwörter im Klartext.

Lieferung der Daten über die REST-API inklusive Authentifizierung: • Implementierung eines Authentifizierungsmechanismus für die REST-API (Representational State Transfer Application Programming Interface), z. B. tokenbasierte Authentifizierung oder OAuth. • Definition der API-Endpunkte (= URLs (Uniform Resource Locators))für die Datenlieferung und Festlegung der erforderlichen Authentifizierungsinformationen. • Konfiguration der API-Endpunkte zur Überprüfung der bereitgestellten Authentifizierungsinformationen, bevor die Datenlieferungsanfrage verarbeitet wird. • Implementierung der Logik zum Empfangen und Verarbeiten der übermittelten Daten unter Verwendung der Funktionen von ilivalidator zur Validierung. • Speicherung der validierten Daten an geeigneter Stelle zur weiteren Verarbeitung oder Archivierung. • Bereitstellung angemessener Antworten an die API-Clients, die den Erfolg oder Misserfolg des Datenlieferungsprozesses anzeigen. • Dokumentation der REST-API, einschließlich des Datenlieferungs-Endpunkts, der Authentifizierungsanforderungen und der erwarteten Antworten. • Sicherstellung, dass die REST-API mit branchenüblichen Verfahren wie HTTPS-Verschlüsselung und sicherer Token-Verwaltung geschützt ist. • ### Regelmäßige Überprüfung und Aktualisierung der Authentifizierungs- und Sicherheitsmechanismen, um potenzielle Schwachstellen oder aufkommende Bedrohungen anzugehen.

Weitere Infos: VSA Checker GATE - Ooganisations Tabelle- Constraint -MINI Modell GEP Geodienste- Zusatz Modul Geometrie Prüfung

mauralp commented 1 year ago

Neben dem deklarierten Teil braucht es weiterhin eine öffentlichen Zugang, wo alle ihre Daten prüfen lassen können: Zu Beachten: Zugriffsbeschränkungen: Abhängig von den Anforderungen und Sicherheitsaspekten kann es erforderlich sein, den öffentlichen Zugriff auf bestimmte Benutzer oder Organisationen zu beschränken. Hierbei können Authentifizierungs- oder Berechtigungssysteme implementiert werden, um sicherzustellen, dass nur autorisierte Benutzer auf die Datenprüfungsfunktionen zugreifen können.

Feedback-Möglichkeiten: Es kann hilfreich sein, den Benutzern die Möglichkeit zu geben, Feedback zu den geprüften Daten zu geben. Dies kann in Form von Kommentaren, Fehlerberichten oder Änderungsanfragen erfolgen, um den Lieferanten wertvolles Feedback für die Datenqualität zu geben.

Dokumentation und Anleitung: Eine klare Anleitung und Dokumentation sollten bereitgestellt werden, um den Benutzern zu erklären, wie sie ihre Daten hochladen, prüfen und die Ergebnisse interpretieren können. Dies erleichtert die Nutzung der öffentlichen Schnittstelle und minimiert potenzielle Missverständnisse.

mauralp commented 1 year ago

Sollen auch andere Daten als INTERLIS geliefert werden können?

sollten dann folgende Schritte unternommen werden:

1- Definition der unterstützten Datenformate.
2- Anpassung der Validierungslogik von ilivalidator, um die übermittelten Datenformate zu erkennen und entsprechende 
    Überprüfungen durchzuführen.
3- Aktualisierung der REST API von ilivalidator, um die anderen Datenformate für die Datenlieferung zu akzeptieren.
4- Bereitstellung klarer Anweisungen und Informationen an die Lieferanten bezüglich der akzeptierten Datenformate und 
    deren Anforderungen.

Durch die Erweiterung der unterstützten Datenformate können verschiedene Arten von Datenlieferungen in ilivalidator verarbeitet werden, was die Flexibilität und Kompatibilität mit verschiedenen Lieferanten und Datenquellen erhöht. Dies ermöglicht es, ilivalidator als umfassendes Werkzeug für die Datenvalidierung und -prüfung in unterschiedlichen Formaten einzusetzen.

mauralp commented 1 year ago

Erfüllt ilicop die Sicherheitsstandards, falls sensitive Daten dort zugriffsgeschützt abgelegt sind? Diese Frage betrifft vor allem den Betrieb als eigene Instanz in der Cloud.

Hier sind einige Aspekte zu beachten:

Verwendung von sicheren Verschlüsselungsalgorithmen und das Implementieren von Best Practices für die Schlüsselverwaltung.

Zugriffskontrolle: ilicop kann Zugriffskontrollmechanismen bereitstellen, um sicherzustellen, dass nur autorisierte Benutzer auf die sensiblen Daten zugreifen können. Dies umfasst die Implementierung von Benutzerrollen, Berechtigungsvergabe und Authentifizierungsmechanismen wie Benutzername/Passwort, Token-basierte Authentifizierung oder OAuth.

Datenintegrität: ilicop kann Mechanismen zur Gewährleistung der Datenintegrität implementieren, um sicherzustellen, dass die abgelegten sensiblen Daten nicht unbemerkt verändert oder manipuliert werden. Dies kann durch die Verwendung von z.B. digitalen Signaturen erreicht werden.

Audit-Logging: ilicop kann ein umfassendes Audit-Logging-System bereitstellen, um alle Zugriffe auf sensible Daten zu protokollieren. Dies ermöglicht eine Rückverfolgbarkeit von Aktivitäten und erleichtert die Überwachung und Überprüfung der Datenzugriffe.

Sicherheitsupdates und Wartung: Ilicop sollte regelmäßig gewartet und auf dem neuesten Stand gehalten werden, um Sicherheitsupdates und -patches zu erhalten.

Beim Betrieb von ilicop als eigene Instanz in der Cloud ist es wichtig, auch die Sicherheitsaspekte der Cloud-Infrastruktur zu berücksichtigen. Dies umfasst die Verwendung einer sicheren und zuverlässigen Cloud-Plattform, die Implementierung von Zugriffskontrollen auf Cloud-Ressourcen und die Durchführung regelmäßiger Sicherheitsaudits.

olivergrimm commented 1 year ago

@mauralp Der Kommentar https://github.com/GeoWerkstatt/interlis-check-service/issues/147#issuecomment-1547509535 würde ich eher #148 zuordnen.