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_type 和 member_target 将被忽略。 这也会阻止从 X-Subject-Token 中提取数据。 target 字典应包含一系列键值对,例如 {‘user’: user_ref_dict}。
member_target_type (str) – 目标的类型,例如“user”。 如果传递了其中任何一个,则必须同时传递这两个参数 member_target_type 和 member_target。
member_target (dict) – 成员对象的(字典形式)引用。 如果传递了其中任何一个,则必须同时传递这两个参数 member_target_type 和 member_target。
filters (iterable) – 任意数量的可选字符串过滤器,这些过滤器用于从查询参数中提取值。 过滤器被添加到传递给 enforcer 的请求数据中,可用于确定策略操作。 在实践中,这些主要在各种“list” API 中提供,并且在默认提供的策略中未使用。
build_target (function) – 用于构建用于执行目标的函数。 这在身份验证之后显式完成,以避免在身份验证之前泄露存在数据。
- suppress_deprecation_warnings = False¶