Django中基于表单的Kerberos身份验证

时间:2013-05-21 18:26:38

标签: python django authentication kerberos

我有一个Django应用程序,它将RemoteUserBackend与Apache和mod_auth_kerb结合使用来对Kerberos进行身份验证。

然而,这有一些缺点:

  1. 如果不关闭浏览器标签,则无法正常退出。您可以在Django应用程序中单击“Logout”,但是当我尝试再次登录时,我会被要求提供我的凭据 - 后者不是这种情况。 (旁注:我的应用程序很可能一个接一个地登录,这会增加缺乏舒适感,当一个用户使用其他用户的权限执行操作时可能会出现问题。)
  2. 该应用程序目前是针对Apache / RemoteUser解决方案量身定制的,因此它确实提供无法灵活切换到其他身份验证方法,例如对Django数据库的身份验证。使用替代身份验证方法的可能性也将简化应用程序的开发。
  3. 那就是说,我想使用基于表单的身份验证(用户名/密码)。这会将身份验证控件移到Django,因此登录/注销应该正常工作。此外,此表单也可以与不同的身份验证后端一起使用,而无需修改GUI。

    如何做到这一点?是否已经有解决这个或项目的解决方案来解决我的问题?我看到的大多数实现like the ones in the answers here只使用Apache或LDAP身份验证,但不使用Kerberos。

    相关但尚未回答的问题:Django user logout with remote authentication

2 个答案:

答案 0 :(得分:3)

抱歉这是延迟的。我是上面推荐的Kerberos + Django帖子(roguelynn.com)的作者。

关于你的第一个问题,请看看kobo:https://fedorahosted.org/kobo/ - 它使用Kerberos + RemoteUserBackend + Apache和Django,但实现了一个注销机制(在kobo / django / xmlrpc / auth.py中:{{3 }})。

答案 1 :(得分:0)

http://www.roguelynn.com/words/django-custom-user-models/

该博客文章很好地解释了如何将Kerberos用作Django 1.5后端身份验证器。从5月15日开始热销印刷机。她有一堆很好的kerberos例子。

为了后人的缘故以防万一博客有一天消失,作者将她的博客文章存储为她的github回购中的静态文件。

https://github.com/econchick/roguelynn/blob/master/_posts/