多租户apache的Kerberos身份验证托管了Rails应用程序

时间:2013-12-13 18:28:32

标签: ruby-on-rails-3 apache devise single-sign-on kerberos

我想支持租户使用条件支持Kerberos身份验证的多租户rails应用程序。

我在mod_auth_kerb中看到的示例假设apache服务器将直接与KDC联系以验证票证。在我的情况下,我希望服务器让客户端浏览器与KDC协商并提供相应的票证。我相信这是通过返回401 w / www-negotiate标头完成的,然后客户端浏览器将使用该票证回拨。然后,apache服务器将根据相应的keytab验证票证。我的理解是,我需要一个支持Kerberos身份验证的每个域的密钥表。

因此,我认为我可以轻松提供Apache随后强制执行Kerberos的“/ auto_login”路由。但是,我不太确定如何让Apache选择正确的keytab;例如如果我点击/ auto_login?client = abc来验证ABC的密钥表。

我目前使用Devise。一个自定义策略:Devise ignoring custom strategy会很好,但似乎我在配置Krb5 gem(现在不支持?)处理多个keytabs并确定要验证哪个时遇到同样的问题。

1 个答案:

答案 0 :(得分:1)

你有多少不同的领域? mod_auth_kerb适用于多个领域,只要他们的KDC能够验证信任关系并发出跨领域TGT,并且您的krb5.conf配置可以正确映射到这些领域。

如果你能够在领域之间建立跨领域信任,那么问题就已经解决了 - 只需在mod_auth_kerb的配置中指定所有可接受的领域:

  

KrbAuthRealms CUSTA.COM CUSTB.COM WHATEVER.COM