我有一些身份验证场景,我不确定如何处理。我将不胜感激有关该主题的任何建议。
要求:
- 网站将包含一个仅对特定计算机可用的部分。
- 网站需要知道当前正在发出请求的是哪台 PC(我需要能够将此 PC 绑定到数据库中的其他表)
- 我们可以完全访问将访问网站的 PC
- 网站不需要登录,用户应该只看到内容页面而不需要登录。
- 解决方案需要安全,因为它必须通过安全审核
- 假设每台 PC 都在不同的网络上。
到目前为止我的想法:
- 使用客户端证书,但我不确定您是否可以为每个客户端颁发不同的证书?如果答案是“您不知道谁在提出请求”,那么它的第 2 个要求不符合要求,因此不是一个选择。
- 带有模拟的 Windows 身份验证,因此我可以让不同的用户在 PC 上登录(我可以控制机器上登录的用户名/帐户)
- 基本身份验证并设置 PC 第一次记住用户名/密码。我有点担心这个“记住我”会过期,这会导致大混乱,因为有人不得不再次设置这台电脑......
- Windows Identity Foundation - 从未尝试过,但如果我能以某种好的方式在这里实现这个场景,如果你能指出我正确的方向,我将不胜感激。
在此先感谢您的帮助。
编辑:
如果可能的话,我宁愿不使用 SSL ......(性能考虑)
EDIT2:
目前我认为最好的选择是检查 PC 是否经过身份验证(是否包含表单身份验证 cookie),如果不是,则将他重定向到一些 https:// 页面,该页面将检查客户端证书,如果证书设置 cookie存在并重定向回目标页面。
这应该不会很慢,因为 SSL 只会在 cookie 过期的极少数情况下使用。
如果您发现此解决方案有任何缺陷,请告诉我。
如果您知道如何创建服务器证书并稍后从中生成不同的客户端证书,我将不胜感激。