Nginx代理背后的airflow 1.10.10:Oauth重定向URL http而不是https

Nginx代理背后的airflow 1.10.10:Oauth重定向URL http而不是https,nginx,flask,oauth,airflow,kubernetes-ingress,Nginx,Flask,Oauth,Airflow,Kubernetes Ingress,我正在使用官方的掌舵图(v.7.0.0)在Kubernetes上部署Airflow 1.10.10,但是我遇到了Oauth的问题 这是我的设置: 启用RBAC的Web服务器。在这种情况下,“气流”使用烧瓶生成器 服务器运行在执行https终止的Nginx反向代理之后 我尝试使用OAuth对Azure AD租户进行身份验证 我的问题 -当我尝试使用Microsoft帐户登录时,会收到错误消息“请求中指定的回复URL与为应用程序配置的回复URL不匹配”。 -该错误是由Airflow将重定向URL

我正在使用官方的掌舵图(v.7.0.0)在Kubernetes上部署Airflow 1.10.10,但是我遇到了Oauth的问题

这是我的设置:

  • 启用RBAC的Web服务器。在这种情况下,“气流”使用烧瓶生成器
  • 服务器运行在执行https终止的Nginx反向代理之后
  • 我尝试使用OAuth对Azure AD租户进行身份验证
我的问题 -当我尝试使用Microsoft帐户登录时,会收到错误消息“请求中指定的回复URL与为应用程序配置的回复URL不匹配”。 -该错误是由Airflow将重定向URL设置为而不是httpS://afflow.example.com/oauthh\u authorized/azure引起的

我认为问题出在哪里

由于nginx向Flask发送http请求,Flask为重定向url而不是https生成http url。 所以据我所知,我需要找到一种方法来告诉Airflow/Flask它应该使用https来生成重定向URL

我的尝试:

我有两个攻角:

1。在webserver_config.py文件中将基本URL显式设置为https

我尝试将environ['wsgi.url\u scheme']='https'放在配置文件中,但出现了“environ未定义”错误。 我甚至可以在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;
我还试着设置

proxy_set_header Host $host;
但这会导致所有流量重定向到以逗号分隔的域列表

airflow.example.com,airflow.example.com
这显然不起作用

我将这些设置基于

Nginx配置的其余部分是我在集群中运行的官方Nginx入口控制器的默认设置

有人知道问题是什么吗?我的两个攻角有效吗?还是我缺少第三个攻角


非常感谢,非常感谢您的帮助

能解决吗?如果是这样,请发布你的解决方案。不幸的是没有。我们最终使用谷歌作为我们的身份验证提供商,这是有效的。我可能很快会再次玩这些东西,如果我弄明白了,我会发布一个答案。有同样的问题。我添加了这个env变量,它对我有效
aiffort\uuuu WEBSERVER\uuu ENABLE\u PROXY\u FIX:“True”
kirancodify建议对我有效。