由 keystone IdP 生成的 SAML 断言的新属性

bp assertion-extra-attributes

为了唯一标识用户和项目,有必要向 keystone IdP 生成的 SAML 断言中添加新的属性。

问题描述

在使用 keystone-to-keystone 联合身份验证时,部署者可以将 keystone 身份提供程序映射到 keystone 服务提供程序中的多个域。作为身份提供程序的 keystone 也可能拥有多个域。在身份提供程序和服務提供程序中都存在这种 m x n 域关系时,用于映射必须能够正确识别映射过程中涉及的不同实体(用户和项目)至关重要。

目前,由 keystone 身份提供程序生成的 SAML 断言(以及 ECP 封装的 SAML 断言)包含三个属性:openstack_useropenstack_projectopenstack_roles。每个属性的值是所代表实体的 名称。当使用映射规则来唯一标识用户和项目时,这会导致一个问题——跨域没有唯一的名称,我们可能会将不同的用户和项目映射到 keystone 服务提供程序中的相同实体,这可能导致未经授权的用户访问资源。

提议的变更

由于用户和项目在其域中具有唯一的名称,因此将两个新属性 openstack_user_domainopenstack_project_domain 添加到 keystone IdP 生成的 SAML 断言中可以解决此问题。

备选方案

用它们的 ID 表示 openstack_useropenstack_project,这会带来不向后兼容的问题:之前创建的映射规则将停止工作。

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

目前已经使用 keystone-to-keystone 联合身份验证的部署者可能希望更新他们的映射规则以包含新的属性。

开发人员影响

实现

负责人

Rodrigo Duarte Sousa <rodrigodsousa>

工作项

  • 在 SAML 断言生成中添加 openstack_user_domain

  • 在 SAML 断言生成中添加 openstack_project_domain

  • 更新文档以添加新的属性

依赖项

文档影响

应该记录新的属性。

参考资料