Python从Intranet获取客户端Windows用户

时间:2016-10-25 18:39:39

标签: python ldap tornado

基本上我正在为Python / Tornado

寻找https://github.com/einfallstoll/express-ntlm的替代方案

我可以将node.js添加为应用程序中的另一个层,但我不想

让客户端的Windows用户访问网址的方法

这将用于仅在公司网络上提供的网络应用

2 个答案:

答案 0 :(得分:2)

在IIS上使用IIS处理Windows身份验证进行部署时,可以从环境变量中检索远程用户。假设您已启用并配置了Windows authentication

然后你可以简单地从环境中获取变量。正如Microsoft documentation适用的环境变量中所述,变量包括REMOTE_USERAUTH_USERLOGON_USERUNMAPPED_REMOTE_USER。检查文档以了解具体用法。

在Python中,可以使用os.environ检索这些内容 使用运行简单脚本的IIS 7.5进行测试,并且只需os.environ.get("REMOTE_USER")

即可通过Python获取用户名

如果您使用代理,则环境变量可能会有所不同,例如'HTTP_X_PROXY_REMOTE_USER'。如果是这样的话,服务器也可能需要配置为传递这些环境变量。

答案 1 :(得分:1)

express-ntlm基于一个完全相同的Apache Python项目:https://github.com/Legrandin/PyAuthenNTLM2/