我正在设置一个django应用程序,该应用程序使用Windows身份验证(LDAP)来填充数据库中的用户。它可以工作,但不会自动登录。我遵循了一堆指南,但是没有运气。在django服务器上的请求中看不到REMOTE_USER,正在Pycharm中进行调试。
已尝试: https://thycotic.force.com/support/s/article/Configuring-Firefox-for-Integrated-Windows-Authentication -在network.negotiate-auth.delegation-uris下,将其设置为: 'http://127.0.0.1:8000/,ldap://xx.example.com' 不确定它应该是Web应用程序服务器(本地)还是ldap服务器。最终将about:config中的所有URI字段设置为此,以尝试涵盖所有情况。
在Django中,我关注了此https://docs.djangoproject.com/en/2.2/howto/auth-remote-user/ -设置MIDDLEWARE和AUTHENTICATION_BACKENDS
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.RemoteUserMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.RemoteUserBackend',
'home.authentication.earlston_ad',
我希望request.META ['REMOTE_USER']存在并且具有用户LDAP信息。但是该字段不存在。
更新
再说一点。我没有为Windows身份验证正确配置运行django项目的IIS服务器。 link对此有所帮助。 已经得出结论,也许Pycharm中的标准django调试服务器不一起支持LDAP /远程用户。
所以我有IE和chrome使用自动SSI。但是,Firefox仍要求登录。我在服务器的CMD中运行了此代码:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
返回了AMBER.DDE.CO.UK
然后,我在Firefox设置中转到about:config,并将“ AMBER.DDE.CO.UK”添加到:
network.negotiate-auth.delegation-uris
network.automatic-ntlm-auth.trusted-uris
仍在询问登录详细信息。我是否在受信任的uri中放入了正确的内容?