.. _#ug-appendix-auxilliary-modules:

33. Auxiliary Modules
=======================

The AMPS distribution provides several modules that extend AMPS with
optional behavior. These modules are not loaded by default.

In this release, AMPS includes auxiliary modules that provide the
following functionality:

-  User-defined functions

   AMPS includes the ``libamps_udf_legacy_compatibility`` module that
   provides date and time handling functions similar to those provided
   by legacy messaging systems.

   AMPS provides a ``libamps_udf_experimental`` module that contains
   special-purpose functions.

-  SOW Key generation

   AMPS includes the ``libamps_id_chaining_generator`` module that
   provides chained SOW key generation.

-  Authentication and Entitlement

   AMPS includes several modules to help you implement an authentication
   and entitlement system.

   * The ``libamps_http_entitlement`` module makes requests to an
     external web service to validate authentication credentials and
     retrieve the set of applicable entitlements. With this module,
     you can provide both authentication and entitlement infrastructure.

   * The ``libamps_multi_authentication`` module supports multi-mechanism
     authentication. In this release, the module supports both LDAP
     and Kerberos. This module does not provide an entitlements
     implementation.

   * The ``libamps_simple_access_entitlement`` module restricts access
     to specific resources. This module is most often used to provide
     limited access to the AMPS Admin console. This module does not
     provide an authentication implementation, and does not consider
     individual user entitlements -- the restrictions applied by
     this module apply to all users.

-  Authenticators

     * AMPS includes a module, ``libamps_multi_authenticator``,  to provide
       credentials for outgoing replication connections. Notice that the default
       authenticator module, which is automatically loaded, can also be
       configured to provide credentials.

     * AMPS includes a module, ``libamps_exec_authenticator``,  that 
       executes an external application and provides the output of
       that process as the credentials for an outgoing replication
       connection.

The auxiliary modules are described in more detail the following sections.

.. include:: ./legacy_messaging_functions_module.inc
.. include:: ./experimental_udf.inc
.. include:: ./chaining_key_generator_module.inc
.. _#ug-auth-module:

.. include:: ./http_auth_module.inc
..  _#ug-multi-authentication:
.. include:: ./multi_authentication_module.inc
.. include:: ./simple_access_module.inc
.. _#ug-multi-authenticator:

.. include:: ./multi_authenticator_module.inc
..  _#ug-exec-authenticator:

.. include:: ./exec_authenticator_module.inc
