You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

OpenStack Horizon WebSSO登录重定向至Keystone API时路径缺失/v3导致404错误

OpenStack Horizon WebSSO登录重定向至Keystone API时路径缺失/v3导致404错误

遇到这种路径前缀缺失引发的404问题确实挺闹心的,结合你用kolla-ansible部署Yoga版本集群的场景,我给你梳理几个排查和解决的方向:

首先得确认问题根源:你手动在URL里补上/v3就能正常访问,说明Horizon生成WebSSO重定向链接时,没有正确拼接Keystone API的版本前缀,导致请求发到了Keystone未处理的路径上。

排查和修复步骤:

  • 检查Horizon的Keystone地址配置
    在kolla-ansible的部署配置中,Horizon服务依赖的Keystone URL必须包含/v3后缀。你可以查看globals.yml里的相关变量,确保horizon_keystone_url设置为http://<openstack_hostname>:5000/v3(而不是不带/v3的地址)。
    如果是容器内的配置文件,进入Horizon容器后,检查/etc/openstack-dashboard/local_settings.py中的OPENSTACK_KEYSTONE_URL参数,确认它的值是带/v3的完整Keystone endpoint。

  • 重新部署Horizon服务
    如果发现配置有误,修改完globals.yml后,执行以下命令重新部署Horizon,让配置生效:

    kolla-ansible deploy -t horizon
    

    要是想快速测试,也可以直接修改容器内的local_settings.py,然后重启Horizon服务(容器内执行systemctl restart openstack-dashboard,或者直接重启Horizon容器)。

  • 验证Keystone的Endpoint配置
    执行openstack endpoint list命令,查看Keystone的public endpoint是否正确包含/v3。正常的public endpoint应该是类似这样的:

    http://<openstack_hostname>:5000/v3
    

    如果Endpoint里没有/v3,需要用openstack endpoint set命令更新Keystone的endpoint配置,确保版本前缀正确。

  • 检查Keystone联邦配置的API版本
    确认你在配置OpenID Connect身份提供商(IdP)和协议时,使用的是v3版本的Keystone API。kolla-ansible里的keystone_federation_idps相关变量,应该关联的是v3版本的endpoint,避免生成不带版本前缀的链接。

按照这些步骤调整后,Horizon生成的WebSSO重定向URL应该就会自动带上/v3前缀,404的问题应该就能解决了。

备注:内容来源于stack exchange,提问作者aflamant

火山引擎 最新活动