如何在OpenStack中集成专有联合IdP

时间:2012-10-01 13:51:49

标签: authentication saml federated-identity openstack

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

更新详情:

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

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

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

1 个答案:

答案 0 :(得分:1)

自Folsom发布OpenStack以来,身份机制和API不支持任何联邦概念。这是OpenStack Grizzly设计峰会讨论的主题之一 - 您可以在blueprint for federation看到该讨论/对话的一些细节。

对于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项目提供的后端中找到。

我担心有关制作自定义身份后端的具体文档和示例不存在,但已经完成 - 在[{3}}

上有一个示例混合SQL / LDAP后端的要点

为DeLac的扩展扩展一点:

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

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

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