keystone.auth.plugins package¶
Submodules¶
keystone.auth.plugins.core module¶
-
class
keystone.auth.plugins.core.
BaseUserInfo
(*args, **kwargs)[source]¶ Bases:
object
-
classmethod
create
(auth_payload, method_name)¶
-
classmethod
-
keystone.auth.plugins.core.
construct_method_map_from_config
()[source]¶ Determine authentication method types for deployment.
Returns: a dictionary containing the methods and their indexes
keystone.auth.plugins.external module¶
Keystone External Authentication Plugins
-
class
keystone.auth.plugins.external.
KerberosDomain
(*args, **kwargs)[source]¶ Bases:
keystone.auth.plugins.external.Domain
Allows kerberos as a method.
keystone.auth.plugins.mapped module¶
-
class
keystone.auth.plugins.mapped.
Mapped
(*args, **kwargs)[source]¶ Bases:
keystone.auth.core.AuthMethodHandler
-
authenticate
(context, auth_payload, auth_context)¶ Authenticate mapped user and set an authentication context.
Parameters: - context – keystone’s request context
- auth_payload – the content of the authentication for a given method
- auth_context – user authentication context, a dictionary shared by all plugins.
In addition to
user_id
inauth_context
, this plugin setsgroup_ids
,OS-FEDERATION:identity_provider
andOS-FEDERATION:protocol
-
-
keystone.auth.plugins.mapped.
apply_mapping_filter
(identity_provider, protocol, assertion, resource_api, federation_api, identity_api)[source]¶
-
keystone.auth.plugins.mapped.
get_user_unique_id_and_display_name
(context, mapped_properties)[source]¶ Setup federated username.
Function covers all the cases for properly setting user id, a primary identifier for identity objects. Initial version of the mapping engine assumed user is identified by
name
and hisid
is built from the name. We, however need to be able to accept local rules that identify user by either id or name/domain.The following use-cases are covered:
- If neither user_name nor user_id is set raise exception.Unauthorized
- If user_id is set and user_name not, set user_name equal to user_id
- If user_id is not set and user_name is, set user_id as url safe version of user_name.
Parameters: - context – authentication context
- mapped_properties – Properties issued by a RuleProcessor.
Type: dictionary
Raises keystone.exception.Unauthorized: If neither user_name nor user_id is set.
Returns: tuple with user identification
Return type: tuple
keystone.auth.plugins.oauth1 module¶
keystone.auth.plugins.password module¶
-
class
keystone.auth.plugins.password.
Password
(*args, **kwargs)[source]¶ Bases:
keystone.auth.core.AuthMethodHandler
-
authenticate
(context, auth_payload, auth_context)¶ Try to authenticate against the identity backend.
-
keystone.auth.plugins.saml2 module¶
-
class
keystone.auth.plugins.saml2.
Saml2
(*args, **kwargs)[source]¶ Bases:
keystone.auth.plugins.mapped.Mapped
Provide an entry point to authenticate with SAML2.
This plugin subclasses
mapped.Mapped
, and may be specified in keystone.conf:[auth] methods = external,password,token,saml2 saml2 = keystone.auth.plugins.mapped.Mapped
keystone.auth.plugins.token module¶
-
class
keystone.auth.plugins.token.
Token
(*args, **kwargs)[source]¶ Bases:
keystone.auth.core.AuthMethodHandler
-
authenticate
(context, auth_payload, user_context)¶
-
keystone.auth.plugins.totp module¶
Time-based One-time Password Algorithm (TOTP) auth plugin
TOTP is an algorithm that computes a one-time password from a shared secret key and the current time.
TOTP is an implementation of a hash-based message authentication code (HMAC). It combines a secret key with the current timestamp using a cryptographic hash function to generate a one-time password. The timestamp typically increases in 30-second intervals, so passwords generated close together in time from the same secret key will be equal.
-
class
keystone.auth.plugins.totp.
TOTP
(*args, **kwargs)[source]¶ Bases:
keystone.auth.core.AuthMethodHandler
-
authenticate
(context, auth_payload, auth_context)¶ Try to authenticate using TOTP
-