Der Natural OpenAPI Server bietet Konfigurationsoptionen für die Sicherheit der Kommunikation:
zwischen dem Natural OpenAPI Server und dem Subprogram Server.
zwischen dem Client und dem Natural OpenAPI Server.
Dieses Dokument behandelt die folgenden Themen:
Sichere Kommunikation zwischen dem Natural OpenAPI Server und dem Subprogram Server
Sichere Kommunikation zwischen Client und Natural OpenAPI Server
Mit dem Natural OpenAPI Server kann die Kommunikation zwischen dem Natural OpenAPI Server und den Subprogram Servers mittels SSL/TLS verschlüsselt werden.
SSL/TLS kann über die folgende Property aktiviert werden:
com.softwareag.natural.openapi.server.config.host.ssl.enabled=true
Wenn SSL/TLS eingerichtet ist, verwendet der Server die konfigurierte Zertifikatskette,
um sichere Verbindungen herzustellen. Das Zertifikat kann über die Property
certsChain konfiguriert werden:
com.softwareag.natural.openapi.server.config.host.ssl.certsChain[0]=classpath:natsubsrv.server.cert.crt
Die Property gibt den Speicherort des serverseitigen Zertifikats an. Das Präfix
classpath: bedeutet, dass das Zertifikat aus dem Class-Pfad der Anwendung
geladen wird.
Es können mehrere Zertifikate als Teil der Zertifikatskette angegeben werden, indem
zusätzliche indizierte Properties verwendet werden, zum Beispiel:
certsChain[1], certsChain[2] und so weiter.
Anmerkung
Die SSL-Zertifikatskonfiguration ist nur relevant, wenn
com.softwareag.natural.openapi.server.config.host.ssl.enabled auf
true gesetzt ist.
Der Natural OpenAPI Server unterstützt sichere Kommunikation über SSL/TLS. Wenn SSL/TLS aktiviert ist, stellen Clients die Verbindung zum Server über HTTPS statt über HTTP her.
Der vom Server standardmäßig verwendete Port ist 8080. Für HTTPS kann ein anderer Port konfiguriert werden, beispielsweise 8443, indem die folgende Property festgelegt wird:
server.port=8443
Um SSL/TLS zu aktivieren, setzen Sie die folgende Property:
server.ssl.enabled=true
Die folgenden Properties konfigurieren das vom Server verwendete SSL-Zertifikat und den Schlüsselspeicher (Key Store):
Diese Property gibt den Pfad zum Schlüsselspeicher an, der das SSL-Zertifikat und den privaten Schlüssel enthält. Beispiel:
server.ssl.key-store=file:///opt/softwareag/NaturalOpenAPIServer/conf/keystore.p12
Diese Property gibt das Passwort an, das für den Zugriff auf den Schlüsselspeicher erforderlich ist. Beispiel:
server.ssl.key-store-password=password
Diese Property gibt den Typ des Schlüsselspeichers an. Die unterstützten Typen sind JKS und PKCS12. Beispiel:
server.ssl.key-store-type=PKCS12
Diese Property gibt den Alias an, der zur Identifizierung des Zertifikats und des privaten Schlüssels innerhalb des Schlüsselspeichers verwendet wird. Beispiel::
server.ssl.key-alias=noa-server
Anmerkung
Der Schlüsselspeicher muss ein gültiges SSL/TLS-Zertifikat und den dazugehörigen
privaten Schlüssel enthalten.
Der Natural OpenAPI Server authentifiziert den Client, der die Anfrage sendet, nicht selbst, sondern stützt sich auf das Authentifizierungsmodul des Natural Subprogram Server. Ist der Natural Subprogram Server jedoch für die Verwendung einer Authentifizierungsmethode konfiguriert, müssen Sie die entsprechende Konfiguration im Natural OpenAPI Server festlegen. Durch die Festlegung der korrekten Konfiguration wird die entsprechende Definition im OpenAPI-Dokument unter http://localhost:OpenAPIServer_port/v3/api-docs erstellt.
Es gibt drei verschiedene Möglichkeiten, die Authentifizierung zu definieren:
Wird die Property
com.softwareag.natural.openapi.web.config.authenticationType auf
basic gesetzt, muss die Client-Anwendung Benutzername und Passwort in
Base64-Kodierung (definiert in RFC-7617) übermitteln.
Das Abrufen des Tokens obliegt der Client-Anwendung, während die Token-Validierung vom Authentifizierungsmodul des Natural Subprogram Server durchgeführt wird.
Wird die Property
com.softwareag.natural.openapi.web.config.authenticationType auf
oauth2 gesetzt, muss die Client-Anwendung gemäß den Anforderungen des
OpenAPI-Dokuments ein Bearer-Token senden.
Die Client-Anwendung muss neben dem bereitgestellten Token den speziellen HTTP-Header X-Impersonate-User einfügen, um den zu impersonierenden Benutzer anzugeben.
Die folgende Konfiguration kann beim Testen mit dem Swagger-UI-Webclient verwendet
werden. Das in den Natural OpenAPI Server eingebettete Swagger-UI unterstützt derzeit
nur den Client Credentials-Ablauf. Wenn die OAuth2-Authentifizierung aktiviert ist,
können Sie die tokenURL und die erforderlichen Bereiche definieren. Diese
Werte werden im OpenAPI-Dokument angegeben, aber vom Natural OpenAPI Server nicht zur
Authentifizierung verwendet. Im Falle einer Impersonierung muss diese nach einer
erfolgreichen Token-Überprüfung durchgeführt werden.
Wenn in der Datei application.properties kein Authentifizierungstyp definiert ist, gelten die Anfragen standardmäßig als anonym und sollten nicht authentifiziert werden. Es ist auch möglich, die Anfrage unter Verwendung des speziellen HTTP-Header X-Impersonate-User als anderer Benutzer auszuführen.