سلام،
الإعداد الخاص بي مثل هذا.
يعمل shinyproxy في حاوية عامل ميناء باسم shiny-proxy.
يعمل الوكيل العكسي apache httpd قبل shinyproxy ويحوله إلى https ويعمل على المضيف باستخدام المنفذ 2443
يتم تشغيل keycloak أيضًا في حاوية عامل إرساء ولكن المنفذ مفتوح على المضيف برقم 8443.
الإعداد ، application.xml
keycloak:
realm: shiny
auth-server-url: https://keycloak:8443/auth
#ssl-required: none
ssl-required: external
confidential-port: 2443
verify-token-audience: true
resource: shiny-proxy-p1
credentials-secret: xxxxxxxxxxxx
تكوين وكيل عكسي اباتشي
<VirtualHost *:2443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server-cert.pem
SSLCertificateKeyFile /etc/apache2/ssl/server-cert.key
# Server Certificate Chain:
# Point SSLCertificateChainFile at a file containing the
# concatenation of PEM encoded CA certificates which form the
# certificate chain for the server certificate. Alternatively
# the referenced file can be the same as SSLCertificateFile
# when the CA certificates are directly appended to the server
# certificate for convinience.
SSLCertificateChainFile /etc/apache2/ssl/server-ca.crt
<Proxy *>
Allow from *
</Proxy>
RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket
RewriteRule /(.*) ws://shiny-proxy:8080/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket
RewriteRule /(.*) http://shiny-proxy:8080/$1 [P,L]
ProxyPass / http://shiny-proxy:8080/
ProxyPassReverse / http://shiny-proxy:8080/
ProxyRequests Off
ErrorLog ${APACHE_LOG_DIR}/proxy_error.log
CustomLog ${APACHE_LOG_DIR}/proxy_access.log combined
</VirtualHost>
لنفترض أنه عند الوصول إلى shinyprox عبر apache بعنوان URL https: // lxsqlpocnd04 : 2443 /
سيعيد التوجيه إلى صفحة تسجيل الدخول وستقوم صفحة تسجيل الدخول بإعادة توجيه الطلب إلى مضيف Keycloak lxsqlpocnd04 والمنفذ 8443. في عنوان URL هذا ، توجد سلسلة استعلام تتضمن redirect_uri ولكنها ليست السلسلة المتوقعة.
عنوان URL مثل هذا
https: // lxsqlpocnd04 : 8443 / auth /
و redirect_uri هو http: // shiny-proxy : 8080 / sso / تسجيل الدخول بخلاف https: // lxsqlpocnd04 : 2443 / sso / login
هل يستطيع احد المساعدة
شكرا،
روبن
هل قمت بتعيين هذا في application.yml؟
server:
useForwardHeaders: true
من هنا: https://www.shinyproxy.io/security/#https -ssl-tls
لست متأكدًا مما هو مكافئ Apache ولكن في nginx ربما يكون هذا هو ما يصلح مشكلتك:
proxy_set_header Host $http_host;
aiham شكرا.
لدي العمل. إنه بسبب فقدان useForwardHeaders: true
im باستخدام useForwardHeaders: صحيح ولكن لا تزال تواجه المشكلة
@ danielm123
im باستخدام useForwardHeaders: صحيح ولكن لا تزال تواجه المشكلة
هناك احتمال آخر يتعلق بشهادات SSL. إذا كانت شهاداتك المثبتة على Keycloak غير موثوقة بشكل عام (المرجع المصدق الجذر والمتوسط ليس في قائمة الثقة الافتراضية من Java) ، فأنت بحاجة إلى إضافتها في المرجع المصدق الافتراضي الموثوق به JRE. JRE هو الذي يدير Shinyproxy الخاص بك.
الموقع الافتراضي هو JAVA_HOME ---> JRE -> lib ---> الأمان -> cacerts JAVA_HOME ---> JRE -> lib ---> الأمان -> cacerts
أوامر لاستيراد مثل هذا.
keytool -import -noprompt -alias -your-root -file /opt/jboss/your-root.crt -keystore / etc / pki / java / cacerts -storepass changeit
لقد فعلت ذلك ، لا يعمل ، لقد جربت shinyproxy 2.3.1 بدلاً من 2.4.1 وأرسلت redirect_uri الصحيح ، ولكنها تعمل فقط في بعض المتصفحات ، وفي البقية أحصل على err_too_many_redirects
هل شهاداتك موثوقة بشكل عام؟ واجهت هذا أثناء مرحلة الاختبار ، حيث إن الشهادات ليست موثوقة بشكل عام. تحتاج إلى استيراد المرجع المصدق الجذر والمرجع المصدق المتوسط إلى المتجر الموثوق به للمتصفح. يختلف كل متصفح باختلاف نظام التشغيل والمستعرض لديك. في حالتي ، أنا أستخدم Windows ، بعد أن أقوم باستيراد الشهادات إلى المنطقة الموثوقة ويعمل كل من IE و Chrome بشكل جيد بعد ذلك.
هذا هو اقتراحي ،
تم التحقق من صحتها باستخدام certbot .... تمكنت من جعله يعمل مع shinyproxy 2.3.1 وحساب دليل نشط مختلف ...
ولكن هناك خطأ في shinyproxy 2.4.1 و 2.4.0
مرحبًا @ danielfm123 ، لقد راجعت بعض الأشياء هنا ، ولا يمكنني إعادة إنتاج أي مشاكل مع redirect_uri في ShinyProxy 2.4.0 / 1.
هل يمكنك فتح عدد جديد بالمعلومات التالية؟ بهذه الطريقة يمكنني النظر في الأمر ومعرفة ما إذا كان هناك خطأ.
لدي نفس المشكلة.
الإعداد باستخدام keycloak و apache2 reverse proxy و shinyproxy 2.3.1 يعمل بشكل جيد. أركض shinyproxy عبر Docker. يُعيد Shinyproxy التوجيه بشكل صحيح إلى https://testauth.example.com.
عندما أقوم بالتبديل إلى shinyproxy 2.4.1 ، يحتوي redirect_uri على IP الداخلي (http://192.168.51.27:8082) بدلاً من العنوان الذي يمكن الوصول إليه من الخارج وأحصل على خطأ: "المعلمة غير صالحة: redirect_uri".
هذا هو الجزء المناسب من طلبي. iml:
proxy:
title: AUTHTEST
hide-navbar: false
template-path: /templates
favicon-path: /www/favicon.png
heartbeat-rate: 10000
heartbeat-timeout: 600000
port: 8080
admin-groups: admin
container-wait-time: 30000
authentication: keycloak
keycloak:
realm: shinyr
auth-server-url: http://192.168.51.122:8080/auth
resource: shinyr
credentials-secret: <secret>
docker:
internal-networking: true
specs:
- id: test
display-name: Euler App
description: Test App
container-cmd: ["R", "-e", "shiny::runApp('/root/euler')"]
container-image: saletelligence/test
container-network: authtest_authtest_net
access-groups: [admin, pm]
logging:
file:
shinyproxy.log
server:
useForwardHeaders: true
هذا هو تكوين اباتشي:
<VirtualHost *:443>
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
ServerName testauth.example.com
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket
RewriteRule /(.*) ws://192.168.51.27:8082/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket
RewriteRule /(.*) http://192.168.51.27:8082/$1 [P,L]
ProxyRequests Off
ProxyPass "/" "http://192.168.51.27:8082/"
ProxyPassReverse "/" "http://192.168.51.27:8082/"
SSLProxyEngine On
SSLEngine On
SSLCertificateFile /etc/apache2/sslcert/example.crt
SSLCertificateKeyFile /etc/apache2/sslcert/example_pem.key
SSLCACertificateFile /etc/apache2/sslcert/example_bundle.pem
</VirtualHost>
مرحبًا @ eastclintw00d
الرجاء محاولة استخدام:
server:
forward-headers-strategy: "native"
بدلا من
server:
useForwardHeaders: true
شكرا!
مرحبًا LEDfan
هذا حل المشكلة.
شكرا للاستجابة السريعة!
هذا يعمل لكنه يقتل الحزمة DT
@ danielfm123 هل أنت متأكد من تشغيل shinyproxy 2.4.1؟ DT يعمل بشكل جيد بالنسبة لي.
@ danielfm123 @ eastclintw00d طلبات POST (كما تم إجراؤها على سبيل المثال بواسطة DT) لا تعمل عند استخدام OIDC مع ShinyProxy الحالي (2.4.1). إصلاح بواسطة LEDfan سيكون جزءًا من الإصدار القادم ، ولكن هذا ليس موضوع هذا الموضوع.
تم الآن إصلاح مشكلة طلب POST في الإصدار 2.4.2
يتم تحديث الوثائق المتعلقة بالإصدار الأصلي.
سأغلق هذه المشكلة ، حتى تظل المشكلات قابلة للإصلاح بالنسبة لنا.
بالطبع ، كما هو الحال دائمًا ، لا تتردد في فتح إصدار جديد إذا واجهت أي مشكلة!