【问题标题】:Opensso with SSL Configuration issue in F5 Load BalancersOpensso 在 F5 负载均衡器中出现 SSL 配置问题
【发布时间】:2014-04-21 06:53:59
【问题描述】:

我们有一个 Web 应用程序架构,其中我们的应用程序 EAR 部署在配置有非 ssl Http 端口侦听器的 appServer 中。每个请求都通过 F5 Load Balancer-> Web Server-> App Server 进行路由。

在负载均衡器中,我们设置了一个 iRule,其中每个 Http 请求都转发到端口 443 上设置的 Https,并且我们的应用程序运行良好。现在我们正在尝试使用 OpenSSO 联合解决方案和 SAML 技术来实现 SSO。我们已经在我们的应用服务器中部署了带有非 ssl http 侦听器配置的 opensso。

现在,当我们尝试使用 url xhttp://domain_name/opensso(虚拟协议)访问 opensso 时,它会根据负载均衡器上设置的 iRule 重定向为 xhttps://domain_name/opensso。但是在出现的 opensso 配置页面中,服务器 URL 仅填充为 xhttp://domain_name 而不是 xhttps://domain_name。同样,遵循相同的方法来填充整个 opensso 配置中的所有 URL 属性。因此,当我尝试使用 ssoadm GUI 生成元数据时,在表单操作属性中,url 形成为“http”,请求方法仅按照 Opensso 约定作为“POST”传递。但是,当根据负载均衡器规则将其重定向到“https”时,请求方法将作为“GET”而不是 post 传递,并且 opensso 验证失败并抛出错误,因为“需要 HTTP Post 协议”。

所以这里的问题是,默认情况下,opensso URL 属性应该填充“https”而不是“http”。我想知道这里做了什么错误的配置。我们如何解决这个问题?谢谢。

【问题讨论】:

    标签: saml-2.0 opensso


    【解决方案1】:

    我认为您会发现答案实际上在于您的应用程序服务器,而不是应用程序本身。您需要向 servlet 表明它正在被代理,并且它负责使用 HTTPS 方案而不是 HTTP 创建 URL。

    如果您使用的是 Tomcat 或衍生产品,您可以修改 server.xml 以包含以下内容:

     proxyPort="443"
     proxyName="www.domain_name.com"
     scheme="https"
     secure="true"
    

    【讨论】:

    • 是否需要在 App/Web Server 中安装任何 SSL 证书才能进行上述配置?到目前为止,我们仅在负载均衡器中安装了 SSL 证书。
    • 不需要。
    【解决方案2】:

    您可以将负载均衡器配置为使用 307 http 状态代码重定向到 https,该状态代码通知客户端使用原始请求方法。如果 POST 是原始请求方法,那么在重定向之后,客户端将继续使用 POST 而不是 GET。

    HTTP::respond 307 位置“https://[HTTP::host][HTTP::uri]

    【讨论】:

      猜你喜欢
      • 2016-02-10
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2016-04-17
      • 2018-08-24
      • 2020-06-28
      • 1970-01-01
      相关资源
      最近更新 更多