keystone.auth.plugins.base 模块

class keystone.auth.plugins.base.AuthHandlerResponse(status, response_body, response_data)

基类: tuple

response_body

字段编号 1 的别名

response_data

字段编号 2 的别名

status

字段编号 0 的别名

class keystone.auth.plugins.base.AuthMethodHandler[source]

基类: ProviderAPIMixin

身份验证插件的抽象基类。

abstract authenticate(auth_payload)[source]

验证用户并返回身份验证上下文。

参数:

auth_payload (dict) – 给定方法身份验证请求的有效载荷内容

如果成功,插件必须在 response_data 中设置 user_idmethod_name 用于传递任何额外的身份验证方法,以防身份验证用于重新限定范围。 例如,如果身份验证用于重新限定范围,插件必须将之前的 method name 追加到 method_names;注意:此行为仅适用于重新限定范围类型的操作。 以下是成功身份验证时 response_data 的示例

{"methods": ["password", "token"], "user_id": "abc123"}

插件的调用顺序与 identity 对象的 methods 属性中指定的顺序相同。 例如,custom-plugin 在以下身份验证请求中,先于 password 调用,而 password 又先于 token 调用

{
    "auth": {
        "identity": {
            "custom-plugin": {"custom-data": "sdfdfsfsfsdfsf"},
            "methods": ["custom-plugin", "password", "token"],
            "password": {
                "user": {"id": "s23sfad1", "password": "secret"}
            },
            "token": {"id": "sdfafasdfsfasfasdfds"},
        }
    }
}
返回值:

如果身份验证成功,AuthHandlerResponse 的 status 设置为 True。 如果 statusFalse 并且是多步身份验证,则 response_body 可以是字典形式,用于身份验证的下一步。

引发:

keystone.exception.Unauthorized – 身份验证失败