0

我正在考虑从 Apache 迁移到 Lighttpd,用于使用 python 编写的内部 Web 应用程序。问题是我依赖于 libapache2-mod-auth-ntlm-winbind ...这实际上似乎不是一个很好的支持和更新的软件包(尽管这可能是因为它确实运行良好)。

我正在寻找有关使用 django 本身处理 HTTP 身份验证所需的建议和提示。这将使我能够与网络服务器无关,并可能成为一次伟大的学习经历。

一些热点问题:

  1. 让自定义应用程序执行真正的 HTTP 身份验证是否合理?
  2. 在不提示用户输入密码的情况下,将我的 python 代码连接到 Windows 域控制器以进行这种身份验证涉及到什么程度?
  3. NTLM 是否提供对用户详细信息和组成员资格的任何访问权限,以便我可以停止通过 LDAP 与 Windows 域控制器的另一个连接进行搜索?

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

4

1 回答 1

1

部分答案:

您可以(并且应该)将 NTLM 身份验证传递给外部助手。基本上,在机器上安装 Samba,配置它,加入域,启用 winbind,然后使用“ntlm_auth”帮助程序二进制文件,可能在“管道”模式下。

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

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

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

于 2010-09-24T13:16:45.853 回答