keystone.assignment.core 模块

分配服务的入口点。

class keystone.assignment.core.Manager[source]

继承自: Manager

分配后端的默认枢纽点。

有关此动态调用后端的更多详细信息,请参阅 keystone.common.manager.Manager

add_implied_roles(role_refs)[source]

扩展隐含角色。

传入的 role_refs 已经扩展了所有继承和组分配。现在我们需要查看每个 ref 中的 role_id,看看它是否是某些隐含角色的先前角色。如果是,则我们需要复制该 ref,为每个隐含角色复制一个。我们将先前角色存储在作为此类复制 ref 的一部分的 indirect dict 中,以便调用者可以确定分配的来源。

add_role_to_user_and_project(user_id, project_id, role_id)[source]
check_system_grant_for_group(group_id, role_id)[source]

检查组是否在系统上具有特定角色。

参数:
  • group_id – 分配中的组 ID

  • role_id – 分配中的系统角色 ID

引发:

keystone.exception.RoleAssignmentNotFound – 如果组没有与系统上的 role_id 匹配的角色分配

check_system_grant_for_user(user_id, role_id)[source]

检查用户是否在系统上具有特定角色。

参数:
  • user_id – 分配中的用户 ID

  • role_id – 分配中的系统角色 ID

引发:

keystone.exception.RoleAssignmentNotFound – 如果用户没有与系统上的 role_id 匹配的角色分配

create_grant(role_id, user_id=None, group_id=None, domain_id=None, project_id=None, inherited_to_projects=False, initiator=None)[source]
create_system_grant_for_group(group_id, role_id)[source]

授予组系统上的角色。

参数:
  • group_id – 组的 ID

  • role_id – 要在系统上授予的角色 ID

create_system_grant_for_user(user_id, role_id)[source]

授予用户系统上的角色。

参数:
  • user_id – 用户的 ID

  • role_id – 要在系统上授予的角色 ID

delete_grant(role_id, user_id=None, group_id=None, domain_id=None, project_id=None, inherited_to_projects=False, initiator=None)[source]
delete_group_assignments(group_id)[source]
delete_system_grant_for_group(group_id, role_id)[source]

从组中删除系统授权。

参数:
  • group_id – 组的 ID

  • role_id – 要从系统上的组中删除的角色 ID

引发:

keystone.exception.RoleAssignmentNotFound – 如果组在系统上没有具有 role_id 的角色分配

delete_system_grant_for_user(user_id, role_id)[source]

从用户中删除系统授权。

参数:
  • user_id – 用户的 ID

  • role_id – 要从系统上的用户中删除的角色 ID

引发:

keystone.exception.RoleAssignmentNotFound – 如果用户在系统上没有具有 role_id 的角色分配

delete_user_assignments(user_id)[source]
driver_namespace: str = 'keystone.assignment'
get_grant(role_id, user_id=None, group_id=None, domain_id=None, project_id=None, inherited_to_projects=False)[source]
get_roles_for_groups(group_ids, project_id=None, domain_id=None)[source]

获取此组在域和/或项目上的角色列表。

get_roles_for_trustor_and_project(trustor_id, project_id)[source]

获取在给定项目中的信任人关联的角色。

这包括直接分配给项目上的信任人的角色,以及通过组成员资格或继承获得的那些角色,但不包括域角色。

返回值:

一个角色 ID 列表。

引发:

keystone.exception.ProjectNotFound – 如果项目不存在。

get_roles_for_user_and_domain(user_id, domain_id)[source]

获取在给定域中与用户关联的角色。

返回值:

一个角色 ID 列表。

引发:

keystone.exception.DomainNotFound – 如果域不存在。

get_roles_for_user_and_project(user_id, project_id)[source]

获取在给定项目上与用户关联的角色。

这包括直接分配给项目上的用户角色,以及通过组成员资格或继承获得的那些角色。

返回值:

一个角色 ID 列表。

引发:

keystone.exception.ProjectNotFound – 如果项目不存在。

invalidate_user_cache_on_group_change(user_id)[source]

当组成员资格发生变化时,使用户缓存失效。

list_all_system_grants()[source]

返回所有系统授权的列表。

list_domains_for_groups(group_ids)[source]
list_domains_for_user(user_id)[source]
list_grants(user_id=None, group_id=None, domain_id=None, project_id=None, inherited_to_projects=False)[source]
list_projects_for_groups(group_ids)[source]
list_projects_for_user(user_id)[source]
list_role_assignments(role_id=None, user_id=None, group_id=None, system=None, domain_id=None, project_id=None, include_subtree=False, inherited=None, effective=None, include_names=False, source_from_group_ids=None, strip_domain_roles=True)[source]

列出角色分配,遵守有效模式和提供的过滤器。

返回一个角色分配列表,其属性与提供的过滤器(role_id、user_id、group_id、domain_id、project_id 和 inherited)匹配。如果 include_subtree 为 True,则还包括指定项目 project_id 的所有后代上的分配。inherited 过滤器默认为 None,这意味着获取非继承和继承的角色分配。

如果指定了 effective 模式,这意味着,而不是简单地返回与过滤器匹配的分配,任何组或继承分配都将被扩展。组分配将成为该组中所有用户的分配,并且继承分配将显示在分配点的项目下方。可以将 effective 模式视为影响用户的实际分配列表,例如将放置在令牌中的角色。

如果将 include_names 设置为 true,则除了它们的 id 之外,还会返回实体的名称。

source_from_group_ids 是一个组 ID 列表,如果指定了该列表,则仅考虑来自这些组的成员资格的分配,并且此类分配将不会扩展到其用户成员资格分配。这不同于结果列表的组过滤器,而是对在继承扩展之前应考虑哪些分配的限制。此选项仅在内部使用(即,未在 API 级别公开),并且仅在 effective 模式下受支持(因为在常规模式下,这与组过滤器没有区别,除了它是一个组列表)。

在 effective 模式下,通常会从返回的分配中删除任何特定于域的角色(因为此类角色不会放置在令牌中)。可以通过指定 strip_domain_roles=False 来禁用此删除,这对于需要检查完整角色集的内部调用(例如信任)很有用。

list_system_grants_for_group(group_id)[source]

返回组在系统上拥有的角色列表。

参数:

group_id – 组的 ID

返回值:

组在系统范围内的角色分配列表

list_system_grants_for_user(user_id)[source]

返回用户在系统上拥有的角色列表。

参数:

user_id – 用户的 ID

返回值:

用户在系统范围内的角色分配列表

list_user_ids_for_project(project_id)[source]
remove_role_from_user_and_project(user_id, project_id, role_id)[source]
class keystone.assignment.core.RoleManager[source]

继承自: Manager

角色后端默认枢纽点。

create_implied_role(prior_role_id, implied_role_id)[source]
create_role(role_id, role, initiator=None)[source]
delete_implied_role(prior_role_id, implied_role_id)[source]
delete_role(role_id, initiator=None)[source]
driver_namespace: str = 'keystone.role'
get_role(role_id)[source]
get_unique_role_by_name(role_name, hints=None)[source]
list_roles(hints=None)[source]
update_role(role_id, role, initiator=None)[source]