我对 Windows Server 2008 中的基本身份验证有一些疑问。
我读到基本身份验证以纯文本形式发送密码,因此不安全,但您可以将其与 SSL 结合使用以提高安全性。 在这种情况下,带 SSL 的基本身份验证和集成 Windows 身份验证之间有什么区别? 考虑到安全性(以及性能)的差异。
Windows 本机身份验证(基本)和应用程序身份验证(例如大多数网站使用的身份验证)之间有什么区别?(即使在这里,安全性和性能也存在差异)
谢谢
答案1
是的,基本身份验证以纯文本形式发送密码。如果您的网站通过 SSL 运行,那么这将使所有通信(包括基本身份验证)都安全。
集成 Windows 身份验证仅指 IIS 将针对 Windows 用户(域和/或本地用户)检查任何传入的用户名/密码组合,而不是检查其他存储。您可以使用集成身份验证,以基本(纯文本)或摘要(md5 哈希)样式传输凭据。后者更安全,因为不会传输实际密码。
除非您正在运行内部网站点,并且您的客户端已经使用同一个 Windows 域进行身份验证,否则我会避免使用集成 Windows 身份验证。
应用程序身份验证基本上意味着您自己在脚本/Web 应用程序中进行身份验证。这通常涉及以普通 html 表单收集用户名和密码,根据数据库检查用户名/密码,并设置会话值以表明客户端已通过身份验证。这是一种可移植的方法,因为它不需要为您的客户端设置任何 Windows 用户。登录表单应通过 SSL 运行,因为表单将以纯文本形式传递密码字段。
答案2
使用基本身份验证,用户会收到一个浏览器弹出窗口,要求输入凭证,然后使用纯文本将凭证发送到服务器,因此,除非您使用 SSL,否则凭证可能会被捕获。
使用集成 Windows 身份验证,浏览器会自动向服务器发送用户当前登录 Windows 的凭据;这些凭据是不是使用纯文本发送,但这当然只有当服务器和客户端位于同一个域中才有意义。
应用程序身份验证(基本上)是使用 HTTP POST 请求提交的 HTML 表单;它也使用纯文本,因此它是不是除非使用 SSL 保护,否则不安全。