OpenID Connect 联合身份验证

bp openid-connect

从 Icehouse 版本开始,唯一支持的联合身份验证协议是 SAML。本规范的目的是启用对 OpenID Connect 作为联合身份验证协议的支持。

问题描述

发布和处理 OpenID Connect 请求的身份提供者 (IdP) 希望允许其用户访问 OpenStack 云。目前这不可行,因为唯一支持的联合身份验证协议是 SAML。

提议的变更

  1. 为 OpenID Connect 请求创建一个新的认证插件或模块。

  2. 重用映射引擎,将呈现给 Keystone 的任何 OpenID Connect 属性映射到 Keystone 属性。

  3. 利用 Apache 插件 mod_auth_openidc 来处理请求。

注意:应在重新设计现有的联合身份验证代码之后编写此功能,以避免不必要的代码重复。

备选方案

  1. 添加一个认证插件,该插件将某些 OpenID Connect 参数作为参数,并从该插件我们可以向 IdP 发送请求,并在插件内处理响应。

    此替代方案的主要问题是用户将她的凭据发送给服务提供者,而不是身份提供者。

安全影响

确保我们遵循 OpenID Connect 规范。

通知影响

其他最终用户影响

python-keystoneclient 需要增强以处理 OpenID Connect 请求。

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

工作项

  • 添加一个 OpenID Connect 认证插件来处理任何必要的 OpenID Connect 特定数据处理。

依赖项

依赖于重新设计联合身份验证以实现高效的实施。请参阅:https://review.openstack.org/#/c/104301/

文档影响

必须提供详细的文档来描述任何新的必要配置。

参考资料