通过django中的ssl证书进行用户身份验证

neu*_*nus 8 python authentication django ssl

我正在为一个封闭的用户组编写webaplication.它仅适用于https.服务器应检查是否允许用户通过检查用户ssl证书来访问服务器.我希望只有一个白名单(在userprofile中具有用户证书的ex字段),而不是由我的CA签署他们的密钥.由于没有用户/通行证,内容将取决于客户提供的证书.

我知道我可以将他们的证书列表提供给apache/nginx,但我不喜欢这个解决方案,因为我需要将这个列表保存在两个地方:apache(access/deny)和django:auth middleware(内容取决于哪个证书是提供的).维持这可能是一场噩梦.

还有其他好办法吗?也许我应该让django采取ssl的事情?

Kim*_*ais 10

我为此创建了一个django模块,该实现在github上的MIT许可下可用.基本上这种方法是这样的:

  1. nginx处理所有SSL和证书验证的东西
  2. Django身份验证后端将(验证的)证书可分辨名称映射到User您正在使用的任何模型.