【问题标题】:Flask/Python decoding username NTLM or Negotiate Authentication HeaderFlask/Python 解码用户名 NTLM 或协商身份验证标头
【发布时间】:2015-07-14 16:57:37
【问题描述】:

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

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

【问题讨论】:

    标签: python authentication flask


    【解决方案1】:

    知道了。

    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'))
    

    【讨论】:

      猜你喜欢
      • 2014-08-18
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多