Rails中的Kerberos身份validation

是否可以使用kerberos在rails下validation用户? 是否有任何现有的插件(最好是扩展authlogic的function)来做到这一点?

我希望其他人会来到这里并向我们展示一种纯粹的Rails方式。 但在此之前,最简单的方法就是让你的网络服务器处理它。

在那个方面,我将假设Apache。 如果不是这种情况,请告诉我们您的设置。


浏览器中的正确Kerberos身份validation在HTTP协议本身中完成,非常类似于基本身份validation或摘要身份validation 。 在Apache中,这可以使用mod_kerb_auth完成。

然后,下一步是找出如何检索用户名。 它取决于你在web服务器和你的Rails应用程序之间使用的接口。 这可能是Passenger,FastCGI,mod_proxy等。

许多人会在某种程度上遵循原始的CGI标准 ,并在请求中传递一堆环境变量。 在控制器中尝试以下操作:

username = request.env['REMOTE_USER'] 

就我能带你而言。 我从未使用过authlogic。 虽然从它的外观来看,它支持插件。 也许你可以创建一个新的,如果它被设置,盲目信任REMOTE_USER

如果你想从authlogic切换到Omniauth进行身份validation,那么就有一个模块:

https://github.com/jgraichen/omniauth-kerberos