使用FastCGI将Windows身份验证上下文从IIS传递到Python

Enn*_*ier 5 python iis fastcgi

我已经在Windows / IIS 10.0上使用wfastcgi在Windows域帐户下运行Python 3.6的情况下成功设置了示例Flask应用程序。

现在,我试图将IIS Windows身份验证用户信息传递给我的Flask应用程序。我仅在IIS中启用了Windows身份验证,并且我的浏览器成功进行了身份验证。

我如何找出哪个用户正在WSGI中访问该网站?我检查了环境变量和HTTP标头,但没有碰到运气。

PHP似乎有一个fastcgi.impersonate -Option,但是似乎没有Python的挂件。

sus*_*pop 4

您提到您已经检查了环境变量和 HTTP 标头。如果您检查了环境变量,那么os.environ.get['REMOTE-USER']您应该收到一个空字符串,因为您的 Python 实例在服务器本地运行而不是远程。除非您使用 ISAPI 重写之类的东西,否则 IIS 也不会将 REMOTE-USER 写入标头。

最简单的解决方案是检查 IIS 显式传递给 Flask 的环境变量:

from Flask import request

username = request.environ('REMOTE_USER')
Run Code Online (Sandbox Code Playgroud)