Keystone 服务提供商与 ADFS 身份提供商部署

日期:

2015-06-22 10:00

标签:

联合身份验证, 可扩展性

本规范旨在为 openstack-ansible 增加支持,使用 Active Directory Federation Service (ADFS) 身份提供商实现 Keystone 联合身份验证。

Launchpad 蓝图: https://blueprints.launchpad.net/openstack-ansible/+spec/keystone-sp-adfs-idp

OpenStack 云部署人员经常将 Microsoft Active Directory (AD) 用作企业身份提供商。在这种情况下,专门为他们的 OpenStack 云配置用户凭证,以及管理/更新这些用户的相应权限是繁琐的。部署人员更希望使用 Keystone 的联合身份验证功能,通过 ADFS 将 AD 作为身份提供商 (IdP) 连接到 Keystone 服务提供商 (SP)。

问题描述

  • 作为用户,为了使用我的 AD 身份来使用 OpenStack 云中的资源,我应该能够通过服务提供商的 Horizon 仪表板和命令行界面 (CLI) 使用我的 AD 凭证进行身份验证。

  • 作为管理员,为了维护一个身份系统,我应该能够在我 ADFS IdP 和我的 OpenStack SP 之间建立信任关系。

  • 作为管理员,为了有效地将身份提供商组和用户映射到服务提供商角色,我应该能够简单地为给定的组定义映射到服务提供商项目、域和角色的关系。

提议的变更

  1. 启用并配置 Keystone 作为具有 SSL 公共端点的联合 SP。初始 SP 配置将使用基于 SAML 的 Apache mod_shib。后续选项将扩展对 Apache mod_auth_mellon 的支持。

  2. 记录 ADFS IdP 的配置,以便支持 Keystone SP。

  3. 更改 Horizon 配置以支持 Web 单点登录 (SSO),从而为最终用户提供使用其 AD 凭证进行身份验证的支持。

  1. 自动注册受信任的 ADFS IdP 到 Keystone SP。

  1. 记录并尽可能地自动化将外部身份注册和映射到指定的域、项目、角色和用户的过程。

备选方案

Playbook 影响

  1. os_horizon 配置需要更改模板,以便促进使用 WebSSO 的更改。

升级影响

安全影响

存在安全方面,但它们更多地影响文档而不是代码

  • 安全性在某种程度上委托给外部 IDP (AD)。因此,部署人员在使用它进行联合身份验证之前,必须确信其 AD 的安全性。

  • 部署人员必须花时间了解映射机制,以确保只有预期的用户/组才能获得对 OpenStack 资源的访问权限。

性能影响

待定

最终用户影响

  1. 如果配置了外部 IdP,Horizon 将显示一个下拉列表,其中包含可用的多种身份验证方法。用户可以选择“凭证”和可用的 WebSSO 源。

部署者影响

开发人员影响

依赖项

  1. Keystone 联合身份验证部署实施: * https://blueprints.launchpad.net/openstack-ansible/+spec/keystone-federation

  2. Horizon 需要以下内容: * django-openstack-auth v1.2.0 或更高版本: https://pypi.python.org/pypi/django_openstack_auth

实现

负责人

主要负责人

https://launchpad.net/~jesse-pretorius (odyssey4me)

其他贡献者

https://launchpad.net/~hughsaunders (hughsaunders) https://launchpad.net/~icordasc (sigmavirus24) https://launchpad.net/~miguelgrinberg (miguelgrinberg)

工作项

  1. 将所需的 ADFS 配置添加到 Keystone SP。 * shibboleth2.xml * attribute-map.xml

  2. 记录 ADFS IdP 的配置,以便支持 Keystone SP。

  3. 自动注册受信任的 ADFS IdP 到 Keystone SP。

  4. 更改 Horizon 配置以支持 Web 单点登录 (SSO),从而为最终用户提供使用其 AD 凭证进行身份验证的支持。

  5. 记录并尽可能地自动化将外部身份注册和映射到指定的域、项目、角色和用户的过程。

测试

由于此功能需要安装 ADFS(这在 OpenStack-CI 中是不可能的),因此将没有针对它的特定门控测试。

由于这项工作在 roles/plays 中实施的所有更改都需要以确保现有的门控检查继续通过的方式进行。

文档影响

  1. 需要描述准备 ADFS IdP 以支持 Keystone SP 的方法。

  2. 需要描述实现 Keystone SP 所需的 user_variables 的方法。

  3. 需要记录将外部身份注册和映射到域、项目、角色和用户的具体细节。

参考资料