启用 Keystone OpenID Connect 支持¶
Keystone Charm 支持可插拔后端,这些后端使用 Keystone 联合身份验证来启用各种账户用户和组的提供商。本规范旨在讨论如何启用对 OpenID Connect 的支持。
问题描述¶
当前在企业环境中部署 OpenStack charms 时,只能通过 LDAP 或联合身份验证将中央用户数据库引入 Keystone,后一种方法仅支持 SAML 集成。因此,对于用户通过 OpenID Connect 公开的环境(例如 Google Apps),Charmed OpenStack 无法提供解决方案。
提议的变更¶
建议的解决方案是在 keystone 的一个新的从属 charm 中提供 OpenID Connect 支持。
此新功能将在 OpenStack Yoga(及更高版本)的 Ubuntu 22.04 LTS 上支持。
备选方案¶
允许操作员配置 OpenID Connect 联合身份验证,并在 Keystone charm 中直接支持一些功能。
实现¶
负责人¶
- 主要负责人
Felipe Reyes <felipe.reyes@canonical.com>
Gerrit Topic¶
使用 Gerrit 主题 “keystone-openidc” 用于与此规范相关的所有补丁。
git-review -t keystone-openidc
工作项¶
实现一个新的操作员框架从属 charm,keystone-openidc,它实现 keystone-fid-service-provider 和 websso-fid-service-provider 关系
添加一个 charm 选项,允许操作员传递一个自定义 HTML 模板,用作单点登录模板。该模板将由 OpenStack Horizon 用于渲染登录屏幕(请参阅 将 Horizon 配置为 WebSSO 前端)
创建一个包含 OpenID Connect 提供商软件的新 snap,例如 Ipsilon 或 Oidc-op。该 snap 将被设计为可部署并用于测试目的。
创建一个用于测试目的的 OpenID Connect 提供商 charm,openidc-test-fixture。该 charm 将类似于 ldap-test-fixture。
编写单元测试
使用 zaza 测试框架扩展当前的功能测试
时间表¶
目标是在 OpenStack Charms 22.04 版本中实现此更改。
仓库¶
在初始开发期间,代码将在此处管理
https://github.com/openstack-charmers/charm-keystone-openidc
https://github.com/openstack-charmers/charm-openidc-test-fixture
https://github.com/openstack-charmers/snap-<openidc-provider>
准备就绪后,keystone-openidc charm 将通过 OpenDev gerrit 进行管理,地址为
文档¶
该 charm 应包含文档化的选项
创建 charm 选项
创建 charm 关系
创建 charm README
更新 deployment-guide,包含一个部分,解释如何配置 Charmed OpenStack 以针对 OpenID Connect 提供商进行身份验证。
安全性¶
OpenStack 身份服务 (Keystone) 必须仅与通过有效的 HTTPS 端点提供的 OpenID Connect 提供商交互。
测试¶
代码更改将通过单元测试进行测试。
功能测试将由 zaza 测试框架覆盖。
依赖项¶
此启用依赖于 libapache2-mod-auth-openidc,该组件自 Ubuntu 18.04 (Bionic) 起在 Universe 仓库中可用。为了长期维护此组件的安全性和可用性,将提交一个主包包含请求 (MIR)。