【问题标题】:Service fabric reverse proxy with certificates on endpoint端点上带有证书的服务结构反向代理
【发布时间】:2018-03-07 02:49:56
【问题描述】:

在 Service Fabric 中,是否可以在使用反向代理时要求用户/客户端访问 http 端点的证书?

【问题讨论】:

    标签: azure reverse-proxy azure-service-fabric


    【解决方案1】:

    如果我正确理解你的问题,这是可能的 -

    SSL 终止发生在反向代理和所有客户端 证书数据丢失。用于执行客户端的服务 证书认证,设置 ForwardClientCertificate 设置 在 ApplicationGateway/Http 元素的参数部分。

    ForwardClientCertificate 设置为 true 时,反向代理请求 在与客户端的 SSL 握手期间获取客户端的证书。 然后它将在自定义 HTTP 中转发客户端证书数据 名为 X-Client-Certificate 的标头。

    查看Setting up client certificate authentication through the reverse proxy

    【讨论】:

    • 这是否意味着当我将 ForwardClientCertificate 设置为 true 时,我需要对我的服务做任何事情?或者他们会使用集群上安装的客户端证书自动检查标头?
    • @DaveN 这取决于...首先需要什么证书?你想完成什么?
    • 我只想能够使用反向代理,并在访问服务端点的所有用户/客户端上拥有基于证书的安全性。我希望在结构集群上有一个设置,而不是必须编写任何代码或在服务级别上进行任何配置。
    • @DaveN 据我所知,没有这样的事情。看看官方文档是怎么说的——“反向代理只是一个转发器。它不会对客户端的证书进行任何验证。”,这意味着你是负责在服务中实现证书验证的人。跨度>
    • @DaveN 如果您担心在多个服务中实现相同的身份验证逻辑,我建议您使用专用服务,LB 将重定向所有请求。该服务将对传入请求进行身份验证,然后通过 SF ReverseProxy 将其重定向到目标服务。这是我为我的项目中的多租户应用程序实施的一种方法。
    【解决方案2】:

    对于 Azure 服务结构,您可以将 Azure 应用程序网关放在服务结构及其反向代理之前,并执行 SSL 卸载,以便 HTTPS 到达应用程序网关得到验证并在到达服务之前转换为 HTTP。

    它可以减少维护工作量,如果您有一个请求,然后触发 5 个服务使用反向代理在链中相互调用并启用正向证书选项,那么每个服务都必须进行配置以处理 https。如果证书发生更改,即过期,那么您必须使用应用程序网关更新所有服务配置,您只能在一个地方进行。

    弹性也更好,因为如果您在节点中为特定的反向代理添加前缀,那么如果该节点关闭,您将失去连接。拥有应用程序网关将允许您删除该节点并在其他节点上使用反向代理

    对于本地解决方案,您可以根据自己的负载均衡器执行相同操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-31
      • 2018-08-27
      • 1970-01-01
      • 2019-10-21
      • 2016-09-16
      • 2017-06-15
      • 2016-01-16
      • 1970-01-01
      相关资源
      最近更新 更多