我目前正在制作一个使用多个域来组织用户/项目组的OpenStack设置( LDAP )的原型(在未来,希望是Juno,我们希望移到特定于域的后端http://docs.openstack.org/developer/keystone/configuration.html#domain-specific-drivers,以支持多个LDAP后端)。
按照这个http://www.florentflament.com/blog/setting-keystone-v3-domains.html指南,我已经使用curl启用了多个域。最后有一个新的cloud_admin用户,两个域adm1和adm2,以及单个用户和项目,分别是usr1,usr2和prj1,prj2。
我目前正在从git repo运行Horizon,并且我已经启用了多域:
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身份登录,它就会进入。然而,每当horizon试图查询幕后的各种服务时,都会出现身份验证问题。
例如,它最初将您带到“概述”窗口,并给出一条消息“错误:未授权:无法检索使用信息”。
在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身份验证API。还有没有什么基本的东西我忘了设置服务器端?(可能是keystone.conf中的一些东西)。尽管Horizon目前似乎不支持域管理任务,但似乎其他人至少已经能够为常规用户提供像样的仪表板体验。
发布于 2014-09-17 12:54:01
我不相信在Icehouse发行版中,Identity OpenStack计算(nova)可以接受身份应用程序接口v3请求。不过,如果这就是您看到的错误,那就很奇怪了。
https://stackoverflow.com/questions/25413644
复制相似问题