3

我有一个域和一组需要身份验证才能访问的子域。我目前正在使用 mod_auth 在 domain.tld 级别对用户进行身份验证(mod_auth basic)。我的目标是在域和所有子域之间进行单点登录。

这些凭证会自动继续到子域,还是通过简单的虚拟主机配置更改,或者有更好的方法来做到这一点?

4

1 回答 1

9

mod_auth_basic

浏览器通过 URL 根和身份验证领域的名称来区分需要 HTTP 身份验证的区域。

以两个域为例,每个域都有一个同名的域:

http://one.example.com/ with the realm "Please enter credentials!"
http://two.example.com/ with the realm "Please enter credentials!"

首先,用户访问one,要求提供凭据并输入它们。然后用户访问two,浏览器识别出 URL 不同,因此再次向用户询问她的凭据。

这是一件好事,因为否则 www.badguy.com 可以设置它,以便您的浏览器通过您的网上银行登录发送。

简而言之:基本 HTTP 身份验证和标准 HTTP 客户端无法解决您的问题。

mod_auth_digest

您可以改用 mod_auth_digest,因为这样您可以指定多个 URI 位于同一“保护空间”中。但是,使用这种身份验证方法存在两个新问题:

  1. 它不能很好地扩展,因为您不能使用通配符域。
  2. 浏览器兼容性不是很好。(请参阅有关如何使其与 IE 一起使用的文档。)
于 2008-12-04T01:05:06.473 回答