Ben*_*Ben 6 oauth nginx flask airflow kubernetes-ingress
我正在使用官方 Helm Chart (v.7.0.0) 在 Kubernetes 上部署 Airflow 1.10.10,但我遇到了 Oauth 问题。
这是我的设置:
我的问题 - 当我尝试使用 Microsoft 帐户登录时,收到错误消息“请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配”。- 该错误是由 Airflow 将重定向 URL 设置为http://airflow.example.com/oauth_authorized/azure而不是 http S ://airflow.example.com/oauhth_authorized/azure引起的
我认为问题是什么
由于 nginx 向 Flask 发送 http 请求,flask 会生成一个 http url 作为重定向 url,而不是 https。因此,根据我的理解,我需要找到一种方法来告诉 Airflow/Flask 它应该使用 https 来生成重定向 URL。
我尝试过的:
我有两个攻击角度:
1. 在 webserver_config.py 文件中明确将基本 URL 设置为 https
我尝试将 environ['wsgi.url_scheme'] = 'https' 放入配置文件中,但收到“environ is not Defined”错误。我可以在 config.py 文件中设置它吗?我需要导入什么才能让它工作?
2.在nginx中设置代理头
我尝试使用 Kubernetes 注释在 Nginx 中设置多个标头,我当前的设置是:
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
Run Code Online (Sandbox Code Playgroud)
我也尝试设置
proxy_set_header Host $host;
Run Code Online (Sandbox Code Playgroud)
但这会导致所有流量被重定向到逗号分隔的域列表
airflow.example.com,airflow.example.com
Run Code Online (Sandbox Code Playgroud)
这显然不起作用。
我根据Flask 文档进行这些设置。
Nginx 配置的其余部分是我在集群中运行的官方 Nginx 入口控制器的默认设置。
有人知道问题可能是什么吗?我的两个攻击角度是否有效,还是缺少第三个攻击角度?
非常感谢,非常感谢任何帮助!
归档时间: |
|
查看次数: |
2892 次 |
最近记录: |