求助:OAUTH2跨多域共享会话实现——Azure静态Web应用访问子域服务
跨子域瓦片服务认证会话共享问题
背景
- 拥有Azure静态Web应用,托管React单页应用(SPA)并连接Azure Functions后端,自定义域为
mysite.com,采用Azure基础认证(即EasyAuth) - 另有一台VM部署Postgres和pg_tileserv,通过oauth2_proxy代理该服务,对应子域为
tiles.mysite.com;单独访问该子域时认证流程正常,服务功能可用
问题
从主站mysite.com的Web应用请求VM上的瓦片服务时,无法利用主站已建立的会话完成tileserv的认证,请求失败
已尝试方案
在mysite.com页面中嵌入指向tiles.mysite.com的iframe,iframe可借助现有Cookie自动完成登录,但当Web应用发起瓦片获取请求时,并未携带这些Cookie,导致请求返回302错误
希望规避的方案
已知可在VM上部署nginx和uvicorn,将Web应用与API集中托管以实现统一认证,但希望保留当前资源分离的架构,不采用该方案
期望解决方案
接受几乎所有其他方案,但需避免订阅更多Azure服务(如Front Door);若切换oauth2_proxy或添加nginx能解决问题,也可以接受
内容的提问来源于stack exchange,提问作者Dean MacGregor
相关产品推荐
相关产品推荐

