2010-09-19 43 views
1

计划用Python编写的Web应用程序,Django是一个领先的竞争者框架。Django和通用访问卡(CAC)

一个需求是CAC访问,而不需要手动输入用户名和密码。据我所知,CAC访问不是Django中包含的“电池”的一部分。

作为一个整体框架(不一定是一个坏的属性)Django有一个代表一旦你修改核心高维护代表。我可以轻松将CAC访问权限添加到Django站点吗?之后可以轻松维护吗?

或者我们应该考虑一个不同的Python框架?

FYI ..上CAC访问link

+0

你碰巧得到这个工作?我正在寻找解决方案。 – 2012-05-15 13:14:47

回答

1

您不需要修改内核来启用此功能。 Django支持第三方身份验证后端,并且它们相当容易编写 - 您只需要支持get_userauthenticate两种方法。所以你的实现只需要使用CAC接口来执行这些操作,并且所有操作都可以像往常一样工作。

有关详细信息,请参阅the documentation

编辑后其他答案我不知道为什么人们说这是在Django困难。是的,Django的许多部分很难定制。但是这是一个特别的部分,使得很容易。我在Django中编写了几个认证后端,它们不仅非常简单,而且与框架的其他部分(包括管理员)“一起工作”。没有任何需要修改其他任何东西来使其发挥作用。

+0

谢谢丹。我会给它一个机会,并希望这个“和所有人都能像往常一样工作。” – Paulb 2010-09-21 07:42:43

0

扩展contrib.auth有趣的演示是在颈部疼痛。这是django中最糟糕的一件事。如果您需要高度自定义的身份验证后端,我会建议使用不同的框架。

0

我刚刚做了这个今天通过继承django.contrib.auth.middleware.RemoteUserMiddleware并将头部属性更改为我在我的apache conf中设置的那个。我只是将django.contrib.auth.backends.RemoteUserBackend和我的中间件添加到设置中,并且完美地工作。