linotp.provider package

provider handling

exception linotp.provider.ProviderNotAvailable

Bases: Exception

to be thrown when a provider is unavailable, eg. on a connection or response timeout error

linotp.provider.default_func(composite_key, value)

Sets the attribute pair {default: True} to the default provider in the tree.

Parameters

provider_type – A string identifier (such as ‘sms’, ‘email’, etc)

linotp.provider.delProvider(provider_type, provider_name)

delete a provider

Parameters
  • provider_type – the type of Provider: push, sms or email

  • provider_name – the name of the provider

Returns

the number of deleted entries

linotp.provider.func(composite_key, value)

Parses provider data from a config entry

Parameters

provider_prefix – A short provider prefix (such as ‘SMSProvider’, ‘PushProvider’ - all without the leading ‘linotp.’)

linotp.provider.getProvider(provider_type, provider_name=None, decrypted=False)

return a dict with providers, each with it’s description as dict

Parameters
  • provider_type – either push, sms or email

  • provider_name – name of the provider (optional)

Returns

the dict with all providers

linotp.provider.get_all_new_providers(provider_type, show_managed_config=False)

get all providers of the new format :param provider_type: the type of the provider :return: dict with all providers

linotp.provider.get_default_provider(provider_type)

find out, which provider is declared as default

Parameters

provider_type – push, sms or email

Returns

the name of the default provider

linotp.provider.get_legacy_provider(provider_type)

return a dict with legacy email or sms providers

Parameters

provider_type – either sms or email

Returns

dict with the provider

linotp.provider.get_provider_from_policy(provider_type, realm=None, user=None, scope='authentication', action=None)

interface for the provider user like email token or sms token

Parameters
  • provider_type – ‘push’, ‘email’ or ‘sms

  • user – the user, who should receive the message, used for the policy lookup

Returns

the list of all identified providers by name

linotp.provider.loadProvider(provider_type, provider_name=None)

interface for the provider user like email token or sms token

Parameters
  • provider_type – ‘push’, ‘email’ or ‘sms

  • provider_name – the name of the provider configuration

Returns

the instantiated provider with already loaded configuration

linotp.provider.loadProviderFromPolicy(provider_type, realm=None, user=None)

interface for the provider user like email token or sms token

Parameters
  • provider_type – ‘push’, ‘email’ or ‘sms

  • user – the user, who should receive the message, used for the policy lookup

Returns

the instantiated provider with already loaded config

linotp.provider.load_provider_classes()

iterates through the modules in this package and import every single one of them. This will trigger the registration of the providers in the global provider_registry (s.o.), which registers all available provider classes

Sideeffect

the classes in the submodules are registrated in the provider registry

linotp.provider.load_provider_ini(ini_file)

load the provider from a ini config file format

linotp.provider.parse_default_provider(provider_type, composite_key, value)

Sets the attribute pair {default: True} to the default provider in the tree.

Parameters

provider_type – A string identifier (such as ‘sms’, ‘email’, etc)

linotp.provider.parse_legacy_provider(provider_type, composite_key, value)

Parses legacy provider data from a config entry

Parameters

provider_prefix – A short provider prefix (such as ‘SMSProvider’, ‘PushProvider’ - all without the leading ‘linotp.’)

linotp.provider.parse_provider(provider_type, composite_key, value)

Parses provider data from a config entry

Parameters

provider_prefix – A short provider prefix (such as ‘SMSProvider’, ‘PushProvider’ - all without the leading ‘linotp.’)

linotp.provider.save_legacy_provider(provider_type, params)

save the provider to the legacy format

Parameters
  • provider_type – push, sms or email provider

  • params – the provider description dict with ‘class’, ‘config’ and ‘timeout’

linotp.provider.save_new_provider(provider_type, provider_name, params)

save the provider in the new provider format

remarks:

alternative to storing the whole config in encrypted way, we might look if it’s a json and store the next Config. level and look for the reserved additional appended type: encrypted_data

Parameters
  • provider_type – push, sms or email provider

  • provider_name – the name of the provider

  • params – the provider description dict with ‘class’, ‘config’, and ‘timeout’

linotp.provider.setDefaultProvider(provider_type, provider_name)

interface to set the default provider wo. storing the provider

Parameters
  • provider_type – the type of the provider: sms or email

  • provider_name – the name of the provider - must exist

Returns

boolean, success of storing default provider information

linotp.provider.setProvider(params)

save the provider info in linotp config

Parameters

params – generic parameter dictionary to support later more complex provider definitions in the dictionary currently required keys are :param type: push,sms or email :param name: the provider name :param config: the provider config :param timeout: the provider timeout :param: default: boolean

Returns

success - boolean

Subpackages