keystone.federation.utils module¶
Utilities for Federation Extension.
- class keystone.federation.utils.DirectMaps[source]¶
- Bases: - object- An abstraction around the remote matches. - Each match is treated internally as a list. 
- class keystone.federation.utils.RuleProcessor(mapping_id, rules)[source]¶
- Bases: - object- A class to process assertions and mapping rules. - process(assertion_data)[source]¶
- Transform assertion to a dictionary. - The dictionary contains mapping of user name and group ids based on mapping rules. - This function will iterate through the mapping rules to find assertions that are valid. - Parameters:
- assertion_data (dict) – an assertion containing values from an IdP 
 - Example assertion_data: - { 'Email': 'testacct@example.com', 'UserName': 'testacct', 'FirstName': 'Test', 'LastName': 'Account', 'orgPersonType': 'Tester' } - Returns:
- dictionary with user and group_ids 
 - The expected return structure is: - { 'name': 'foobar', 'group_ids': ['abc123', 'def456'], 'group_names': [ { 'name': 'group_name_1', 'domain': { 'name': 'domain1' } }, { 'name': 'group_name_1_1', 'domain': { 'name': 'domain1' } }, { 'name': 'group_name_2', 'domain': { 'id': 'xyz132' } } ] } 
 
- class keystone.federation.utils.UserType[source]¶
- Bases: - object- User mapping type. - EPHEMERAL = 'ephemeral'¶
 - LOCAL = 'local'¶
 
- keystone.federation.utils.transform_to_group_ids(group_names, mapping_id, identity_api, resource_api)[source]¶
- Transform groups identified by name/domain to their ids. - Function accepts list of groups identified by a name and domain giving a list of group ids in return. A message is logged if the group doesn’t exist in the backend. - Example of group_names parameter: - [ { "name": "group_name", "domain": { "id": "domain_id" }, }, { "name": "group_name_2", "domain": { "name": "domain_name" } } ] - Parameters:
- group_names (list) – list of group identified by name and its domain. 
- mapping_id (str) – id of the mapping used for mapping assertion into local credentials 
- identity_api – identity_api object 
- resource_api – resource manager object 
 
- Returns:
- generator object with group ids 
 
- keystone.federation.utils.validate_idp(idp, protocol, assertion)[source]¶
- The IdP providing the assertion should be registered for the mapping. 
- keystone.federation.utils.validate_mapped_group_ids(group_ids, mapping_id, identity_api)[source]¶
- Iterate over group ids and make sure they are present in the backend. - This call is not transactional. :param group_ids: IDs of the groups to be checked :type group_ids: list of str - Parameters:
- mapping_id (str) – id of the mapping used for this operation 
- identity_api (identity.Manager) – Identity Manager object used for communication with backend 
 
- Raises:
- keystone.exception.MappedGroupNotFound – If the group returned by mapping was not found in the backend. 
 
