Python 通过远程Active Directory单点登录到Django站点

Python 通过远程Active Directory单点登录到Django站点,python,django,windows,active-directory,single-sign-on,Python,Django,Windows,Active Directory,Single Sign On,我使用Django为客户开发了一个内部网。用户通过Active Directory登录到他们的计算机。目前,我通过标准的Django contrib.auth登录它们,并通过自定义登录后端使用Active Directory 我希望用户能够通过现有的Active Directory登录使用SSO,从而自动登录到Django站点 我知道这应该通过REMOTE_USER()完成,但是文档中说:“Web服务器在哪里设置REMOTE_USER环境变量”。这假设Django站点和身份验证服务器位于同一台服

我使用Django为客户开发了一个内部网。用户通过Active Directory登录到他们的计算机。目前,我通过标准的Django contrib.auth登录它们,并通过自定义登录后端使用Active Directory

我希望用户能够通过现有的Active Directory登录使用SSO,从而自动登录到Django站点

我知道这应该通过REMOTE_USER()完成,但是文档中说:“Web服务器在哪里设置REMOTE_USER环境变量”。这假设Django站点和身份验证服务器位于同一台服务器上,不是吗

在我的例子中,Django站点运行在Linux+Apache服务器上,而Active Directory运行在另一台Windows机器上(实际上我们使用两个不同的AD服务器来登录用户),因此我不知道如何设置REMOTE_USER env变量


用户都在使用Windows计算机。

因此,kerberos身份验证是一个神奇的词

您的用户不针对django应用程序进行身份验证,而是针对Web服务器进行身份验证。您的intranet可能有一个运行的kerberos服务,该服务为您验证您的用户,并在远程用户中为您提供一个用户名(如果他已通过身份验证)

然后,您可以在LDAP中搜索特定的访问权限,或者拥有自己的具有特殊访问权限的数据库

下面是CentOS的一篇短文。环境是什么样子非常重要,所以我所能做的就是告诉你方向;-)


您是否尝试过使用
python ldap
API进行身份验证?这里有一个链接:如果一个答案对你有帮助的话,你可以把它标记为接受,那就太好了。