为基于FlaskAppBuilder的应用程序启用HTTPS(用于Oauth2身份验证)

时间:2018-11-24 00:41:40

标签: python oauth-2.0 flask-login flask-appbuilder

我的目标是使用通过HTTPS提供服务的Fabmanager部署一个基于Flask的简单Web应用程序,并启用OAuth2身份验证。 虽然我可以创建一个简单的框架应用程序并相当迅速地进行部署,但是该示例并不适合于轻松扩展以支持HTTPS。因此,我想到了将Apache2反向代理放在FAB应用程序的前面,Apache为HTTPS提供服务,并为FAB应用程序通过HTTP代理。 但是,问题是FAB应用程序生成的redirect-uri将协议设置为通过HTTP而不是HTTPS。 以下是应用程序生成的Oauth2重定向URL的详细信息-

  1. 通过https://redacted.compute.amazonaws.com:8080/login/访问应用程序
  2. 重定向到-https://redacted.amazoncognito.com/oauth2/authorize?response_type=code&client_id= &redirect_uri = http:// **不正确的协议。compute.amazonaws.com:8080 / oauth-authorized / &scope = openid + email + profile

作为一种替代选择,我尝试研究FAB控制台脚本和相关的“ werkzeug”服务脚本,以便在应用程序上强制实施HTTPS。我是通过在虚拟环境中安装PyOpenSSL库并使用SSL上下文来完成的。但是,启动应用程序时出现错误-

  
      
  1. 跟踪(最近一次通话最后一次):_ bootstrap_inner中的文件“ /usr/lib/python3.6/threading.py”,行916   self.run()运行中的文件“ /usr/lib/python3.6/threading.py”,行864   self._target(* self._args,** self._kwargs)文件“ /home/ubuntu/mplogin/lib/python3.6/site-packages/werkzeug/serving.py”,   内线774   fd = fd)文件“ /home/ubuntu/mplogin/lib/python3.6/site-packages/werkzeug/serving.py”,   第660行,在make_server中   passthrough_errors,ssl_context,fd = fd)文件“ /home/ubuntu/mplogin/lib/python3.6/site-packages/werkzeug/serving.py”,   第601行,在 init 中   self.socket = ssl_context.wrap_socket(sock,server_side = True)AttributeError:“上下文”对象没有属性“ wrap_socket”
  2.   

非常感谢您的回复!

0 个答案:

没有答案