Flask/Python解码用户名NTLM或协商身份验证头

Flask/Python解码用户名NTLM或协商身份验证头,python,authentication,flask,Python,Authentication,Flask,我的Flask应用程序托管在我们内部网的IIS中。在Flask中,我可以获得www认证头,但我需要确定windows用户名。我确实启用了基本身份验证,并且能够通过该方法解析出用户名,但我希望这对用户是透明的。在IE中,我将选项设置为自动登录到intranet站点,这样它们就不会被提示输入用户名和密码 我能够得到一个可以以NTLM开头或协商(取决于IIS中的设置)的字符串和一个长的身份验证字符串。在python/Flask中,什么是可靠的解码方法 明白了 class RemoteUserMiddl

我的Flask应用程序托管在我们内部网的IIS中。在Flask中,我可以获得www认证头,但我需要确定windows用户名。我确实启用了基本身份验证,并且能够通过该方法解析出用户名,但我希望这对用户是透明的。在IE中,我将选项设置为自动登录到intranet站点,这样它们就不会被提示输入用户名和密码

我能够得到一个可以以NTLM开头或协商(取决于IIS中的设置)的字符串和一个长的身份验证字符串。在python/Flask中,什么是可靠的解码方法

明白了

class RemoteUserMiddleware(object):
    def __init__(self, app):
        self.app = app
    def __call__(self, environ, start_response):
        user = environ.pop('HTTP_X_PROXY_REMOTE_USER', None)
        environ['REMOTE_USER'] = user

    return self.app(environ, start_response)

app.wsgi_app = RemoteUserMiddleware(app.wsgi_app)
然后在视图中执行以下操作:

username = str(request.environ.get('LOGON_USER'))
明白了

class RemoteUserMiddleware(object):
    def __init__(self, app):
        self.app = app
    def __call__(self, environ, start_response):
        user = environ.pop('HTTP_X_PROXY_REMOTE_USER', None)
        environ['REMOTE_USER'] = user

    return self.app(environ, start_response)

app.wsgi_app = RemoteUserMiddleware(app.wsgi_app)
然后在视图中执行以下操作:

username = str(request.environ.get('LOGON_USER'))
明白了

class RemoteUserMiddleware(object):
    def __init__(self, app):
        self.app = app
    def __call__(self, environ, start_response):
        user = environ.pop('HTTP_X_PROXY_REMOTE_USER', None)
        environ['REMOTE_USER'] = user

    return self.app(environ, start_response)

app.wsgi_app = RemoteUserMiddleware(app.wsgi_app)
然后在视图中执行以下操作:

username = str(request.environ.get('LOGON_USER'))
明白了

class RemoteUserMiddleware(object):
    def __init__(self, app):
        self.app = app
    def __call__(self, environ, start_response):
        user = environ.pop('HTTP_X_PROXY_REMOTE_USER', None)
        environ['REMOTE_USER'] = user

    return self.app(environ, start_response)

app.wsgi_app = RemoteUserMiddleware(app.wsgi_app)
然后在视图中执行以下操作:

username = str(request.environ.get('LOGON_USER'))