1

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

使用少数客户端在 Internet 上保护 WCF 服务的最佳方法

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

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

我正在考虑的选项是:

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

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

4

1 回答 1

0

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

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

于 2015-03-02T04:43:58.747 回答