Python Django使用登录的windows域用户进行身份验证

Python Django使用登录的windows域用户进行身份验证,python,django,Python,Django,我想使用当前登录到计算机的windows域帐户(active directory)对django web用户进行身份验证。如何在不提示用户再次输入用户名/密码的情况下执行此操作,因为用户已使用域帐户登录到其系统。我正在使用django和python 2.7。我经历了以下几点,但我不明白如何在我的观点中使用它。请帮帮我 谢谢当Web服务器(这里是托管在IIS上的django)负责身份验证时,它通常会设置REMOTE\u USER环境变量以在基础应用程序中使用。在Django中,REMOTE\u U

我想使用当前登录到计算机的windows域帐户(active directory)对django web用户进行身份验证。如何在不提示用户再次输入用户名/密码的情况下执行此操作,因为用户已使用域帐户登录到其系统。我正在使用django和python 2.7。我经历了以下几点,但我不明白如何在我的观点中使用它。请帮帮我

谢谢

当Web服务器(这里是托管在IIS上的django)负责身份验证时,它通常会设置
REMOTE\u USER
环境变量以在基础应用程序中使用。在Django中,
REMOTE\u USER
在request.META属性中可用。Django可以配置为使用Django.contrib.auth中的
RemoteUserMiddleware
RemoteUserBackend
类来使用
REMOTE\u USER
值。 配置 必须将
django.contrib.auth.middleware.RemoteUserMiddleware
添加到
middleware\u类
设置的
django.contrib.auth.middleware.AuthenticationMiddleware

MIDDLEWARE_CLASSES = (
    ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.RemoteUserMiddleware',
    ...
    )
接下来,必须在
AUTHENTICATION\u BACKENDS
设置中将
modelbend
替换为
RemoteUserBackend

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.RemoteUserBackend',
)
通过此设置,
RemoteUserMiddleware
将在
request.META['REMOTE\u USER']
中检测用户名,并使用
RemoteUserBackend
对该用户进行身份验证和自动登录

(更多信息)

要在请求中获取
远程用户
,请执行以下IIS设置:

1.在控制面板中,单击程序和功能,然后单击打开或关闭Windows功能

2.展开Internet信息服务,展开万维网服务,展开安全性,然后选择Windows身份验证

IIS管理器

  • 打开IIS管理器并导航到要管理的级别
  • 在“功能”视图中,双击“身份验证”
  • 在“身份验证”页面上,选择Windows身份验证
  • 在操作窗格中,单击启用以使用Windows身份验证。 ()
  • 查看此模块

    您可以使用it模块在IIS上部署Django项目并启用Windows身份验证。
    它还可以处理从Active Directory同步额外的用户信息,以及一些其他整洁的功能。

    在windows上返回其域\用户名。当传递给django时,我如何删除域部分?通过覆盖RemoteUserBackend.clean_username()@DannyCullen实现了这一点。你将覆盖放置在何处?这非常有用,我想提供一些IIS提示,我必须在其他地方发现这些提示才能真正实现这一点:首先,这是一项必须与IIS角色和功能一起安装的功能:接下来,您可能必须以管理员身份运行IIS管理器,以便在安装该功能后显示Windows身份验证选项。如何将新用户添加到Django面板?它需要我一个密码!