OAuth集成Superset时custom_token_headers未传递至access_token_url问题
问题结论
你遇到的这个现象不属于预期行为,access_token_headers配置的自定义头默认会和系统自动生成的标准请求头合并,而非覆盖,正常请求access_token_url时应该同时携带Authorization: Basic xxx头和你配置的XYZ: mock-header xyz自定义头。
底层逻辑说明
Superset的OAuth认证能力底层依赖Flask-AppBuilder(FAB)的OAuth模块,而FAB的OAuth实现基于Authlib库:
- 自动生成的
Authorization头是Authlib按照OAuth2标准,针对client_secret_basic认证模式自动添加的客户端身份校验头,属于标准流程的必要字段 access_token_headers的设计作用是追加自定义头到令牌请求中,和默认头不存在互斥关系
常见不生效原因&解决方案
- 版本兼容性问题:Superset 1.5.0之前的版本存在
access_token_headers配置不生效的已知bug,优先升级到1.5.0及以上的稳定版本即可解决 - 如果你的授权服务端支持
client_secret_post认证模式,可以在client_kwargs中新增配置'token_endpoint_auth_method': 'client_secret_post',该配置会将客户端ID、密钥放到请求体中传递,同时自定义头会正常携带
内容的提问来源于stack exchange,提问作者Gaurav
相关产品推荐
相关产品推荐

