1.6.2. 允许 Active Directory 组成员访问项目
为了允许经过身份验证的用户访问 OpenStack 资源,建议的做法是授权特定的 Active Directory 组授予项目的访问权限。这样可保存 OpenStack 管理员,不必将每个用户分配到项目中的角色。相反,Active Directory 组在项目中被授予角色。因此,属于这些 Active Directory 组成员的 Active Directory 用户将能够访问预先确定的项目。
如果您希望手动管理单个 Active Directory 用户的授权,请参阅 第 1.6.3 节 “允许 Active Directory 用户访问项目”。
本节假设 Active Directory 管理员已完成这些步骤:
-
在 Active Directory 中,创建名为
grp-openstack-admin
的组。 -
在 Active Directory 中,创建名为
grp-openstack-demo
的组。 - 根据需要,将您的 Active Directory 用户添加到上述组之一。
-
将您的 Active Directory 用户添加到
grp-openstack
组。 -
思考一个指定的项目。本例使用名为
demo
的项目,通过openstack project create --domain default --description "Demo Project" demo
创建的。
这些步骤将为 AD 组分配角色。然后,组成员具有访问 OpenStack 资源的权限。
检索 AD 组列表:
# openstack group list --domain LAB +------------------------------------------------------------------+---------------------+ | ID | Name | +------------------------------------------------------------------+---------------------+ | 185277be62ae17e498a69f98a59b66934fb1d6b7f745f14f5f68953a665b8851 | grp-openstack | | a8d17f19f464c4548c18b97e4aa331820f9d3be52654aa8094e698a9182cbb88 | grp-openstack-admin | | d971bb3bd5e64a454cbd0cc7af4c0773e78d61b5f81321809f8323216938cae8 | grp-openstack-demo | +------------------------------------------------------------------+---------------------+
检索角色列表:
# openstack role list +----------------------------------+---------------+ | ID | Name | +----------------------------------+---------------+ | 0969957bce5e4f678ca6cef00e1abf8a | ResellerAdmin | | 1fcb3c9b50aa46ee8196aaaecc2b76b7 | admin | | 9fe2ff9ee4384b1894a90878d3e92bab | _member_ | | d3570730eb4b4780a7fed97eba197e1b | SwiftOperator | +----------------------------------+---------------+
向 Active Directory 组授予项目的访问权限,方法是将它们添加到一个或多个这些角色中。例如,如果您希望
grp-openstack-demo
组中的用户是demo
项目的一般用户,您必须将组添加到_member_
角色中:# openstack role add --project demo --group d971bb3bd5e64a454cbd0cc7af4c0773e78d61b5f81321809f8323216938cae8 _member_
因此,当域字段输入 LAB
时,grp-openstack-demo
的成员可以通过输入其 AD DS 用户名和密码来登录仪表板:
如果用户收到错误 Error: Unable to retrieve container list
,并且希望能够管理容器,则它们必须添加到 SwiftOperator
角色中。