рдирдорд╕реНрддреЗ,
рдХреЗрд╡рд▓ https рдкрд░ ShinyProxy рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрднрд╡ рд▓рдЧрддрд╛ рд╣реИ - https://www.shinyproxy.io/security/#https -ssl-tls
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рдХреЗрд╡рд▓ https рдЙрдкрд▓рдмреНрдз рд╣реЛ (рдЕрд░реНрдерд╛рдд nginx рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП http рд╕реЗ рдХреЛрдИ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдирд╣реАрдВ), рддреЛ рдЖрдЧреЗ рдХреЗ рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП application.yml рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
рд╕рд░реНрд╡рд░:
рдлреЙрд░рд╡рд░реНрдбрд╣реЗрдбрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд╕рдЪ
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдХреЗрд╡рд▓ https, NGINX рдкреНрд░рд╡реЗрд╢ рдФрд░ OpenID рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ https рдпреЛрдЬрдирд╛ NGINX рдкреНрд░рд╡реЗрд╢ рд╕реЗ ShinyProxy рдХрдВрдЯреЗрдирд░ рддрдХ рдирд╣реАрдВ рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ OpenId рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИред рдЕрд░реНрдерд╛рддреН:
рдРрд╕рд╛ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣рд╛рдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ ShinyProxy рдХреЗ рдХрд╛рд░рдг рд╣реИ - рд╕реНрдкреНрд░рд┐рдВрдЧ-рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА DefaultOAuth2AuthorizationRequestResolver.java # L141
@garyallenkt рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ?
рдзрдиреНрдпрд╡рд╛рдж!
рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд╛рд▓рдиреЗ рдореЗрдВ OpenAnalytics рдиреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред
рдЖрдкрдХреЛ ShinyProxy (2.3.0) рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣рд╛рдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ - https://www.shinyproxy.io/security/#https -ssl-tls
рд╢реБрднрдХрд╛рдордирд╛рдПрдВред
рд╣рд╛рдп @garyallenkt ,
рдЖрдкрдХреЗ рддреНрд╡рд░рд┐рдд рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрдиреА рд╣реБрдИ рд╣реИред рдореИрдВ рдкреВрд░реЗ рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдЗрдлреНрд░реЗрдо рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ HTTPS рдХрдиреЗрдХреНрд╢рди рдХреЛ HTTP рдХрдиреЗрдХреНрд╢рди рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рд╕рд╛рджрд░
@fmichielssen
рдореИрдВ рдЯреЗрд▓реАрдереЙрди рдХрд┐рдбреНрд╕ рд░реЗрдкреЛ рд╕реЗ рдПрдХ рдХрд╛рдВрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╡реЗ 2.3.0 рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореИрдВрдиреЗ рдУрдкрдирдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдХреА рдЫрд╡рд┐ рднреА рдЦреАрдВрдЪреА рд╣реИред рдЖрдкрдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рдореЗрд░реА config.
docker_compose.yaml
version: "3.6"
services:
nginx:
image: nginx:alpine
container_name: tki_nginx
restart: on-failure
networks:
- tki-net
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
ports:
- 80:80
- 443:443
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
depends_on:
- shinyproxy
certbot:
image: certbot/certbot
container_name: certbot
restart: on-failure
volumes:
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
influxdb:
image: influxdb:1.7.3-alpine
container_name: tki_influxdb
restart: on-failure
volumes:
- ./run_first_time.sh:/home/run_first_time.sh
- type: volume
source: shinyproxy_usage
target: /var/lib/influxdb
volume:
nocopy: true
networks:
- tki-net
ports:
- 8083:8083
- 8086:8086
shinyproxy:
depends_on:
- influxdb
image: openanalytics/shinyproxy
container_name: open_analytics_shinyproxy
restart: on-failure
networks:
- tki-net
volumes:
- ./application.yml:/opt/shinyproxy/application.yml
- /var/run/docker.sock:/var/run/docker.sock
expose:
- 8080
networks:
tki-net:
name: tki-net
volumes:
shinyproxy_usage:
application.yaml
proxy:
title: Lorem ipsum
hide-navbar: true
landing-page: /
heartbeat-rate: 10000
heartbeat-timeout: 600000
port: 8080
docker:
internal-networking: true
authentication: openid
openid:
auth-url: https://lorem-ipsum.auth0.com/authorize
token-url: https://lorem-ipsumauth0.com/oauth/token
jwks-url: https://lorem-ipsum.auth0.com/.well-known/jwks.json
client-id: SUPERCOOL
client-secret: SUPERCOOLSECRET
server:
useForwardHeaders: true
specs:
- id: lorem_ipsum
display-name: Lorem Ipsum
description:
container-cmd: ["R", "-e", "shiny::runApp('/root/app')"]
container-image: lorem/ipsum
container-network: tki-net
container-env:
user: "shiny"
environment:
- APPLICATION_LOGS_TO_STDOUT=false
usage-stats-url: http://influxdb:8086/write?db=shinyproxy_usagestats
рдФрд░ nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
sendfile on;
upstream tki_shinyproxy {
server open_analytics_shinyproxy:8080;
}
server {
listen 80;
server_name example.org;
server_tokens off;
}
server {
listen 443;
server_name example.org;
server_tokens off;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# SSL
ssl_certificate /etc/letsencrypt/live/example.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
proxy_pass http://tki_shinyproxy;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 600s;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
рдЗрд╕ рдкрд░ рдХреЛрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдкрдбреЗрдЯ? @garyallenkt @fmichielssen
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред
рдпрд╣ рдХреЛрдб
server:
useForwardHeaders: true
proxy:
рдмрд╛рд╣рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
server
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдмреНрд▓реЙрдХ рд╣реИ рдФрд░ proxy
рдЕрдВрджрд░ рдирд╣реАрдВ рд╣реИ
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореБрдЭреЗ рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА 2.3.1 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ
рдореЗрд░реЗ рдкрд╛рд╕ application.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рд╣рд░ рдпрд╣ рдмреНрд▓реЙрдХ рд╣реИ
рд╕рд░реНрд╡рд░:
рдлреЙрд░рд╡рд░реНрдбрд╣реЗрдбрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд╕рдЪ
рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ Nginx рдкреНрд░реЙрдХреНрд╕реА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рдореИрдВ рднреА (рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдореИрдВрдиреЗ рдЕрдкрд╛рдЪреЗ рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЧреВрдВрдЧрд╛ ngnix рддреНрд░реБрдЯрд┐ рдХреА рдереА рдФрд░ рдареАрдХ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА)ред
рдореЗрд░реЗ Nginx рдХреЙрдиреНрдлрд╝рд┐рдЧ рдмреНрд▓реЙрдХ рд╣реИрдВ:
server {
listen 80;
server_name mydomain.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl;
server_name mydomain.com;
access_log /var/log/nginx/shinyproxy.access.log;
error_log /var/log/nginx/shinyproxy.error.log error;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate <path to crt>
ssl_certificate_key <path to key>
location / {
proxy_pass http://127.0.0.1:3600/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 600s;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╡рд┐рдЪрд╛рд░?
рддреНрд░реБрдЯрд┐ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдореИрдВрдиреЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛? рд╢рд╛рдпрдж рдореИрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ
@greenspray рдПрдХ рдирдЬрд╝рд░
рдкреЛрд░реНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рд╕рд░реНрд╡рд░рдлрд╝реЙрд░рд╡рд░реНрдб рд╣реЗрдбрд░ рд▓рд╛рдЗрди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬреИрд╕реЗ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА 2.3.0 рдХреЗ рд╕рд╛рде рднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред
proxy:
title: My Title
logo-url: http://www.openanalytics.eu/sites/www.openanalytics.eu/themes/oa/logo.png
landing-page: /
heartbeat-rate: 10000
heartbeat-timeout: 60000
port: 3600
authentication: simple
admin-groups: scientists
users:
- name: jack
password: password1
groups: scientists
- name: jeff
password: password1
groups: mathematicians
# Docker configuration
docker:
cert-path: /home/none
url: http://localhost:2375
port-range-start: 20000
specs:
- id: 01_hello
display-name: Hello Application
description: Application which demonstrates the basics of a Shiny app
container-cmd: ["R", "-e", "shinyproxy::run_01_hello()"]
container-image: openanalytics/shinyproxy-demo
access-groups: [scientists, mathematicians]
server:
useForwardHeaders: true
logging:
file:
shinyproxy3.log
рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╡реЗрдмрд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрд╛рдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдФрд░ рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореЗрд░реЗ рджреЛ рд╡рд░реНрддрдорд╛рди рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИрдВ рдХрд┐ рдпрд╛ рддреЛ рдореЗрд░реЗ application.yml рд╕реЗрдЯ рдЕрдк рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ, рдпрд╛ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкреНрд░реЙрдХреНрд╕реА/рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рдХрд┐ рдореЗрд░реЗ рдкреНрд░реЙрдХреНрд╕реА рдмреНрд▓реЙрдХ рдореЗрдВ рдХреБрдЫ http рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд░рд╣рд╛ рд╣реИред
@ рдХреНрд▓реЗрдпрд░-рдХреЗрд▓реА рдЖрдкрдХреА рд╕рдЯреАрдХ рддреНрд░реБрдЯрд┐ рдХреНрдпрд╛ рд╣реИ?
@ greenspray9 рдореБрдЭреЗ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИ! рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЬрдм рдореИрдВ рдЕрдкрдиреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдкреГрд╖реНрда рдореЗрдВ рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рд▓реЙрдЧ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ HTTPS рдкрд░ рдкрд░реЛрд╕рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ)ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рд▓реЙрдЧ рдЗрди рдХрд░рддрд╛ рд╣реВрдВ (рдЕрднреА рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдкреГрд╖реНрда HTTP рдкрд░ рдкрд░реЛрд╕рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ (HTTPS рдирд╣реАрдВ- рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ!)
@ ckelley-ct рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдореБрдЭреЗ рдЖрдкрдХреЗ рдЗрдЪреНрдЫрд┐рдд рд▓реЙрдЧрд┐рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛?
@ HEPBO3AH рд╣рд╛рдБ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ - рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдереА (рд▓рд╛рдЗрди рд▓реЛрдЧреЛ-рдпреВрдЖрд░рдПрд▓: http://www.openanalytics.eu/sites/www.openanalytics.eu/themes/oa/logo.png рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдКрдкрд░)ред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ https рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЫрд╡рд┐ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред
@ HEPBO3AH @ ckelley-ct FYI рдХрд░реЗрдВ, рд╣рдордиреЗ рдЫрд╡рд┐ рдХреЛ https://www.openanalytics.eu/shinyproxy/logo.png рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ
рдореИрдВ nginx рдХреЗ рд╕рд╛рде рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдмрдирд╛рдиреЗ рдФрд░ рд╕рд░рд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдУрдкрдирд┐рдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЙрд▓рдмреИрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ http рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
https://login.microsoftonline.com/9ac05e7d-e6a1-433a-9801-a60642903c2b/oauth2/authorize?response_type=code&client_id=d1abf394-b312-4717-a1c4-daaeee4f3b28&scope=SNSR9&o //52.152.166.27/login/oauth2/code/shinyproxy&nonce=EhOFxVuVRksPOxd0hG-CKPDd2s78bhFIzSSC_PPU5-Q
рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ AADSTS50011: рдЕрдиреБрд░реЛрдз рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрддреНрддрд░ URL, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЙрддреНрддрд░ URL рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛: 'd1abf394-b312-4717-a1c4-daaeee4f3b28'ред
рдпрд╣ рдореЗрд░рд╛ application.yml рд╣реИ рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА реи.рек.реж рдХреЗ рд▓рд┐рдП, рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА реи.рей.рез рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдПрдЬ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ
proxy:
title: Open Analytics Shiny Proxy
logo-url: https://www.openanalytics.eu/shinyproxy/logo.png
landing-page: /
heartbeat-rate: 10000
heartbeat-timeout: 60000
port: 8080
authentication: openid
admin-groups: scientists
#bind-address: 127.0.0.1
# Example: 'simple' authentication configuration
users:
- name: jack
password: password
groups: scientists
- name: jeff
password: password
groups: mathematicians
# Example: 'openid' authentication configuration
openid:
auth-url: https://login.microsoftonline.com/9ac05e7d-e6a1-433a-9801-a60642903c2b/oauth2/authorize
token-url: https://login.microsoftonline.com/9ac05e7d-e6a1-433a-9801-a60642903c2b/oauth2/token
jwks-url: https://login.microsoftonline.com/common/discovery/keys
client-id: d1abf394-b312-4717-a1c4-daaeee4f3b28
client-secret: xxx
# Docker configuration
docker:
container-backend: docker
port-range-start: 20000
container-protocol: https
specs:
- id: euler
display-name: Euler's number
#container-cmd: ["R", "-e", "shiny::runApp('/root/euler')"]
container-image: euler
access-groups: scientists
server:
useForwardHeaders: true
logging:
file:
shinyproxy.log
рдореИрдВ nginx рдХреЗ рд╕рд╛рде рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдмрдирд╛рдиреЗ рдФрд░ рд╕рд░рд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдУрдкрдирд┐рдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЙрд▓рдмреИрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ http рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
https://login.microsoftonline.com/9ac05e7d-e6a1-433a-9801-a60642903c2b/oauth2/authorize?response_type=code&client_id=d1abf394-b312-4717-a1c4-daaeee4f3b28&scope=SNSR9&o //52.152.166.27/login/oauth2/code/shinyproxy&nonce=EhOFxVuVRksPOxd0hG-CKPDd2s78bhFIzSSC_PPU5-Q
рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ AADSTS50011: рдЕрдиреБрд░реЛрдз рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрддреНрддрд░ URL, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЙрддреНрддрд░ URL рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛: 'd1abf394-b312-4717-a1c4-daaeee4f3b28'ред
рдореЗрд░реЗ рд▓рд┐рдП 2.4 with рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐
рд╣рд╛рдп @ danielfm123 , @ roberts2727 рддреЛ ShinyProxy 2.4 рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛:
server:
useForwardHeaders: true
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
server:
forward-headers-strategy: native
рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ?
рдорд╕рд▓рд╛ рд╣рд▓ рд╣реЛ рдЧрдпрд╛! рд╢реБрдХреНрд░рд┐рдпрд╛ рдЬрдирд╛рдмред
рд╣рд╛рдБ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкреИрдХреЗрдЬ рдХреЛ рдорд╛рд░рддрд╛ рд╣реИ DT
рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА реи.рек рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА
рдХреНрдпрд╛ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реЛрдЧрд╛ рдХрд┐ https://www.shinyproxy.io/security/ рдкрд░
рдирдорд╕реНрддреЗ @shosaco рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реА рдирдИ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ: https://www.shinyproxy.io/documentation/security/#forward -headersред рдЖрдк рдЬрд┐рд╕ URL рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдкреБрд░рд╛рдиреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╛ рд╢реЗрд╖ рднрд╛рдЧ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрдм рд╕рд╛рдлрд╝ рдХрд░ рджрд┐рдпрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред
рдпрд╣ рдХреЛрдб
proxy:
рдмрд╛рд╣рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП