【发布时间】:2009-04-17 06:43:20
【问题描述】:
我正忙于设计一个 WCF 应用程序。该应用的目的是让保险会员通过网络访问他们的保险信息。
问题在于我们的网络架构,我不确定我必须使用哪种类型或组合的安全性。
在我们的内部网络中,我们有一个 UNIX 环境,我使用 EntireX .net 包装器访问它,我们有一个 Oracle 10g 数据存储,我通过企业库访问它。
我创建了一个包含业务对象的 BLL 和一个通过 Enterprise Library/EntireX 填充这些对象的 DAL。
我创建了一个包含 2 个 WCF 服务的 WCF 服务层,一个用于访问 oracle 存储,一个用于访问 unix,它们引用 BLL。
我将在防火墙内使用 SQL 2005 的生产服务器上的 IIS 中托管此服务。我们购买了一个我们正在为其创建 DMZ 的 Web 服务器,该 Web 服务器将仅通过端口 443 和/或端口 80 与生产服务器通信。我们公司的 Internet 将可以访问 DMZ 中的 Web 服务器。
表示层将是一个 ASP.Net 前端,它使用 Channelfactory 在代码中调用服务。我使用客户端必须向服务提供的 X509 客户端证书。该服务受 SSL 保护。前端将在 DMZ 中的 Web 服务器上。
我正在使用带有传输安全性和 clientCredentialType="Certificate" 的 wsHttpBinding,它工作正常,但我想将登录信息传递给服务。我想把它添加到消息头中。
现在,我正处于怀疑我的设计可行性的阶段。有人可以给我一些提示,说明在这种情况下我必须使用什么绑定和安全性,如何传递登录信息以及我必须在我的演示层中拥有什么才能最安全。我们可以控制哪些端口将通过防火墙打开到内部生产服务器。我们将只有 1 个 ASP.Net 客户端托管在 DMZ 的 Web 服务器上,但只有 HTTPS 或 HTTP 访问生产服务器。
非常感谢 瑞恩
谢谢
【问题讨论】:
-
当您说“我想将登录信息传递给服务”时,您的意思是您希望用户的身份在服务层中可用吗?
标签: wcf wcf-security