Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

Datenimport/-export Schnittstelle/de: Unterschied zwischen den Versionen

Aus HITGuard User Guide
FuzzyBot (Diskussion | Beiträge)
Übernehme Bearbeitung einer neuen Version der Quellseite
 
FuzzyBot (Diskussion | Beiträge)
Übernehme Bearbeitung einer neuen Version der Quellseite
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Bei der Datenimport/-export Schnittstelle von HITGuard handelt es sich um eine REST Schnittstelle die sich an die OpenAPI Spezifikation 3.0 hält. Es handelt sich dabei also um eine Schnittstelle die von Applikationen angesprochen werden kann.
Bei der Datenimport/-export Schnittstelle von HITGuard handelt es sich um eine REST Schnittstelle, die sich an die OpenAPI 3.0 Spezifikation hält. Es handelt sich dabei also um eine Schnittstelle, die von Applikationen angesprochen werden kann.


Diese Seite beschreibt, wie die REST Schnittstelle aktiviert werden kann, wie man die Berechtigung zum Verwenden der REST Schnittstelle bekommt (ApiKeys) und wo die Dokumentation der REST Schnittstelle zu finden ist (SwaggerUI).
Diese Seite beschreibt, wie die REST Schnittstelle aktiviert werden kann, wie man die Berechtigung zum Verwenden der REST Schnittstelle bekommt (ApiKeys) und wo die Dokumentation der REST Schnittstelle zu finden ist (SwaggerUI).
Erfolgreich durchgeführte Imports erzeugen im Menüpunkt Datenimport auch ein Importprotokoll ([[Special:MyLanguage/Datenimport|"Administration → Datenimport | <u>Importprotokolle</u>]])!
[[Datei:REST API Importprotokoll.png|thumb|left|900px]]<br clear=all>


== Konfiguration ==
== Konfiguration ==


Um die REST Schnittstelle zu aktivieren, muss in der Konfigurationsdatei "appsettings.json" folgendes Property gesetzt sein:
Um die REST Schnittstelle zu aktivieren, muss in der Konfigurationsdatei "appsettings.production.json" folgendes Property gesetzt sein:


* <code>"RestApi": { "Enabled": true } </code>
* <code>"RestApi": { "Enabled": true } </code>


Existiert dieses Property nicht oder es ist auf "false" gesetzt, ist die REST Schnittstelle komplett deaktiviert und Administratoren sehen den Abschnitt "ApiKey" unter ihrem Profil nicht mehr.
Existiert dieses Property nicht oder es ist auf "false" gesetzt, ist die REST Schnittstelle vollkommen deaktiviert und Administratoren sehen weder den Abschnitt "ApiKey" unter ihrem Profil noch die Einstellungen der REST Schnittstelle unter den Globalen Einstellungen.


== Einstellungen ==  
== Einstellungen ==  


Wurde die REST Schnittstelle im "appsettings.json" aktiviert, finden <b>Administratoren</b> einen neuen Bereich in den Globalen Einstellungen über den die REST Schnittstelle jederzeit aktiviert und deaktiviert werden kann.
Wurde die REST Schnittstelle im "appsettings.production.json" aktiviert, finden <b>Administratoren</b> einen neuen Bereich in den Globalen Einstellungen, über den die REST Schnittstelle jederzeit aktiviert und deaktiviert werden kann.


[[Datei:REST API Einstellungen.png|thumb|left|900px]]<br clear=all>
[[Datei:REST API Einstellungen.png|thumb|left|902px]]<br clear=all>


* REST Schnittstelle aktivieren:
* REST Schnittstelle aktivieren:
:: Diese Option aktiviert die Endpunkte der REST Schnittstelle. Ist diese Option deaktiviert, dann nimmt die REST Schnittstelle keine Request entgegen.
:: Diese Option aktiviert die Endpunkte der REST Schnittstelle. Ist diese Option deaktiviert, dann nimmt die REST Schnittstelle keine Requests entgegen.


* SwaggerUI aktivieren:
* SwaggerUI aktivieren:
:: Diese Option aktiviert die SwaggerUI, dabei handelt es sich um eine interaktive Dokumentation der REST Schnittstelle. Sie kann unter "/swagger" erreicht werden.  
:: Diese Option aktiviert die SwaggerUI. Dabei handelt es sich um eine interaktive Dokumentation der REST Schnittstelle. Sie kann unter "/swagger" erreicht werden.  
::Diese Option hat keine Auswirkung auf die Funktionalität der REST Schnittstelle. Wird sie deaktiviert, funktioniert die REST Schnittstelle, sofern sie aktiviert ist, trotzdem.
::Diese Option hat keine Auswirkung auf die Funktionalität der REST Schnittstelle. Wird sie deaktiviert, funktioniert die REST Schnittstelle, sofern sie aktiviert ist, trotzdem.
:: Diese Seite ist nur für Entwickler relevant die mit der REST Schnittstelle kommunizieren möchten.  
:: Diese Seite ist nur für Entwickler relevant, die mit der REST Schnittstelle kommunizieren möchten.  
:: Wird die Dokumentation nicht mehr benötigt, sollte die SwaggerUI Seite deaktiviert werden.
:: Wird die Dokumentation nicht mehr benötigt, sollte die SwaggerUI Seite deaktiviert werden.


== Swagger / OpenAPI Dokumentation ==
== Swagger/OpenAPI Dokumentation ==


Wie vorher beschrieben, findet man die Dokumentation der REST Schnittstelle unter "/swagger" wenn die SwaggerUI aktiviert ist.
Wie vorher beschrieben, findet man die Dokumentation der REST Schnittstelle unter "/swagger", wenn die SwaggerUI aktiviert ist.


Auf dieser Seite finden Entwickler alle Informationen die Sie benötigen um die REST Schnittstelle anzusprechen.
Auf dieser Seite finden Entwickler alle Informationen, die sie benötigen, um die REST Schnittstelle anzusprechen.


Auf dieser Seite ist auch die JSON Beschreibung der REST Schnittstelle zu finden. Diese Beschreibung kann von Tools (z.b [https://editor.swagger.io/| editor.swagger.io]) verwendet werden um automatisch Clients für die REST Schnittstelle zu generieren.
Auf dieser Seite ist auch die JSON Beschreibung der REST Schnittstelle zu finden. Diese Beschreibung kann von Tools (z.B. [https://editor.swagger.io editor.swagger.io]) verwendet werden, um automatisch Clients für die REST Schnittstelle zu generieren.


[[Datei:REST API Swagger.png|thumb|left|900px|SwaggerUI]]<br clear=all>
[[Datei:REST API Swagger.png|thumb|left|900px|SwaggerUI]]<br clear=all>
{| class="wikitable"
! colspan="2" | <b>Überblick</b>
|-
!Kanten der Strukturanalyse
|PUT/api/asset-edges → Fügt Beziehungen in der Strukturanalyse hinzu zwischen Ressourcen, Organisationseinheiten, Prozessen und Datenkategorien.
|-
!Meldungen
|PUT/api/tickets → Erstellt neue Meldungen in einem Managementsystem bzw. aktualisiert diese.<br>DELETE/api/tickets/{id} → Löscht Meldungen anhand der ID im Drittsystem.
|-
!Managementsysteme
|GET/api/management-systems → Erzeugt eine Liste der vorhandenen Managementsysteme. Diese Liste enthält die IDs der Managementsysteme.
|-
!Benutzer
|DELETE/api/users/deactivate/{userName} → Deaktiviert bzw. deaktiviert und anonymisiert einen Benutzer anhand des Usernamens.
|-
!Datenkategorien
|PUT/api/data-categories → Erstellt neue Datenkategorien bzw. aktualisiert diese.<br>GET/api/data-categories → Erzeugt eine Liste der vorhandenen Datenkategorien.<br>GET/api/data-categories/data-classes → Erzeugt eine Liste der vorhandenen Datenklassen.<br>DELETE/api/data-categories/{id} → Löscht eine Datenkategorie anhand der ID im Drittsystem.
|-
!Maßnahmen
|PUT/api/measures → Erstellt neue Maßnahmen bzw. aktualisiert diese.<br>PUT/api/measures/close/{id} → Versetzt eine Maßnahme anhand der ID in den Status "Erledigt".<br>PUT/api/measures/close/byKey/{id} → Versetzt eine Maßnahme anhand der ID im Drittsystem in den Status "Erledigt".<br>DELETE/api/measures/{id} → Löscht eine Maßnahme anhand der ID.<br>GET/api/measures/{state} → Erzeugt eine Liste aller Maßnahmen in einem bestimmten Status.
|-
!Organisationseinheiten
|PUT/api/org-units → Erstellt eine Organisationseinheit bzw. aktualisiert diese.<br>GET/api/org-units → Erzeugt eine Liste der Organisationseinheiten.<br>DELETE/api/org-units/{id} → Löscht eine Organisationseinheit anhand der ID.
|-
!Prozesse
|PUT/api/processes → Erstellt einen Prozess bzw. aktualisiert diesen.<br>GET/api/processes → Erzeugt eine Liste der Prozesse.<br>DELETE/api/processes/{id} → Löscht einen Prozess anhand der ID.
|-
!Ressourcen
|PUT/api/resources → Erstellt eine Ressource bzw. aktualisiert diese.<br>GET/api/resources → Erstellt eine Liste der Ressourcen.<br>GET/api/resources/{id} → Holt die Information zu einer bestimmten Ressource anhand der ID.<br>DELETE/api/resources/{id} → Löscht eine Ressource anhand der ID.
|-
!Risiken
|PUT/api/risks → Erstellt ein Risiko in einem Managementsystem bzw. aktualisiert dieses.<br>GET/api/risks/{managementSystemId} → Erzeugt eine Liste aller vorhandenen Risiken eines Managementsystems.<br>GET/api/risks/byKey/{riskExternalId} → Holt die Information zu einem bestimmten Risiko anhand der ID.<br>DELETE/api/risks/{id} → Löscht ein Risiko anhand der ID.
|-
|}


== ApiKeys ==
== ApiKeys ==
Zeile 40: Zeile 79:
<b>Alle</b> Endpunkte der REST Schnittstelle sind über ApiKeys gesichert!
<b>Alle</b> Endpunkte der REST Schnittstelle sind über ApiKeys gesichert!


Damit Requests an die REST Schnittstelle erfolgreich durchgeführt werden können, muss in jedem Request ein gültiger ApiKey im "Authorization" Header mit gesendet werden.
Damit Requests an die REST Schnittstelle erfolgreich durchgeführt werden können, muss in jedem Request ein gültiger ApiKey im <b>Authorization Header</b> mitgesendet werden.


ApiKeys können dabei nur von Administratoren unter ihrem Profil (klicken auf das Profilbild) erstellt werden. Jeder Administrator kann zu jedem Zeitpunkt nur einen gültigen ApiKey haben.
ApiKeys können dabei nur von Administratoren unter ihrem Profil (klicken auf das Profilbild) erstellt werden. Jeder Administrator kann zu jedem Zeitpunkt nur einen gültigen ApiKey haben.
Zeile 50: Zeile 89:
[[Datei:REST API ApiKey generieren.png|thumb|left|900px| ApiKey generieren]]<br clear=all>
[[Datei:REST API ApiKey generieren.png|thumb|left|900px| ApiKey generieren]]<br clear=all>


Der ApiKey wird nur ein einziges mal angezeigt! Wenn Sie ihn hier nicht kopieren, müssen Sie einen neuen ApiKey erzeugen. Durch klicken auf den Button links neben dem ApiKey, wird der ApiKey in Ihre Zwischenablage kopiert. Stellen Sie sicher, dass sie den ApiKey an einem sicheren Ort ablegen.
Der ApiKey wird nur ein einziges Mal angezeigt! Wenn Sie ihn hier nicht kopieren, müssen Sie einen neuen ApiKey erzeugen. Durch Klick auf den Button links neben dem ApiKey, wird der ApiKey in Ihre Zwischenablage kopiert. Stellen Sie sicher, dass sie den ApiKey an einem sicheren Ort ablegen.


[[Datei:REST API ApiKey kopieren.png|thumb|left|900px| ApiKey kopieren]]<br clear=all>
[[Datei:REST API ApiKey kopieren.png|thumb|left|900px| ApiKey kopieren]]<br clear=all>


Ein Administrator kann aber seinen eigenen ApiKey jederzeit widerrufen, wodurch über den ApiKey anschließend keine Requests mehr durchgeführt werden können.
Ein Administrator kann seinen eigenen ApiKey jederzeit widerrufen, wodurch über den ApiKey anschließend keine Requests mehr durchgeführt werden können.


[[Datei:REST API ApiKey widerrufen.png|thumb|left|900px| ApiKey Widerrufen]]<br clear=all>
[[Datei:REST API ApiKey widerrufen.png|thumb|left|900px| ApiKey Widerrufen]]<br clear=all>


Um ApiKeys zu verwalten empfiehlt es sich pro Applikation, die die REST Schnittstelle ansteuert, einen Administrator anzulegen um einen ApiKey pro Applikation zu bekommen. Dadurch kann einer Applikation jederzeit der Zugriff genommen werden.
Um ApiKeys zu verwalten empfiehlt es sich, pro Applikation, die die REST Schnittstelle ansteuert, einen Administrator anzulegen, um einen ApiKey pro Applikation zu bekommen. Dadurch kann einer Applikation jederzeit der Zugriff enthoben werden.

Aktuelle Version vom 13. März 2024, 14:55 Uhr

Bei der Datenimport/-export Schnittstelle von HITGuard handelt es sich um eine REST Schnittstelle, die sich an die OpenAPI 3.0 Spezifikation hält. Es handelt sich dabei also um eine Schnittstelle, die von Applikationen angesprochen werden kann.

Diese Seite beschreibt, wie die REST Schnittstelle aktiviert werden kann, wie man die Berechtigung zum Verwenden der REST Schnittstelle bekommt (ApiKeys) und wo die Dokumentation der REST Schnittstelle zu finden ist (SwaggerUI).

Erfolgreich durchgeführte Imports erzeugen im Menüpunkt Datenimport auch ein Importprotokoll ("Administration → Datenimport | Importprotokolle)!


Konfiguration

Um die REST Schnittstelle zu aktivieren, muss in der Konfigurationsdatei "appsettings.production.json" folgendes Property gesetzt sein:

  • "RestApi": { "Enabled": true }

Existiert dieses Property nicht oder es ist auf "false" gesetzt, ist die REST Schnittstelle vollkommen deaktiviert und Administratoren sehen weder den Abschnitt "ApiKey" unter ihrem Profil noch die Einstellungen der REST Schnittstelle unter den Globalen Einstellungen.

Einstellungen

Wurde die REST Schnittstelle im "appsettings.production.json" aktiviert, finden Administratoren einen neuen Bereich in den Globalen Einstellungen, über den die REST Schnittstelle jederzeit aktiviert und deaktiviert werden kann.


  • REST Schnittstelle aktivieren:
Diese Option aktiviert die Endpunkte der REST Schnittstelle. Ist diese Option deaktiviert, dann nimmt die REST Schnittstelle keine Requests entgegen.
  • SwaggerUI aktivieren:
Diese Option aktiviert die SwaggerUI. Dabei handelt es sich um eine interaktive Dokumentation der REST Schnittstelle. Sie kann unter "/swagger" erreicht werden.
Diese Option hat keine Auswirkung auf die Funktionalität der REST Schnittstelle. Wird sie deaktiviert, funktioniert die REST Schnittstelle, sofern sie aktiviert ist, trotzdem.
Diese Seite ist nur für Entwickler relevant, die mit der REST Schnittstelle kommunizieren möchten.
Wird die Dokumentation nicht mehr benötigt, sollte die SwaggerUI Seite deaktiviert werden.

Swagger/OpenAPI Dokumentation

Wie vorher beschrieben, findet man die Dokumentation der REST Schnittstelle unter "/swagger", wenn die SwaggerUI aktiviert ist.

Auf dieser Seite finden Entwickler alle Informationen, die sie benötigen, um die REST Schnittstelle anzusprechen.

Auf dieser Seite ist auch die JSON Beschreibung der REST Schnittstelle zu finden. Diese Beschreibung kann von Tools (z.B. editor.swagger.io) verwendet werden, um automatisch Clients für die REST Schnittstelle zu generieren.

SwaggerUI


Überblick
Kanten der Strukturanalyse PUT/api/asset-edges → Fügt Beziehungen in der Strukturanalyse hinzu zwischen Ressourcen, Organisationseinheiten, Prozessen und Datenkategorien.
Meldungen PUT/api/tickets → Erstellt neue Meldungen in einem Managementsystem bzw. aktualisiert diese.
DELETE/api/tickets/{id} → Löscht Meldungen anhand der ID im Drittsystem.
Managementsysteme GET/api/management-systems → Erzeugt eine Liste der vorhandenen Managementsysteme. Diese Liste enthält die IDs der Managementsysteme.
Benutzer DELETE/api/users/deactivate/{userName} → Deaktiviert bzw. deaktiviert und anonymisiert einen Benutzer anhand des Usernamens.
Datenkategorien PUT/api/data-categories → Erstellt neue Datenkategorien bzw. aktualisiert diese.
GET/api/data-categories → Erzeugt eine Liste der vorhandenen Datenkategorien.
GET/api/data-categories/data-classes → Erzeugt eine Liste der vorhandenen Datenklassen.
DELETE/api/data-categories/{id} → Löscht eine Datenkategorie anhand der ID im Drittsystem.
Maßnahmen PUT/api/measures → Erstellt neue Maßnahmen bzw. aktualisiert diese.
PUT/api/measures/close/{id} → Versetzt eine Maßnahme anhand der ID in den Status "Erledigt".
PUT/api/measures/close/byKey/{id} → Versetzt eine Maßnahme anhand der ID im Drittsystem in den Status "Erledigt".
DELETE/api/measures/{id} → Löscht eine Maßnahme anhand der ID.
GET/api/measures/{state} → Erzeugt eine Liste aller Maßnahmen in einem bestimmten Status.
Organisationseinheiten PUT/api/org-units → Erstellt eine Organisationseinheit bzw. aktualisiert diese.
GET/api/org-units → Erzeugt eine Liste der Organisationseinheiten.
DELETE/api/org-units/{id} → Löscht eine Organisationseinheit anhand der ID.
Prozesse PUT/api/processes → Erstellt einen Prozess bzw. aktualisiert diesen.
GET/api/processes → Erzeugt eine Liste der Prozesse.
DELETE/api/processes/{id} → Löscht einen Prozess anhand der ID.
Ressourcen PUT/api/resources → Erstellt eine Ressource bzw. aktualisiert diese.
GET/api/resources → Erstellt eine Liste der Ressourcen.
GET/api/resources/{id} → Holt die Information zu einer bestimmten Ressource anhand der ID.
DELETE/api/resources/{id} → Löscht eine Ressource anhand der ID.
Risiken PUT/api/risks → Erstellt ein Risiko in einem Managementsystem bzw. aktualisiert dieses.
GET/api/risks/{managementSystemId} → Erzeugt eine Liste aller vorhandenen Risiken eines Managementsystems.
GET/api/risks/byKey/{riskExternalId} → Holt die Information zu einem bestimmten Risiko anhand der ID.
DELETE/api/risks/{id} → Löscht ein Risiko anhand der ID.

ApiKeys

Alle Endpunkte der REST Schnittstelle sind über ApiKeys gesichert!

Damit Requests an die REST Schnittstelle erfolgreich durchgeführt werden können, muss in jedem Request ein gültiger ApiKey im Authorization Header mitgesendet werden.

ApiKeys können dabei nur von Administratoren unter ihrem Profil (klicken auf das Profilbild) erstellt werden. Jeder Administrator kann zu jedem Zeitpunkt nur einen gültigen ApiKey haben.

Abschnitt zum Verwalten des ApiKeys


ApiKeys können mit einem Ablaufdatum erstellt werden. Wenn der ApiKey abläuft, können mit ihm keine Requests mehr durchgeführt werden.

ApiKey generieren


Der ApiKey wird nur ein einziges Mal angezeigt! Wenn Sie ihn hier nicht kopieren, müssen Sie einen neuen ApiKey erzeugen. Durch Klick auf den Button links neben dem ApiKey, wird der ApiKey in Ihre Zwischenablage kopiert. Stellen Sie sicher, dass sie den ApiKey an einem sicheren Ort ablegen.

ApiKey kopieren


Ein Administrator kann seinen eigenen ApiKey jederzeit widerrufen, wodurch über den ApiKey anschließend keine Requests mehr durchgeführt werden können.

ApiKey Widerrufen


Um ApiKeys zu verwalten empfiehlt es sich, pro Applikation, die die REST Schnittstelle ansteuert, einen Administrator anzulegen, um einen ApiKey pro Applikation zu bekommen. Dadurch kann einer Applikation jederzeit der Zugriff enthoben werden.