gpt4 book ai didi

python - 是否可以将 django 用户帐户绑定(bind)到一个特定的工作站?

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:03 24 4
gpt4 key购买 nike

我的目标是每个用户只能从特定工作站登录到我的 Django 网络应用程序。

如果用户试图从另一个工作站登录,登录应该被拒绝。

是否可以通过识别工作站的主机名在 Django 中实现这样的许可模型?

我正在使用 Django 1.10/Python 3.5。

最佳答案

通过 IP 地址或仅通过 HTTP 可用的其他方式识别工作站非常容易出错且不可靠。相反,我会要求用户安装 client certificate你生成的。

这假设您可以控制证书的安装(有两部分,私钥和证书本身),因此您可以确保证书只安装在一个工作站上。您的安装程序可以在此处进行验证,因为它可以收集有关本地运行的工作站的更多信息。

安装证书后,您需要对其进行验证。让前端服务器执行此操作,例如 NGINX 有 full support for handling certificate exchange and validation ,向您传递 DN 甚至是您的应用程序 (Django) 的完整证书以用于授权。参见 https://github.com/kimvais/django-ssl-client-auth用于允许您处理 NGINX 验证的证书信息的项目。

在 Windows 和 OS X 上,私钥可以作为“不可导出”导入。这个标志仍然可以被规避,但没有软件许可方案是牢不可破的。确保您拥有适当的许可,记录主机信息(IP 地址、用户代理字符串等),如果您看到多个 IP 地址使用同一个证书,或者有其他证据表明他们正在使用来自多个 IP 地址的证书一台机器,终止许可证并吊销证书。换句话说:采取合理的预防措施,让故意破坏您的许可证变得更加困难,并且当他们无论如何这样做时,您都有理由吊销许可证。

关于python - 是否可以将 django 用户帐户绑定(bind)到一个特定的工作站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44901299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com