Service-Manager: Microservices mit separaten Benutzern starten

Während eines kürzlichen Calls mit einem Kunden kam dieses Thema zur Sprache, daher will ich es hier kurz dokumentieren.

Standard Dienst-Benutzer anpassen

Standardmässig werden die Microservices von enaio/RAD mit dem selben technischen Benutzer gestartet (enaio root). Diese Login Informationen sind in der application-blue.yml hinterlegt. Diese sehen dann zum Beispiel so aus:

enaio.dms.username: root
enaio.dms.password: changeme
enaio.dms.server: mein-server.ecmind:4000:100

Ich würde diesen Account grundsätzlich anpassen und den Benutzer root bei einer Neuinstallation deaktivieren, um sicherzustellen, dass dieser nicht mehr zum Einsatz kommt.

Wenn gewünscht, kann man das Passwort mit dem Tool axencryptpwd.exe verschlüsselt werden. Dieses wird im Installationsmedium von enaio im Ordner Tools mitgeliefert.

Individuelle Dienst-Benutzer pro Microservice

Es kann Sinn ergeben, bestimmte Services unter anderen Benutzern laufen zu lassen. Hierfür kann man jeweils eine {servicename}-blue.yml Datei anlegen.
Zum Beispiel für den Service index wäre es dann die index-prod.yml heissen.
In diese Datei kann dann zum Beispiel wie folgt aussehen:

enaio.dms.username: service-index
enaio.dms.password: changeme

Details zur Ladereihenfolge der Konfiguration habe ich mal versucht hier zu dokumentieren:
Microservices: Ladereihenfolge der Konfiguration

Andere Services

Für den die Services Gateway, AppConnector und Documentviewer können die Accounts ebenfalls angepasst werden. Diese befinden sich aber in den jeweiligen Installationspfaden.

  • Gateway .\os_gateway\config\application-prod.yml
  • DocumentViewer .\documentviewer\webapps\osrenditioncache\WEB-INF\classes\config\config.properties
  • AppConnector .appconnector\configuration\osrest.properties

Systemrollen

Viele Services benötigen die Systemrollen 72 und 88:

image

Hintergrund ist, dass Microservices, wie der DMS Service, im Namen des jeweiligen Benutzers API Befehle ausführen muss. Hierfür wird das Recht 72 benötigt.

Beim Recht 88 handelt es sich um die Berechtigung, direkte SQL Statements (Select) auf der Datenbank ausführen zu dürfen.

Beide Systemrollen sind sehr weitreichend und sollte nur vergeben werden, wenn diese wirklich benötigt werden. Benutzer benötigen diese Rechte definitiv nicht.