0

我应该将现有的 saml 框架与 openstack 集成以访问云。我正处于这个项目的开始阶段。我刚刚安装了 openstack 并阅读了一些文档。我已经读过,由于它的架构,keystone 可以处理自定义框架,但我有点迷茫。我需要帮助才能开始,我应该寻找什么?你有我可以观看开始的文档或灵感项目的链接吗?

更详细地重新措辞:

我有一个名为 FC 的联合身份提供程序,它使用自己的登录页面。这是标准用例:

  • 受保护的页面将用户重定向到 FC 的登录页面
  • 用户输入姓名和密码,然后提交表单
  • 登录页面将名称和密码发送到身份服务器,询问他的凭据
  • 服务器提供凭据
  • 用户被重定向到初始(不再)受保护的页面
    • 本例中的受保护页面是 OpenStack 的仪表板!

阅读@Heckj 的答案,我是否应该为 keystone 编写一个身份后端,将名称和密码发送到 FC 登录页面并处理其答案?

4

1 回答 1

1

在 OpenStack 的 Folsom 版本中,身份机制和 API 不支持任何联合的概念。这是 OpenStack Grizzly 设计峰会上讨论的主题之一——您可以在联邦蓝图上看到该讨论/对话的一些细节。

对于 OpenStack 的 Essex 和 Folsom 版本,身份服务(Keystone)具有一种机制,用于通过从 Driver 继承和实现来编写身份“插件”(在https://github.com/openstack/keystone/blob/master/keystone /identity/core.py)。这方面的示例可以在https://github.com/openstack/keystone/tree/master/keystone/identity/backends上的项目提供的后端中找到。

恐怕没有关于制作自定义身份后端的具体文档和示例,但已经完成 - 在https://gist.github.com/3176390上有一个示例混合 SQL/LDAP 后端的要点

为 DeLac 的扩展扩展一点:

Keystone 提供了一组特定于 OpenStack 的信息,它比基本身份验证更详细一些——最具体地说,它包括项目或租户的概念,以及用户是否被授权访问该项目或租户。当 keystone 提供与其他 OpenStack 项目一起使用的令牌凭证时,这些项目可以查询回 Keystone 以确定这些额外的详细信息,以提供授权策略的实施。

如果您想插入另一个或替代身份验证机制来支持 Keystone(例如联合身份提供者),从 Folsom 版本开始,您可以通过创建一个 Keystone 身份后端来实现,该后端可以针对您的特定提供者进行身份验证,并且还可以执行任何业务您认为合适的逻辑来提供有关用户及其与项目的关联方式以及用户对每个项目的角色的信息。

所有 keystone 都可以修改为使用 SAML 或该方案的其他变体,但这将是对许多组件的整体替换,而不仅仅是在这种情况下对身份验证进行插件升级。正在进行一些努力以使其更容易一些(特别是启用基于 PKI 的身份验证而不是简单的令牌),但在这种方式中任何重要的事情都将是一项艰巨的任务。也就是说,Keystone 和其他 OpenStack 组件具有定义合理的 API 和它们正在使用的接口,因此这不是一项不可能完成的任务。

于 2012-10-01T21:57:58.730 回答