keystone.common.rbac_enforcer 包¶
子模块¶
模块内容¶
- class keystone.common.rbac_enforcer.RBACEnforcer[source]¶
基类:
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)[source]¶
在当前请求上强制执行 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) – 任意数量的可选字符串过滤器,这些过滤器用于从查询参数中提取值。 过滤器将添加到传递给强制执行器的请求数据中,并可用于确定策略操作。 在实践中,这些主要在各种“list” API 中提供,并且在默认提供的策略中未使用。
build_target (function) – 用于构建强制执行目标的函数。 这在身份验证之后显式完成,以避免在身份验证之前泄露存在数据。
- suppress_deprecation_warnings = False¶