Hallo zusammen!
Hat jemand Anregungen/Tipps zur Digitalocean App-Plattform? (https://www.digitalocean.com/products/app-platform/).
Soweit ich weiß, läuft dies mit Kubernetes im Hintergrund. Daher habe ich mich gefragt, ob ich dort shinyproxy
kann und wenn ja, was wäre die am besten geeignete Konfiguration.
Danke im Voraus!
Felipe
Hi
Ich glaube, wir haben keine Erfahrung mit dieser Plattform. Aber ich denke, wenn die Kubernetes-API für die Anwendungen verfügbar ist, die sie ausführen, sollte es möglich sein, ShinyProxy darauf zu verwenden.
Konnten Sie das zwischenzeitlich ausprobieren? Wir sind natürlich sehr gespannt, ob Sie mit ShinyProxy auf dieser Plattform erfolgreich waren.
Am Ende habe ich alles zu AWS verschoben - aber ich habe ein anderes Testprojekt, das ich ausprobieren werde. Ich werde die Updates hier posten. Danke für Ihre Antwort!
@fmmattioni Sie können Ihr Dockerfile verwenden und dieser Vorlage folgen: https://github.com/digitalocean/sample-dockerfile Es ist ziemlich einfach.
Ja, ich habe mich mehr gefragt, welche dieser Konfigurationen besser geeignet wäre:
Hallo @fmmationi
Wenn möglich würde ich immer empfehlen, unser offizielles Docker-Image zu verwenden . Dieses Image hat einige Sicherheitsverbesserungen (zB Ausführen von ShinyProxy unter einem Nicht-Root-Benutzer).
Hm, guter Punkt! Das wusste ich nicht! Danke für die Warnung!
Nur eine Frage: Ich habe eine ältere Version von Shinyproxy verwendet, da die neueste Version nicht mit AWS Cognito-Authentifizierung funktioniert. Kann ich diese ältere Version auch einfach über das Tag dort greifen - oder gibt es diese Sicherheitsverbesserungen nur in der neuesten Version?
Hallo @fmmationi
Die Sicherheitsverbesserungen sind in jeder Version enthalten.
Sie haben erwähnt, dass die neueste Version von ShinyProxy nicht mit AWS Cognito funktioniert. Uns sind keine Probleme mit OIDC in der neuesten Version (2.4.3) bekannt. Könnten Sie eine neue Ausgabe mit weiteren Details dazu eröffnen? (zB welches Verhalten Sie erleben, protokollierte Fehler usw.). Wir möchten wirklich, dass ShinyProxy nahtlos mit jedem Auth-Anbieter zusammenarbeitet. Wenn es also einen Fehler gibt, möchten wir ihn wirklich lösen.
Nur um sicherzustellen, dass ich es bekomme, sollte ich das in meinem Dockerfile haben, richtig?
FROM openanalytics/shinyproxy:latest
COPY application.yml /opt/shinyproxy/application.yml
WORKDIR /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]
Was das Problem mit AWS Cognito angeht, erinnere ich mich, dass die Protokolle beim letzten Einrichten erwähnt haben, dass die Option server.useForwardHeaders
in der neuesten Version immer noch nicht funktionierte. Ich erinnere mich jedoch nicht, ob dies 2.4.3 war. Lassen Sie mich einen kurzen Test durchführen, und ich werde Sie wissen lassen.
Danke für die Antworten!
Ja, das ist eine richtige Docker-Datei für die Verwendung mit ShinyProxy, obwohl Sie sie sogar kürzer machen können:
FROM openanalytics/shinyproxy:latest
COPY application.yml /etc/shinyproxy/application.yml
Wenn Sie die Direktiven WORKDIR
oder CMD
nicht angeben, übernimmt Docker sie aus dem Basis-Image. Unser Basis-Image gibt /etc/shinyproxy
als Arbeitsverzeichnis an, sodass Sie die Konfigurationsdatei dort ablegen können.
Bezüglich der Eigenschaft server.useForwardHeaders
. Sie haben wahrscheinlich die folgende Warnmeldung erhalten:
WARNING: Using server.use-forward-headers will not work in this ShinyProxy release. See https://shinyproxy.io/documentation/security/#https-ssl--tls on how to change your configuration.
Ab 2.4.0 hat sich die Eigenschaft, die die Weiterleitungsheader konfiguriert, geändert, aber die Weiterleitungsheader funktionieren weiterhin. Sie müssen nur die folgende Konfiguration verwenden:
server:
forward-headers-strategy: native
anstelle des alten Eigentums.
Mir ist aufgefallen, dass die Warnmeldung eigentlich auf https://shinyproxy.io/documentation/security/#forward -headers verweisen sollte. Ich werde das für die nächste Version ändern.
Das ist genau die Warnung, die ich bekommen habe!
Es tut mir leid, ich habe mir nicht einmal die Mühe gemacht, die Seite genauer zu lesen... Ich werde es noch einmal testen - wenn ich irgendwelche Probleme habe, werde ich es euch wissen lassen!
Dankeschön!
Kurzes Update: Die Eigenschaft server.forward-headers-strategy
funktioniert tatsächlich ordnungsgemäß mit AWS Cognito! Vielen Dank, dass Sie mich in die richtige Richtung weisen!
Hey @LEDfan , während ich meine neue Konfiguration wie vorgeschlagen mit dem openanalytics/shinyproxy
Docker-Image eingerichtet habe, ist mir aufgefallen, dass ich immer die folgende Fehlermeldung bekomme:
Das ist mein Dockerfile:
FROM openanalytics/shinyproxy:latest
COPY application.yml /etc/shinyproxy/application.yml
Wenn ich jedoch mein Dockerfile in Folgendes ändere:
FROM openjdk:8-jre
RUN mkdir -p /opt/shinyproxy/
RUN wget https://www.shinyproxy.io/downloads/shinyproxy-2.4.3.jar -O /opt/shinyproxy/shinyproxy.jar
COPY application.yml /opt/shinyproxy/application.yml
WORKDIR /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]
alles funktioniert wie erwartet.
Gibt es etwas, das ich in application.yml
ändern oder eine bestimmte Einstellung in nginx
ändern sollte, wenn ich das erste Dockerfile verwende?
Lassen Sie mich wissen, ob ich eine neue Ausgabe eröffnen oder weitere Details angeben soll.
Hallo @fmmationi
Ich habe vergessen zu erwähnen, dass unser Image standardmäßig keinen Zugriff auf den Docker-Socket hat, da es einen Nicht-Root-Benutzer verwendet.
Sie müssen das ShinyProxy-Docker-Image mit dem folgenden Befehl ausführen:
docker run -v /var/run/docker.sock:/var/run/docker.sock:ro --group-add $(getent group docker | cut -d: -f3) -p 8080:8080 openanalytics/shinyproxy
Der Teil $(getent group docker | cut -d: -f3)
bestimmt die Gruppen-ID des Dockers. Der Parameter --group-add
stellt sicher, dass der Benutzer, der im ShinyProxy-Docker-Container ausgeführt wird, Teil dieser Gruppe ist (dh der Docker-Gruppe) und folglich hat der ShinyProxy-Docker-Container Zugriff auf den Docker-Socket.
Stellen Sie außerdem sicher, dass Sie das Attribut proxy.docker.url
nicht gesetzt haben. Nur wenn Sie es nicht angeben, greift ShinyProxy auf den Docker-Socket und nicht auf einen Docker-HTTP-Port zu.
Viel Glück!
Süss! Vielen Dank für die ausführlichen Infos! Ich kann bestätigen, dass das jetzt funktioniert.
Dankeschön!