Python Django使用登录的windows域用户进行身份验证
我想使用当前登录到计算机的windows域帐户(active directory)对django web用户进行身份验证。如何在不提示用户再次输入用户名/密码的情况下执行此操作,因为用户已使用域帐户登录到其系统。我正在使用django和python 2.7。我经历了以下几点,但我不明白如何在我的观点中使用它。请帮帮我 谢谢当Web服务器(这里是托管在IIS上的django)负责身份验证时,它通常会设置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
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管理器
它还可以处理从Active Directory同步额外的用户信息,以及一些其他整洁的功能。在windows上返回其域\用户名。当传递给django时,我如何删除域部分?通过覆盖RemoteUserBackend.clean_username()@DannyCullen实现了这一点。你将覆盖放置在何处?这非常有用,我想提供一些IIS提示,我必须在其他地方发现这些提示才能真正实现这一点:首先,这是一项必须与IIS角色和功能一起安装的功能:接下来,您可能必须以管理员身份运行IIS管理器,以便在安装该功能后显示Windows身份验证选项。如何将新用户添加到Django面板?它需要我一个密码!