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

sig*_*nal 8 python windows django active-directory single-sign-on

我使用Django为客户开发了一个Intranet.用户通过Active Directory登录其计算机.目前,我通过标准Django contrib.auth登录,并通过自定义登录后端使用Active Directory.

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

我知道这应该通过REMOTE_USER(https://docs.djangoproject.com/en/dev/howto/auth-remote-user/)完成,但文档说:"Web服务器设置REMOTE_USER环境变量的地方" .假设Django站点和认证服务器在同一台服务器上,不是吗?

在我的例子中,Django站点在Linux + Apache服务器上运行,而Active Directory在另一台Windows机器上运行(实际上有2个不同的AD服务器用于记录人员),所以我不知道REMOTE_USER env变量将如何被设定.

用户都使用Windows机器.

Not*_*erd 4

这里的神奇词是 kerberos 身份验证。

您的用户不会针对您的 django 应用程序进行身份验证,而是针对您的网络服务器进行身份验证。您的 Intranet 可能正在运行一个 kerberos 服务,它会为您验证您的用户身份,并在 REMOTE_USER 中为您提供一个用户名(如果他已通过身份验证)。

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

这是 CentOS 的一篇短文。您的环境非常重要,所以我所能做的就是为您指明方向;-)

http://wiki.centos.org/HowTos/HttpKerberosAuth