keystone.common.rbac_enforcer.enforcer 模块

class keystone.common.rbac_enforcer.enforcer.RBACEnforcer[源代码]

基类: object

强制在 API 调用上执行 RBAC。

ACTION_STORE_ATTR = 'keystone:RBAC:action_name'
classmethod enforce_call(enforcer=None, action=None, target_attr=None, member_target_type=None, member_target=None, filters=None, build_target=None)[源代码]

强制执行当前请求上的 RBAC。

这将完成一些准备工作,然后实例化 Enforcer(如果未传递 enforcer)。

参数:
  • enforcer (RBACEnforcer) – 预先实例化的 Enforcer 对象(可选)

  • action (str) – 要对照检查的规则/策略执行的名称,例如 identity:get_user(可选,可以通过使用 policy_enforcer_action 装饰方法/函数来替换)。

  • target_attr (dict) – 完全覆盖目标数据。这将替换所有其他生成的目标数据,这意味着 member_target_typemember_target 将被忽略。 这也会阻止从 X-Subject-Token 中提取数据。 target 字典应包含一系列键值对,例如 {‘user’: user_ref_dict}

  • member_target_type (str) – 目标的类型,例如“user”。 如果传递了其中任何一个,则必须同时传递这两个参数 member_target_typemember_target

  • member_target (dict) – 成员对象的(字典形式)引用。 如果传递了其中任何一个,则必须同时传递这两个参数 member_target_typemember_target

  • filters (iterable) – 任意数量的可选字符串过滤器,这些过滤器用于从查询参数中提取值。 过滤器被添加到传递给 enforcer 的请求数据中,可用于确定策略操作。 在实践中,这些主要在各种“list” API 中提供,并且在默认提供的策略中未使用。

  • build_target (function) – 用于构建用于执行目标的函数。 这在身份验证之后显式完成,以避免在身份验证之前泄露存在数据。

classmethod policy_enforcer_action(action)[源代码]

用于设置策略执行操作名称的装饰器。

static register_rules(enforcer)[源代码]
suppress_deprecation_warnings = False