Airflow 使用自定义提供程序忽略redirect_uri

问题描述 投票:0回答:1

我',尝试使用我的自定义提供程序设置 Airflow Authenticate,但由于某种原因,它忽略了我设置并始终使用的重定向 URI


https://my-airflow/oauth-authorized/my provider

我可以在有效负载中看到这一点。应该使用

https://my-airflow/oauth2/callback
因为这是在提供商配置和我的身份服务器上设置的。

这是我的 webserver_appconfig.py


import os
from airflow.configuration import conf
from airflow.utils.log.logging_mixin import LoggingMixin
from flask_appbuilder.security.manager import AUTH_OAUTH
from airflow.www.security  import AirflowSecurityManager

SQLALCHEMY_DATABASE_URI = conf.get("core","SQL_ALCHEMY_CONN")
basedir = os.path.abspath(os.path.dirname(__file__))
CSRF_ENABLED = True
AUTH_TYPE = AUTH_OAUTH
AUTH_USER_REGISTRATION_ROLE = "Public"
AUTH_USER_REGISTRATION = True

class CustomSecurity(AirflowSecurityManager,
LoggingMixin):

def get_oauth_user_info(self, provider, response=None):

logging.debug("response received : {0}.".format(provider))

me = self.appbuilder.sm.oauth_remotes[provider].get("userinfo")
logging.error(me)

return {"preferred_username": me.data.get("preferred_username",""),

"first_name": me.data.get("given_name", ""),
"last_name": me.data.get("family_name", ""),

"email": me.data.get("email", "")
}

OAUTH_PROVIDERS = [

{ 

'name':'my-provider',
'token_key':'access_token',
'icon':'fa-globe',
'redirect_uri': 'my-airflow/oauth2/callback',
'remote_app': {
'client_id': 'urn:my-airflow',
'client_secret': 'xxxxxx',
'request_token_params': {'scope': 'email profile'},
'issuer': 'https://my-airflow:443/openam/oauth2',
'token_endpoint': 'https://my-airflow/openam/oauth2/access_token',
'userinfo_endpoint': 'https://my-airflow/openam/oauth2/userinfo',
'access_token_url': 'https://my-airflow/openam/oauth2/access_token',
'authorize_url': 'https://my-airflow/openam/oauth2/authorize',
   }
}
]

当我点击 https://my-airflow 时,我看到了登录选项 使用 ouath,我被定向到我的自定义提供商身份页面,但随后它抱怨 URI 不匹配...

flask oauth-2.0 airflow flask-appbuilder airflow-webserver
1个回答
0
投票

希望这有帮助。

https://www.restack.io/docs/airflow-faq-aws-eks-rbac

验证重定向 URI:确保 oAuth 提供商设置中指定的重定向 URI 与 Airflow 配置中的重定向 URI 匹配。重定向 URI 的格式应为 https:///oauth-authorized/

© www.soinside.com 2019 - 2024. All rights reserved.