Keycloak 支持

launchpad 蓝图: https://blueprints.launchpad.net/vitrage/+spec/keycloak-support

作为一项持续的努力,旨在使 vitrage 能够在非 OpenStack 环境中工作(除了默认的 OpenStack 环境之外)。我们应该能够使 vitrage 与 Keystone 以外的不同授权服务器一起工作。可选的授权服务器可以是 Keycloak,它是一个面向现代应用程序和服务的开源身份和访问管理解决方案

问题描述

目前,Vitrage 只能在 OpenStack 环境中工作,因为它需要 Keystone 进行授权。我们应该支持其他授权,例如 Keycloak。

提议的变更

Vitrage 配置文件 api 部分中的新 auth_mode

[api]
auth_mode = keycloak

Vitrage 配置中的新 keycloak 部分,包含 auth_url

[keycloak]
auth_url = http://[keycloak server]:[keycloak port]/auth

Vitrage 服务器将使用一个新的中间件,在收到 api 请求后与 Keycloak 服务器进行身份验证。

将向 vitrage 客户端添加一个新的授权插件,该插件将从 Keycloak 服务器获取 token 并将其与 api 请求一起发送。

备选方案

数据模型影响

REST API 影响

使用客户端时,我们应该使用 keycloak-plugin

版本影响

其他最终用户影响

部署者影响

要使用 Keycloak 授权,需要在 Vitrage 配置文件中定义它。

开发者影响

Horizon 影响

实现

负责人

主要负责人

eyalb1

工作项

  • 在客户端创建 Keycloak 插件

  • 在服务器端创建 Keycloak 插件

依赖项

测试

此蓝图需要单元测试。

文档影响

KeyCloak 授权的使用将记录在文档中

参考资料

keycloak-config.rst