2

寻找一些关于使用客户端证书来改进现有应用程序的访问控制的建议。

我们公司有一个现有的 Intranet 应用程序(经典的 ASP/IIS),我们将其授权给其他人。到目前为止,它托管在每个使用它的组织中,安全性包括“如果您能够访问 Intranet,您就能够访问应用程序”。

我现在正在寻找一种在外部托管此应用程序的方法,以便其他不想自己托管它的组织可以使用它(每个新客户端都有自己的安装)。

新组织中的所有用户都将拥有一个客户端证书,所以我想做的是在 IIS 中使用“需要客户端证书”的东西。它允许您说“如果 Organisation=BigClientX 则假装他们是本地用户”。

我更喜欢的是“如果 Organisation=BigClientX 则让他们访问 virtualdirectoryZ 中的资源,否则忽略它们”。

如果这是最好的方法,我会很乐意购买一个插件(也许是一个 ISAPI 过滤器?),它会为我做这件事。欢迎任何建议/战争故事

4

2 回答 2

0

我做过类似的事情...

从您组织的域控制器内部生成证书。将它们导出为 PFX 格式以供分发,以及 CER 格式供您在 IIS 中导入。

为您的 DC 分发 PFX 格式导出和 CA 证书,以便您的客户机器将“信任”您的 CA。

现在在应用程序属性 IIS 中,转到目录安全选项卡,然后在“安全通信”下单击“编辑”。在那里,单击“接受客户端证书”,“启用客户端证书映射”,然后单击“编辑”。

在 1 对 1 选项卡下,单击“添加”并导入 CER 文件。输入您要将此证书映射到的帐户。

至于“让他们访问资源”,我建议通过他们映射的用户帐户来执行此操作 - 也就是说,您可以通过 NTFS 权限或通过识别安全性的代码提供基于该帐户的资源访问权限登录用户的上下文。

于 2009-02-28T06:48:39.853 回答
0

您可能想要这样做。客户端证书实际上是用于第二个身份验证因素,但不是主要来源。换一种说法,您仍然需要为您的应用程序配置基本或表单身份验证。

公钥/私钥背后的技术坚如磐石。但是,您需要一个非常成熟的 IT 组织来处理证书生命周期管理。如果你没有这个,你会遇到无数的失败场景,因为证书已过期,没有复制到新计算机等。

在您的应用程序面向 Internet 的场景中(在您的“托管”场景中)尤其如此 - 您几乎无法控制向用户颁发证书。

于 2009-03-03T21:24:48.300 回答