it-at-m / digiwf-core

central workflow automation and integration platform based on the free process framework Camunda.
MIT License
19 stars 7 forks source link

Enable OAuth for Deployments #1170

Open lmoesle opened 9 months ago

lmoesle commented 9 months ago

Is your feature request related to a problem? Please describe.

Die miranum-ide unterstützt aktuell keine Authentifizierung für Deployments (Jeder darf alles deployen).

Describe the solution you'd like

  1. Als Prozessmodellierer möchte ich möchte ich bei meinem ersten Deployment insVS-Code meine Credentials angeben (Username, Passwort) und gefragt werden, ob diese für zukünftige Deployments lokal gespeichert werden sollen
    • Wenn ich meine Credentials nicht speichere, dann möchte ich meine Credentials bei jedem Deployment erneut eingeben
  2. Als Prozessmodellierer möchte ich gerne meine gespeicherten Credentials für Deployments aus VS-Code und der CLI verwenden, ohne diese erneut angeben zu müssen
  3. Für Deployments aus einer Pipeline möchte ich gerne die Auth Credentials eines Service Account Users über Env Variablen konfigurieren können

grafik

lmoesle commented 9 months ago

Ich habe erstmal nur die Authentifizierung zwischen den Clients und dem Deployment Proxy beschrieben. Es fehlt noch alles was nach dem Proxy kommt. Das hängt u.a. von den Technologien ab, die wir für #1156 verwenden.

darenegade commented 7 months ago

Da wir in #1156 entschieden haben, dass der Proxy direkt auf die Engine geht, gewinnen wir hier doch die Möglichkeit einfach den Token weiter zu reichen. D.h. Im Plugin/In der CLI nutzen wir z.B. keycloakJS und holen uns so einen Token, den wir an den Proxy geben. In der Engine können wir dann entsprechend auf Berechtigungen achten zukünftig

lmoesle commented 7 months ago

Da wir in #1156 entschieden haben, dass der Proxy direkt auf die Engine geht, gewinnen wir hier doch die Möglichkeit einfach den Token weiter zu reichen. D.h. Im Plugin/In der CLI nutzen wir z.B. keycloakJS und holen uns so einen Token, den wir an den Proxy geben. In der Engine können wir dann entsprechend auf Berechtigungen achten zukünftig

👍🏻 Ich nutze in #1156 für die Weitergabe des Auth Tokens den Feign RequestInterceptor der digiwf-security Lib (https://github.com/it-at-m/digiwf-cocreation/blob/feature/%231156-init-deployment-service/digiwf-cocreation-deployment/src/main/java/de/muenchen/oss/digiwf/deployment/DeploymentServerConfig.java). Dieser Interceptor holt sich einen Token für einen Service Account. In dieser Story könnte man dann einen eigenen RequestInterceptor erstellen, der das Token des Users weitergibt