繁体   English   中英

在DMZ中进行WCF用户名/密码身份验证的推荐方法是什么

[英]What is the recommended way to do WCF username/password authentication in DMZ

我希望托管一个WCF服务,该服务可通过Internet进行访问,如此处所述:

很少有客户端保护Internet上WCF服务的最佳方法

我打算在此阶段使用具有传输安全性(即SSL)的用户名/密码身份验证(使用现有的成员资格基础结构)。

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

我正在考虑的选项是:

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

这两种选择都可能吗? 两者之间是否有任何主要的利弊? (显然反向代理要少得多的代码...)

我决定使用第二个选项。 我已经在防火墙内部拥有一个成员资格服务,因此我将创建位于DMZ中的服务,并实现一个自定义UsernamePasswordValidator并使用它来调用成员资格服务以验证凭据(然后我可以实现一个自定义ServiceAuthorizationManager检查角色/权限)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM