0

我们正在尝试按照 Microsoft Security Best Practices for Azure 中的建议实施 Gatekeeper Design 模式,但我在确定如何执行此操作时遇到了一些麻烦。

为了提供该项目的一些背景信息,我们使用传统分层方法(演示、业务、数据等)将一个已经开发的网站转换为使用 Azure。客户希望围绕此过程构建一些额外的安全性,因为它现在将在云中。

处理此问题的最初建议是使用队列并让工作角色处理进入队列的请求。我们遇到的一些问题是如何正确序列化对象并包括我们需要在该对象上运行的方法以及这种方法固有的延迟。

我们还查看了在 Worker Role 中设置一些 WCF 服务,但我在思考如何准确处理这个问题时遇到了一些麻烦。(除了这是我的第一个 Azure 项目,这也是我第一次尝试 WCF。)我们在这里遇到了与对象序列化相同的问题。

另一个想法是在另一个 Web 角色中设置一些 Web 服务,但这似乎会引发相同的安全问题,因为我们将无法对请求执行基于 IP 的安全性。

我进行了搜索和搜索,但还没有真正找到任何可以做我们正在尝试做的事情的样本(或者我没有认出他们这样做)。任何人都可以提供一些代码示例的指导吗?谢谢。

4

2 回答 2

1

请不要采取错误的方式,但听起来你有过度设计基于“客户希望增加安全性”的“要求”的解决方案的危险。“开发 Windows Azure 应用程序的安全最佳实践”文档第 13 页中描述的看门人模式是一把非常大的枪,您应该只对大型目标开火,即您实际上需要强化应用程序来存储高度敏感数据的场景。构建这样的东西可能会花费大量时间和性能,因此请确保彻底权衡利弊。

您是否考虑过利用SQL Azure 防火墙作为附加(并且可能是可接受的)安全措施?您可以在 IP 地址级别指定访问权限,甚至可以通过存储过程以编程方式对其进行配置。您可以阻止对数据库的所有外部访问,使您的 Azure 应用程序(Web/工作者角色)成为唯一允许访问的“客户端”。

于 2011-04-05T21:44:39.200 回答
0

要具体回答您的一个问题,您可以使用 X.509 证书保护对 WCF 服务的访问并实施消息安全;如果您还需要 SSL 连接来保护传输中的数据,则需要同时使用消息和传输安全性。这不是地球上最简单的事情,但它是可能的。您可以这样做,以便只有拥有正确证书的服务器才能发出 WCF 请求。查看此线程以获取更多详细信息和更多提示:http: //social.msdn.microsoft.com/Forums/en-US/windowsazuresecurity/thread/1f77046b-82a1-48c4-bb0d-23993027932a

此外,只要将对象标记为可序列化,WCF 就可以轻松交换对象。因此,进行 WCF 调用将大大简化您与客户端来回交换对象的方式。

于 2011-04-04T20:29:50.310 回答