Opensso 运行在反向代理重定向问题后面

发布于 2024-12-02 20:14:07 字数 633 浏览 2 评论 0原文

我们使用 opensso 对应用程序中的用户进行身份验证。每个应用程序都位于反向代理后面,因此 OpenSSO 和当用户经过身份验证时,来自 SSO 的用户名用于在应用程序中创建用户会话。

OpenSSO 部署在主机 admin.mynet 上的 Jetty 端口 8080 上,因此在没有反向代理的情况下运行时,可以通过 http admin.mynet:8080/opensso 访问

SSO 服务器应该只能通过反向代理和端口 443 上的 https 进行访问,这将由nginx 将内部 http 请求发送到端口 8080。主机名需要解析为代理而不是 SSO 服务器。因此,点击 https admin.mynet/opensso 应该会显示 SSO 页面。

问题是,启动并运行此配置后,点击 https://admin.mynet/opensso/UI/Login SSO 发回 302 以及位置 http://admin.mynet:8080/opensso/UI/Login。因此 SSO 不想处理来自以下位置的请求

We are using opensso to authenticate users in our applications. Each application lives behind reverse proxy so as OpenSSO and when user authenticated, username from SSO used to create user session in the application.

OpenSSO deployed in Jetty on port 8080 on host admin.mynet so when running without reverse proxy it is accessible via http admin.mynet:8080/opensso

SSO server should be accessible via reverse proxy only and via https on port 443 which would be translated by nginx to an internal http resquest to port 8080. The host name needs to be resolved to proxy rather then SSO server. So hitting https admin.mynet/opensso should show SSO pages.

The problem is that having this configuration up and running, hitting https://admin.mynet/opensso/UI/Login SSO sends back 302 with location http://admin.mynet:8080/opensso/UI/Login. So SSO does not want to handle requests coming from

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

已下线请稍等 2024-12-09 20:14:07

假设 admin.mynet 的 IP 地址为 10.0.0.10,则以下块应该有效:

server {
   listen 443;
   server_name  admin.mynet;   
   ssl          on;
   location / {
        proxy_pass        http://10.0.0.10:8080;
        proxy_set_header  X-Real-IP  $remote_addr;
   }
   location /opensso {
        proxy_pass        http://10.0.0.10:8080;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  Host admin.mynet:8080;
   }
}

Assuming an ip address of 10.0.0.10 for admin.mynet, the following block should work:

server {
   listen 443;
   server_name  admin.mynet;   
   ssl          on;
   location / {
        proxy_pass        http://10.0.0.10:8080;
        proxy_set_header  X-Real-IP  $remote_addr;
   }
   location /opensso {
        proxy_pass        http://10.0.0.10:8080;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  Host admin.mynet:8080;
   }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文