【问题标题】:What is the recommended way to do WCF username/password authentication in DMZ在 DMZ 中进行 WCF 用户名/密码身份验证的推荐方法是什么
【发布时间】:2015-02-23 03:28:26
【问题描述】:

我希望托管一个 WCF 服务,该服务可供有限的一组客户端通过 Internet 访问,如下所述:

Best way to secure a WCF service on the internet with few clients

我打算在这个阶段使用用户名/密码身份验证(使用现有的会员基础设施),并具有传输安全性(即 SSL)。

我想知道当会员数据库显然在公司网络内部时,推荐的处理身份验证请求的方法是什么。

我正在考虑的选项是:

  • 公共防火墙将执行 SSL 卸载,然后 DMZ 服务器将请求反向代理到内部 WCF 服务器 - 我假设凭据将被保留并通过此方法传递,并且内部服务可以适当地使用成员资格提供者的身份验证用户。
  • 编写一个哑 WCF 服务以坐在外部,这将使用自定义用户名/密码身份验证。这将调用网络内部的身份验证服务,以访问成员详细信息。验证凭据后,调用将基本上传递到实现所需功能的内部服务。

这两个选项都可能吗?它们中的任何一个有什么主要的优点/缺点吗? (显然反向代理的代码少了很多……)

标签: c# wcf authentication ssl dmz


【解决方案1】:

我决定使用第二个选项。我已经在防火墙内部有一个会员服务,所以我将创建该服务以坐在 DMZ 中并实现一个自定义 UsernamePasswordValidator 并使用它来调用会员服务来验证凭据(然后我可以在轨道上实现一个自定义ServiceAuthorizationManager 来检查角色/权限)。

假设凭据正确验证,该服务将调用防火墙内部的主服务来执行该功能。

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 2021-03-09
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    相关资源
    最近更新 更多