Web 服务器的 Kerberos 身份验证

Web 服务器的 Kerberos 身份验证

在我盲目地进行“试错”测试之前,我想问一些关于 Web 服务器的 Kerberos 身份验证的一般问题。我想评估 Kerberos 的可能性。当然,主要的好处是单点登录。但它也可能是 LDAP 身份验证等的合适替代方案(幸运的是,我们的 Active Directory 已经包含 Kerberos KDC)。非常欢迎提供帮助、提示和讨论!

我想讨论一个相当复杂的设置来找到限制:MS 浏览器 -> Linux Squid 代理 -> (Linux httpd 反向代理)-> Linux httpd Web 服务器

1)据我了解,Web服务器和浏览器都需要与KDC建立永久连接才能获取和验证身份验证票证,对吗?

2) 我们的 KDC 只能在我们的内部网络上访问。这是否意味着我们网络之外的任何客户端都无法在我们的网站上进行身份验证?如果是这样,那么是否可以在我们的网络中放置一个反向代理(可以访问我们的 KDC)以代表浏览器获取 Kerberos 票证?Web 服务器本身可以代表浏览器获取票证吗?这是一个合适的解决方法吗?我是否应该使用后备 ldap 身份验证来处理外部客户端(LDAP 服务器只需要对 Web 服务器可用,而不需要浏览器)?

3) 使用代理(普通的正向代理,如 squid)时,kerberos 如何工作?代理是否代表浏览器获取票证?我可以使用某种直通机制吗?我是否真的需要更改代理上的任何内容以防止它破坏 kerberos 身份验证?我在互联网上找到了很多 HOWTO,但没有一个明确说明它们是允许对代理进行一般访问还是访问代理后面的网站。

我可能会提出更多问题,但我认为这可能是了解基于票证的身份验证的一个很好的起点。

提前感谢!

答案1

为了回答你的问题,

  1. 是的,Web 服务器和浏览器/客户端需要连接到 KDC 来验证票证。您必须执行 kinit/domain 登录才能获取 TGT,然后 Web 浏览器将获取 HTTP 服务票证以访问 Web 服务器。

  2. 在互联网上公开 kerberos/domaincontroller 不是一个好习惯。尝试使用 webauth。

  3. 我不明白您打算用代理做什么,但您可以从 kerberos 获取可代理票证并根据您的需要使用它。

Firefox 已经支持 gss-api 协商方法。您所要做的就是执行 kinit 并在 about:config 中配置协商身份验证http://grolmsnet.de/kerbtut/firefox.html并访问您的网页。如果您使用的是 apache,请检查 mod_auth_kerb。Lighttpd 也有一些 kerberos 支持。

相关内容