0

我目前正在对 OpenStack 设置 (IceHouse RDO) 进行原型设计,使用多个域来组织用户/项目组(在未来,希望 Juno,我们希望迁移到 [特定于域的后端][1] http://docs. openstack.org/developer/keystone/configuration.html#domain-specific-drivers以支持多个 LDAP 身份验证后端)。

按照 [本指南][1] http://www.florentflament.com/blog/setting-keystone-v3-domains.html逐字逐句我已经使用 curl 启用了多个域。最后,有一个新的 cloud_admin 用户,两个域 adm1 和 adm2,以及单个用户和项目 usr1、usr2 和 prj1、prj2。

我目前正在从 git repo 运行 Horizo​​n,并且启用了多域:

OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
OPENSTACK_API_VERSIONS = {
     "data_processing": 1.1,
     "identity": 3,
     "volume": 2
}
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST

我的仪表板现在除了用户/密码之外还请求一个域。

如果我在 dom1 上以 usr1 身份登录,它可以让我进入。但是,每当 Horizo​​n 尝试查询引擎盖下的各种服务时,都会出现身份验证问题。

例如,它最初将您带到“概述”窗口,并给我一条消息“错误:未经授权:无法检索使用信息”。

在 Web 服务器日志中,我看到类似(x 是我添加的):

Login successful for user "usr1".
DeprecationWarning: check_for_test_cookie is deprecated; ensure your login view is CSRF-protected.
WARNING:py.warnings:DeprecationWarning: check_for_test_cookie is deprecated; ensure your login view is CSRF-protected.
[20/Aug/2014 20:03:58] "POST /auth/login/ HTTP/1.1" 302 0
[20/Aug/2014 20:03:58] "GET / HTTP/1.1" 302 0
novaclient connection created using token "xxxxx" and url "http://x.x.x.x:8774/v2/xxxxx"
REQ: curl -i 'http://x.x.x.x:8774/v2/xxxxx/extensions' -X GET -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Project-Id: xxxxx" -H "X-Auth-Token: {SHA1}xxxxx"
RESP: [401] {'date': 'Wed, 20 Aug 2014 20:04:26 GMT', 'content-length': '23', 'content-type': 'text/plain', 'www-authenticate': "Keystone uri='http://x.x.x.x:5000/'"}
RESP BODY: Authentication required

当我使用单域(v2 keystone API)时,这一切都更好。

在我看来,它错误地生成了令牌和/或尝试使用 v2 auth API。还有其他一些我忘记设置服务器端的基本东西吗?(可能在 keystone.conf 中)。似乎其他人至少能够为普通用户获得体面的仪表板体验,即使 Horizo​​n 目前似乎不支持域管理任务,

4

1 回答 1

0

我不相信 OpenStack Compute (nova) 可以在 Icehouse 版本中接受 Identity API v3 请求。奇怪的是,如果这是您看到的错误。

于 2014-09-17T04:54:00.587 回答