Bases: keystone.common.controller.V2Controller
Authenticate credentials and return a token.
Accept auth as a dict that looks like:
{
"auth":{
"passwordCredentials":{
"username":"test_user",
"password":"mypass"
},
"tenantName":"customer-x"
}
}
In this case, tenant is optional, if not provided the token will be considered “unscoped” and can later be used to get a scoped token.
Alternatively, this call accepts auth with only a token and tenant that will return a token that is scoped to that tenant.
Format a list of endpoints according to Identity API v2.
The v2.0 API wants an endpoint list to look like:
{
'endpoints': [
{
'id': $endpoint_id,
'name': $SERVICE[name],
'type': $SERVICE,
'tenantId': $tenant_id,
'region': $REGION,
}
],
'endpoints_links': [],
}
Token provider interface.
Bases: keystone.common.manager.Manager
Default pivot point for the token provider backend.
See keystone.common.manager.Manager for more details on how this dynamically calls the backend.
Bases: object
Interface description for a Token provider.
Return the version of the given token data.
If the given token data is unrecognizable, UnsupportedTokenVersionException is raised.
Parameters: | token_data (dict) – token_data |
---|---|
Returns: | token version string |
Raises keystone.exception.UnsupportedTokenVersionException: | |
If the token version is not expected. |
Issue a V2 token.
Parameters: |
|
---|---|
Returns: | (token_id, token_data) |
Issue a V3 Token.
Parameters: |
|
---|---|
Returns: | (token_id, token_data) |
Determine if the token should be persisted.
If the token provider requires that the token be persisted to a backend this should return True, otherwise return False.
Validate a given non-persistent token id and return the token_data.
Parameters: | token_id (string) – the token id |
---|---|
Returns: | token data |
Raises keystone.exception.TokenNotFound: | |
When the token is invalid |
Validate the given V2 token and return the token data.
Must raise Unauthorized exception if unable to validate token.
Parameters: | token_ref (dict) – the token reference |
---|---|
Returns: | token data |
Raises keystone.exception.TokenNotFound: | |
If the token doesn’t exist. |
Validate the given V3 token and return the token_data.
Parameters: | token_ref (dict) – the token reference |
---|---|
Returns: | token data |
Raises keystone.exception.TokenNotFound: | |
If the token doesn’t exist. |
Build the audit data for a token.
If parent_audit_id is None, the list will be one element in length containing a newly generated audit_id.
If parent_audit_id is supplied, the list will be two elements in length containing a newly generated audit_id and the parent_audit_id. The parent_audit_id will always be element index 1 in the resulting list.
Parameters: | parent_audit_id (str) – the audit of the original token in the chain |
---|---|
Returns: | Keystone token audit data |
Encode a URL-safe string.
Return type: | six.text_type |
---|
Determine when a fresh token should expire.
Expiration time varies based on configuration (see [token] expiration).
Returns: | a naive UTC datetime.datetime object |
---|
Generate a random URL-safe string.
Return type: | six.text_type |
---|
Convert a string from random_urlsafe_str() to six.binary_type.
Return type: | six.binary_type |
---|
Return a unique ID for a token.
The returned value is useful as the primary key of a database table, memcache store, or other lookup table.
Returns: | Given a PKI token, returns it’s hashed value. Otherwise, returns the passed-in value (such as a UUID token ID or an existing hash). |
---|