2010-06-25 62 views
0

我正在考虑从Apache转移到Lighttpd为用python编写的内部Web应用程序。问题是我依靠libapache2-mod-auth-ntlm-winbind ...这实际上似乎不是很好的支持&更新的软件包(尽管这可能是因为它确实工作正常)。Django做自己的NTLM身份验证(HTTP头和所有)

我正在寻找关于使用django本身来处理HTTP认证需要什么的建议和提示。这将使我能够成为Web服务器不可知论者,并且可能成为一次盛大的学习体验。

一些外用的担忧:

  1. 是否合理有自定义应用程序进行真正的HTTP认证?
  2. 如何让我的Python代码连接到Windows域控制器进行这种认证而不提示用户输入密码?
  3. NTLM是否提供对用户详细信息&组成员身份的访问,以便我可以停止通过LDAP与Windows域控制器的另一个连接进行搜索?

我希望能够编写一个模块来简化这个技术,这个技术可以与社区共享。

回答

1

部分答案:

你可以(也应该)通过NTLM身份验证关闭外部帮手。基本上,在机器上安装Samba,配置它,加入域,启用winbind,然后使用“ntlm_auth”辅助二进制文件,可能是在“管道”模式。

对NTLM会话进行身份验证需要安全管道连接到需要凭据的域控制器(例如Samba /域成员计算机帐户)。这是到达那里最快的路线。

Squid(网络缓存)具有使用外部助手进行NTLM身份验证的代码; FreeRadius做了类似的事情。

NTLM身份验证本身不提供任何组信息;如果你正在运行winbind,你当然可以使用调用“wbinfo”来获取用户组。