Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以将django用户帐户绑定到一个特定的工作站?_Python_Django_Python 3.x - Fatal编程技术网

Python 是否可以将django用户帐户绑定到一个特定的工作站?

Python 是否可以将django用户帐户绑定到一个特定的工作站?,python,django,python-3.x,Python,Django,Python 3.x,我的目标是,每个用户只能从特定的工作站登录到我的Django web应用程序 如果用户试图从其他工作站登录,则应拒绝登录 是否可以在Django中实现这种许可模型,可能是通过识别工作站的主机名 我使用的是Django 1.10/Python 3.5。通过IP地址或仅通过HTTP可用的其他方式识别工作站非常容易出错,而且不可靠。相反,我要求用户安装您生成的 这假设您可以控制证书的安装(有两部分,私钥和证书本身),因此您可以确保证书仅安装在一个工作站上。您的安装程序可以在这里进行验证,因为它可以收集

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

如果用户试图从其他工作站登录,则应拒绝登录

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


我使用的是Django 1.10/Python 3.5。

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

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

一旦安装了证书,您就需要对此进行验证。让前端服务器执行此操作,例如NGINX,向您传递DN甚至完整证书,供您的应用程序(Django)在授权中使用。有关允许您处理NGINX验证证书信息的项目,请参阅


在Windows和OS X上,私钥可以作为“不可导出”导入。这个标志仍然可以绕过,但没有一个软件许可计划是牢不可破的。确保您有适当的许可证,记录主机信息(IP地址、用户代理字符串等),如果您看到多个IP地址正在使用同一证书,或者有其他证据证明他们正在使用来自多台计算机的证书,请终止许可证并吊销证书。换言之:采取合理的预防措施,使其更难自愿违反您的许可证,并且当他们无论如何这样做时,您有理由撤销许可证。

我会使用客户端证书。只在特定的工作站上安装证书,通过证书进行标识。这是我的第一个想法,但没有任何东西阻止用户在其他工作站上简单地安装证书。我们谈论的是什么类型的工作站?这取决于操作系统是否能够重新导出私钥(整个方案中的关键组件)。