<commit_before>MultiAuth module
================

The MultiAuth module provides a method for authenticating users agains
a list of authentication sources. There is only one authentication
module:

`multiauth:MultiAuth`
: Authenticate the user against a list of authentication sources.


`multiauth:MultiAuth`
---------------------

This module is useful when you want to let the users decide which
authentication source fits better their needs at any scenario. For
example, they can choose the `saml` authentication source in most
cases and then switch to the `admin` authentication source when
'saml' is down for some reason.

To create a MultiAuth authentication source, open
`config/authsources.php` in a text editor, and add an entry for the
authentication source:

    'example-multi' => array(
        'multiauth:MultiAuth',

        /*
         * The available authentication sources.
         * They must be defined in this authsources.php file.
         */
        'sources' => array('example-saml', 'example-admin'),
    ),

    'example-saml' => array(
        'saml:SP',
        'entityId' => 'my-entity-id',
        'idp' => 'my-idp',
    ),

    'example-admin' => array(
        'core:AdminPassword',
    ),

You should update the name of this authentication source
(`example-multi`), and the authentication sources it references,
to have a name which makes sense to your organization.

The MultiAuth authentication sources only has an option: the
`sources` option, and it is required. It is an array of other
authentication sources defined in the `config/authsources.php`
file. The order in this array does not matter since the user
is the one that decides which one to use.
<commit_msg>Multiauth: Minor update to documentation<commit_after>MultiAuth module
================

The MultiAuth module provides a method for users to choosebetween
a list of authentication sources. There is only one authentication
module:

`multiauth:MultiAuth`
: Authenticate the user against a list of authentication sources.


`multiauth:MultiAuth`
---------------------

This module is useful when you want to let the users decide which
authentication source fits better their needs at any scenario. For
example, they can choose the `saml` authentication source in most
cases and then switch to the `admin` authentication source when
'saml' is down for some reason.

To create a MultiAuth authentication source, open
`config/authsources.php` in a text editor, and add an entry for the
authentication source:

    'example-multi' => array(
        'multiauth:MultiAuth',

        /*
         * The available authentication sources.
         * They must be defined in this authsources.php file.
         */
        'sources' => array('example-saml', 'example-admin'),
    ),

    'example-saml' => array(
        'saml:SP',
        'entityId' => 'my-entity-id',
        'idp' => 'my-idp',
    ),

    'example-admin' => array(
        'core:AdminPassword',
    ),

You should update the name of this authentication source
(`example-multi`), and the authentication sources it references,
to have a name which makes sense to your organization.

The MultiAuth authentication sources only has an option: the
`sources` option, and it is required. It is an array of other
authentication sources defined in the `config/authsources.php`
file. The order in this array does not matter since the user
is the one that decides which one to use.

I is possible to add the parameter `source` to the calling URL, 
when accessing a service, to allow the user to preselect the
authsource to be used. This can be handy if you support different
authentication types for differen types of users and you want the 
users to have a direct link to the service and not want them to 
select the correct authentication source.

For example:

    htttps://example.com/service/?source=saml
    
will take you directly to the SAML authentication source, instead 
of hitting the multiauth select page.
{'fraction_non_alphanumeric': 0.08575031525851198, 'fraction_numerical': 0.0, 'mean_word_length': 3.476297968397291, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '231927', 'n_tokens_mistral': 1018, 'n_tokens_neox': 999, 'n_words': 498}