keystone.federation.backends.base module

keystone.federation.backends.base module

class keystone.federation.backends.base.FederationDriverBase[source]

Bases: object

abstract create_idp(idp_id, idp)[source]

Create an identity provider.

Parameters:
  • idp_id (string) – ID of IdP object

  • idp (dict) – idp object

Returns:

idp ref

Return type:

dict

abstract create_mapping(mapping_id, mapping)[source]

Create a mapping.

Parameters:
  • mapping_id (string) – ID of mapping object

  • mapping (dict) – mapping ref with mapping name

Returns:

mapping ref

Return type:

dict

abstract create_protocol(idp_id, protocol_id, protocol)[source]

Add an IdP-Protocol configuration.

Parameters:
  • idp_id (string) – ID of IdP object

  • protocol_id (string) – ID of protocol object

  • protocol (dict) – protocol object

Raises:

keystone.exception.IdentityProviderNotFound – If the IdP doesn’t exist.

Returns:

protocol ref

Return type:

dict

abstract create_sp(sp_id, sp)[source]

Create a service provider.

Parameters:
  • sp_id (string) – id of the service provider

  • sp (dict) – service provider object

Returns:

service provider ref

Return type:

dict

abstract delete_idp(idp_id)[source]

Delete an identity provider.

Parameters:

idp_id (string) – ID of IdP object

Raises:

keystone.exception.IdentityProviderNotFound – If the IdP doesn’t exist.

abstract delete_mapping(mapping_id)[source]

Delete a mapping.

Parameters:

mapping_id – id of mapping to delete

Returns:

None

abstract delete_protocol(idp_id, protocol_id)[source]

Delete an IdP-Protocol configuration.

Parameters:
  • idp_id (string) – ID of IdP object

  • protocol_id (string) – ID of protocol object

Raises:
abstract delete_sp(sp_id)[source]

Delete a service provider.

Parameters:

sp_id (string) – id of the service provider

Raises:

keystone.exception.ServiceProviderNotFound – If the service provider doesn’t exist.

abstract get_enabled_service_providers()[source]

List enabled service providers for Service Catalog.

Service Provider in a catalog contains three attributes: id, auth_url, sp_url, where:

  • id is a unique, user defined identifier for service provider object

  • auth_url is an authentication URL of remote Keystone

  • sp_url a URL accessible at the remote service provider where SAML assertion is transmitted.

Returns:

list of dictionaries with enabled service providers

Return type:

list of dicts

abstract get_idp(idp_id)[source]

Get an identity provider by ID.

Parameters:

idp_id (string) – ID of IdP object

Raises:

keystone.exception.IdentityProviderNotFound – If the IdP doesn’t exist.

Returns:

idp ref

Return type:

dict

abstract get_idp_from_remote_id(remote_id)[source]

Get an identity provider by remote ID.

Parameters:

remote_id – ID of remote IdP

Raises:

keystone.exception.IdentityProviderNotFound – If the IdP doesn’t exist.

Returns:

idp ref

Return type:

dict

abstract get_mapping(mapping_id)[source]

Get a mapping, returns the mapping based on mapping_id.

Parameters:

mapping_id – id of mapping to get

Raises:

keystone.exception.MappingNotFound – If the mapping cannot be found.

Returns:

mapping ref

Return type:

dict

abstract get_mapping_from_idp_and_protocol(idp_id, protocol_id)[source]

Get mapping based on idp_id and protocol_id.

Parameters:
  • idp_id (string) – id of the identity provider

  • protocol_id (string) – id of the protocol

Raises:
Returns:

mapping ref

Return type:

dict

abstract get_protocol(idp_id, protocol_id)[source]

Get an IdP-Protocol configuration.

Parameters:
  • idp_id (string) – ID of IdP object

  • protocol_id (string) – ID of protocol object

Raises:
Returns:

protocol ref

Return type:

dict

abstract get_sp(sp_id)[source]

Get a service provider.

Parameters:

sp_id (string) – id of the service provider

Returns:

service provider ref

Return type:

dict

Raises:

keystone.exception.ServiceProviderNotFound – If the service provider doesn’t exist.

abstract list_idps(hints)[source]

List all identity providers.

Parameters:

hints – filter hints which the driver should implement if at all possible.

Returns:

list of idp refs

Return type:

list of dicts

Raises:

keystone.exception.IdentityProviderNotFound – If the IdP doesn’t exist.

abstract list_mappings()[source]

List all mappings.

Returns:

list of mapping refs

Return type:

list of dicts

abstract list_protocols(idp_id)[source]

List an IdP’s supported protocols.

Parameters:

idp_id (string) – ID of IdP object

Raises:

keystone.exception.IdentityProviderNotFound – If the IdP doesn’t exist.

Returns:

list of protocol ref

Return type:

list of dict

abstract list_sps(hints)[source]

List all service providers.

Parameters:

hints – filter hints which the driver should implement if at all possible.

Returns:

List of service provider ref objects

Return type:

list of dicts

Raises:

keystone.exception.ServiceProviderNotFound – If the SP doesn’t exist.

abstract update_idp(idp_id, idp)[source]

Update an identity provider by ID.

Parameters:
  • idp_id (string) – ID of IdP object

  • idp (dict) – idp object

Raises:

keystone.exception.IdentityProviderNotFound – If the IdP doesn’t exist.

Returns:

idp ref

Return type:

dict

abstract update_mapping(mapping_id, mapping_ref)[source]

Update a mapping.

Parameters:
  • mapping_id (string) – id of mapping to update

  • mapping_ref (dict) – new mapping ref

Returns:

mapping ref

Return type:

dict

abstract update_protocol(idp_id, protocol_id, protocol)[source]

Change an IdP-Protocol configuration.

Parameters:
  • idp_id (string) – ID of IdP object

  • protocol_id (string) – ID of protocol object

  • protocol (dict) – protocol object

Raises:
Returns:

protocol ref

Return type:

dict

abstract update_sp(sp_id, sp)[source]

Update a service provider.

Parameters:
  • sp_id (string) – id of the service provider

  • sp (dict) – service prvider object

Returns:

service provider ref

Return type:

dict

Raises:

keystone.exception.ServiceProviderNotFound – If the service provider doesn’t exist.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.