Service 'gateway-ng'

enaio® 11.10 »

Der Service 'gateway-ng' bindet Identity Provider für die Authentifizierungsmethode OAuth2/ OIDC für enaio® webclient und enaio® webclient als Desktop-Anwendung ein.

Der Service 'gateway-ng' ersetzt enaio® gateway nicht sondern muss für solche Szenarien immer zusätzlich zu enaio® gateway installiert und eingebunden werden.

Für die Einbindung gelten zurzeit folgende Einschränkungen:

  • enaio® mobile wird noch nicht unterstützt.

  • In enaio® webclient steht die Benutzerverwaltung nicht zur Verfügung. Der Parameter featureSwitches.userManagement muss deaktiviert werden.

  • Die Funktion 'Passwort ändern' steht nicht zur Verfügung. Der Parameter featureSwitches.changePassword muss deaktiviert werden.

  • Der Offline-Modus für enaio® webclient als Desktop-Anwendung steht nicht zur Verfügung.

  • Bestätigungen durch die Eingabe des Passworts für Abonnements, Wiedervorlagen, das Weiterleiten von Arbeitsschritten und per Skript sind nicht möglich.

  • Kopierte Webclient-URL-Links, die ein Benutzer, der über einen Identity Provider in enaio® webclient angemeldet ist, teilt, können nur von Benutzern geöffnet werden, die ebenfalls über den Identity Provider angemeldet sind.

  • Access Token wie die Session-GUID vom Endpunkt osrest/api/session oder über die Parameter aus den verschiedenen Integrationsmöglichkeiten können nicht verwendet werden.

  • enaio® Outlook Add-In NG verwendet Access Token (Session-GUID) für die Kommunikation mit enaio® webclient als Desktop-Anwendung und kann deshalb nicht verwendet werden.

  • Für enaio® search NG kann die Authentifizierungsmethode OAuth2/ OIDC nicht verwendet werden. Möglich sind nur Basic Auth, NTLM und Kerberos.

Der Service 'gateway-ng' wird durch die Installation nicht aktiviert. Er muss vor der Aktivierung über die Datei servicewatcher-sw.yml, instances: 1, vollständig für die Authentifizierung konfiguriert werden, sonst kann der Service nicht richtig gestartet werden.

Konfiguration

Die Konfiguration erfolgt über die Konfigurationsdatei gateway-ng-prod.yml aus dem Verzeichnis \services\service-manager\config\.

Für die Konfiguration müssen folgende Daten angegeben werden:

  • die Verbindungen zu enaio® appconnector, enaio® documentviewer und enaio® rendition,

  • die Verbindungen zu Identity Providern,

  • die Einbindung über enaio® appconnector,

  • für enaio® webclient als Desktop-Anwendung erstellen Sie ein Profil.

Als Port ist 80 für den Service 'gateway-ng' vorkonfiguriert. Der Port kann über die Datei servicewatcher-sw.yml aus dem Verzeichnis \services\service-manager\config\ geändert werden. Wenn enaio® gateway auf dem gleichen Server installiert ist und den Port 80 belegt, dann muss der Port geändert werden. Er kann auf einen beliebigen Wert zwischen 1025 und 65535 eingestellt werden.

Verbindungen zu enaio® appconnector, enaio® documentviewer und enaio® rendition

Voreingetragen sind die Verbindungsdaten mit Standardport für Verbindungen auf dem gleichen Server.

Ist das nicht der Fall, dann müssen die Verbindungsdaten angepasst werden.

spring:
  cloud:
    gateway:
      routes:
        - id: osrest_route
          uri: http://localhost:8060
          predicates:
            - Path=/osrest/**
        - id: osdocumentviewer_route
          uri: http://localhost:8070
          predicates:
            - Path=/osdocumentviewer/**
        - id: osrenditioncache_route
          uri: http://localhost:8070
          predicates:
            - Path=/osrenditioncache/**

Verbindungen zu Identity Providern

Voreingetragen ist eine Verbindungskonfiguration für Azure / Entra ID mit Platzhaltern.

Die Platzhalter ersetzten Sie durch Ihre Daten: Tenant-ID, Client-ID und Client-Secret.

  security:
    oauth2:
      resourceserver:
        jwt:
          user-name-attribute: name
          issuer-uri: https://login.microsoftonline.com/<tenant-id>/v2.0
      client:
        registration:
          azure:
            provider: azure
            client-id: <client-Id>
            client-secret: <client-Secret>
            scope: openid
        provider:
          azure:
            issuer-uri: ${spring.security.oauth2.resourceserver.jwt.issuer-uri} 

Beispiel für Keycloak:

  security:
    oauth2:
      resourceserver:
        jwt:
          user-name-attribute: preferred_username
          issuer-uri: http://<IP:Port>/realms/<tenant-id>
      client:
        registration:
          keycloak:
            provider: keycloak
            client-id: <client-id>
            authorization-grant-type: authorization_code
            scope: openid
            client-secret: <client-secret>
        provider:
          keycloak:
            issuer-uri: ${spring.security.oauth2.resourceserver.jwt.issuer-uri}
            user-name-attribute: ${spring.security.oauth2.resourceserver.jwt.user-name-attribute}

Gateway-Einbindung

Die Einbindung des Services 'gateway-ng' erfolgt über folgende Parameter der Konfigurationsdatei osrest.properties.

fileservice.contentviewerurl http(s)://<gateway-ng>/applet/contentviewer/index.html?osid={OBJECTIDENT}
fileservice.documentviewerurl http(s)://<gateway-ng>/applet/pdfview/web/viewer.html?osid={OBJECTIDENT}&q={searchterm}
fileservice.detailsviewerurl http(s)://<gateway-ng>/applet/detailsviewer/index.html?osid={OBJECTIDENT}

Services-Routing

Falls im Projekt Dienste über den Service 'gateway-ng' ohne Authentifizierung geroutet werden sollen, dann erweitern Sie in der Konfigurationsdatei gateway-ng-prod.yml die kommaseparierten Liste um weitere Einträge nach gleichem Muster:

gateway:
   endpoints:
     exposed: '/colab/**,/msteamsactions/**'

Genannt werden müssen in der kommaseparierten Liste immer alle entsprechenden Dienste. Notwendig sind immer ebenfalls colab und msteamsactions.