在我盲目地跳过“试错”testing之前,我想问一些关于Web服务器的Kerberos身份validation的一般性问题。 我想评估Kerberos的可能性。 主要好处当然是单点login。 但它也可能是LDAPauthentication等的一个合适的替代scheme(幸好我们的Active Directory已经包含了一个Kerberos KDC)。 帮助,提示和讨论是最受欢迎的!
我想讨论一个相当复杂的设置,以find限制:MS浏览器 – > Linux Squid代理 – >(Linux httpd反向代理) – > Linux的httpd Web服务器
1)据我所知,Web服务器和浏览器都需要永久连接到KDC来获取和validation身份validation票,对吧?
2)我们的KDC只能在我们的内部networking上访问。 这是否意味着我们networking之外的客户将无法在我们的网站上进行身份validation? 如果是这样,那么是否有可能在我们的networking(通过访问我们的KDC)中放置反向代理来代表浏览器获取Kerberos票据? Web服务器能够代表浏览器自己获取一个Ticket吗? 这将是一个适当的解决方法? 我是否应该使用后备ldap身份validation来处理外部客户端(LDAP服务器只需要可用于Web服务器而不是浏览器)?
3)当使用代理服务器(如鱿鱼的正常代理服务器)时,Kerberos如何工作? 代理服务器是否代表浏览器获取票证? 我可以使用某种直通机制吗? 我真的需要改变我的代理上的任何东西,以防止它打破Kerberos身份validation? 我在互联网上发现了很多HOWTO,但是他们中没有一个清楚地表明他们是允许一般访问代理还是访问代理之后的网站。
我将probalbypopup一些更多的问题,但我认为这可能是一个很好的起点,以获得对基于票证的authentication的一些洞察力。
感谢提前!
要回答你的问题,
是的,networking服务器和浏览器/客户端需要连接到KDC来validation票据。 您必须执行kinit / domainlogin才能获取TGT,并且进一步浏览器将获得HTTP服务票据以访问该Web服务器。
在互联网上暴露Kerberos /域控制器不是一个好的做法。 尝试使用webauth。
Firefox已经支持gss-api协商方法。 所有你需要做的就是做一个kinit,并在about:config中configurationnegotiate-auth,然后访问你的网页。 如果你正在使用Apache检查mod_auth_kerb。 Lighttpd也有一些Kerberos的支持。