我正在为一个封闭的用户组编写一个网络应用程序。它将仅通过 HTTPS 提供服务。服务器应通过检查用户的 SSL 证书来检查是否允许用户访问服务器。我宁愿只拥有一个白名单(例如:用户配置文件中带有用户证书的字段),而不是使用我的 CA 签署他们的 key 。由于没有用户/通行证,内容将取决于客户提供的证书。
我知道我可以向 apache/nginx 提供他们的证书列表,但我不喜欢这个解决方案,因为我需要将这个列表保存在两个地方:apache(access/deny) 和 Django:auth中间件(内容取决于提供的证书)。维护它可能是一场噩梦。
有更好的方法吗?我应该让 Django 处理 SSL 吗?
最佳答案
我为此创建了一个 Django 模块,该实现在 MIT 许可下可用,可在 github 上使用. 基本上,该方法是这样的:
- nginx 处理所有 SSL 和证书验证工作
- Django 身份验证后端将(已验证的)证书专有名称映射到您正在使用的任何
User
模型。
关于python - 通过 django 中的 ssl 证书进行用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9871409/