Django和通用访问卡(CAC)

3
计划编写一个用Python编写的Web应用程序,Django是主要的框架之一。
其中一个要求是CAC访问,无需手动输入用户名和密码。据我所知,CAC访问不是Django默认包含的功能之一。
作为一个单体框架(不一定是一个坏属性),Django在修改核心后被认为需要高维护性。我能否轻松地将CAC访问添加到Django网站中?此后是否容易维护?
或者也许我们应该考虑其他Python框架?
FYI..关于CAC访问的有趣演示 link

你有没有成功地解决这个问题?我正在寻找一个解决方案。 - Carl F.
3个回答

2
你不需要修改核心代码就能实现这个功能。Django支持第三方身份验证后端,编写它们相当容易 - 你只需要支持两种方法:get_userauthenticate。因此,你的实现只需要使用你的CAC接口执行这些操作,一切都会像往常一样工作。
详情请参见文档其他答案之后编辑我不知道为什么有人说在Django中这很难。是的,Django的许多部分都很难定制。但这是一个特别容易的部分。我在Django中编写了几个身份验证后端,它们不仅非常简单,而且与框架的其他部分(包括管理)“完美协作”。没有必要修改任何其他内容即可使其正常工作。

谢谢Dan。我会尝试一下,希望一切都能像往常一样顺利。 - Paulb

0
今天我通过子类化django.contrib.auth.middleware.RemoteUserMiddleware并将header属性更改为我在apache conf中设置的属性来完成了这个。我只需将django.contrib.auth.backends.RemoteUserBackend和我的中间件添加到设置中,它就完美地工作了。

-1

扩展contrib.auth真是一件让人头疼的事情。这是Django中最糟糕的事情。如果您需要高度定制的auth后端,我建议使用不同的框架。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接