google-cloud-platform - 使用 IAP 的 Spinnaker 身份验证
问题描述
我们正在尝试使用 IAP 在 Spinnaker 中启用身份验证。
Spinnaker 使用 HAL 部署在 GKE 中
Deck 和 Gate 使用 Ingress 暴露于不同的域,并且两者都启用了 HTTPS。
已启用 IAP 并创建凭据。
IAP 的 HAL 配置已完成并重新部署。已设置 UI 和 API 的 BaseURL。
CORS 模式设置为 UI URL。
现在,当我尝试打开应用程序时,最初重定向到https://accounts.google.com/o/oauth2/v2/auth ?....在将我发送到登录之前失败了几次(CORS 错误)页。登录后,我的名字会出现在 Spinnaker 的欢迎页面中。在此阶段之后,所有 API (Gate) 调用都因 CORS 错误而失败(从源“ https://spinnaker.abc.com ”访问“ https://spinnaker-api.abc.com/webhooks/preconfigured ”处的 XMLHttpRequest被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。)。应用程序调用的问题也是如此。
我们已经为 UI 和 API 设置了 baseURL。所以理想情况下,CORS 应该已经被处理了。
当我直接从浏览器点击https://spinnaker-api.abc.com/applications时,我收到 200 响应。
任何帮助将不胜感激。
谢谢!
解决方案
好吧,我有一段时间让它工作了。甲板必须使用 IAP 暴露。甲板有一个 /gate 代理到门。将此设置为 API baseurl (spinnakergate-domain.com/gate),它应该可以工作。
我必须编辑 .hal/default/service-settings/deck.yml 文件以使 /gate 代理可用。
推荐阅读
- javascript - 在 JavaScript 中计算图像比例。结果可以近似于规范
- scala - 检查集合中包含的所有元组中的给定整数元素是否按连续顺序排列
- angular - 根据外部配置文件设置“baseHref”
- python - 如何根据变量匹配两个文件?
- erlang - 查找任意项中出现的所有元组
- python-3.x - Cython:将 C 结构转换为 pythons 对象会增加引用计数
- javascript - 如何使用 python Web 服务器运行 javascript 代码?
- spring-boot-admin - Spring Boot Admin 客户端在初始化期间出现异常
- maven - Maven 依赖树(按包)
- java - Java中的“===”等价物