1

对此进行了搜索,发现:

Keystone 返回带有元数据 is_admin = 0 的令牌

这并没有真正回答这个问题,而且它已经一岁了,所以我想我会开一个新的。

我正在运行一个运行最新版本的 devstack 的 Ubuntu 14.04 的 VM 实例(在不到几周的时间内),我认为我看到了 keystone 的奇怪行为。

我知道管理员角色应该是特定于租户的,但我的观察与此相矛盾。

1) Keystone 永远不会返回 is_admin=1。使用具有管理员租户管理员角色的管理员用户向管理员租户进行身份验证仍然返回“is_admin 0”。是否可以保证管理员角色将始终命名为“admin”?如果是这样,您可以使用 .user.roles.name = admin 来检查吗?

2)如果这是真的,我仍然需要在进行身份验证时提供一个租户,以便在响应中填充该数组。为什么这很重要?好吧,我想在没有租户的情况下进行身份验证,获取租户和角色的列表,然后重新对特定租户进行身份验证以做一些有用的事情。为什么?因为我不想提前知道我的租户和角色列表。我想编写一个允许登录并在进行身份验证时显示租户列表和附加功能的自动化过程,如果并且仅当用户是管理员时。

3)令人沮丧,这是#2的延续。如果管理员角色确实是特定于租户的,那么当我什至不是租户 B 的成员时,使用租户 A 登录不应该允许我在租户 B 上执行管理操作,而且它肯定会这样做。这会让我相信管理员角色是全球性的。这对我来说更有意义,我认为拥有特定于租户的管理员、有权访问一组租户的管理员和全局管理员,但要么事实并非如此,他们在撒谎,要么我完全被Openstack 身份。

由于所有互联网搜索都出现了 nada,或者似乎假设读者已经知道上下文并回答了他们试图解决的问题,有人可以向我解释一下:

A) 管理员角色的官方目的/限制是什么?

B)为什么我的第一点不起作用?

C) 为什么管理员角色似乎是全局的?

D) 哪里有关于这方面的文档,假设您已经知道 keystone 的私密细节?例如,管理员角色是等等等等。您可以在 blah blah blah 中配置其访问权限。它的运作方式正是如此:等等等等。没有参考或假设任何先前接触过 Openstack 并且全部在一个地方?

E) 我要求太多了吗?:)

谢谢。

4

0 回答 0