<?xml version="1.0"?>
<!--

 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.

-->

<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="Java-Broker-Management-Managing-Authentication-Providers">
    <title>Authentication Providers</title>
    <para>
        <link linkend="Java-Broker-Concepts-Authentication-Providers">Authentication
            Providers</link> are used by <link linkend="Java-Broker-Concepts-Ports">Ports</link> to
        authenticate connections.</para>
    <para>See <xref linkend="Java-Broker-Security-Authentication-Providers"/></para>

    <section xml:id="Java-Broker-Management-Managing-Authentication-Providers-Types">
        <title>Types</title>
        <para> The following authentication providers are supported:
            <itemizedlist>
                <listitem><para><link linkend="Java-Broker-Security-Anonymous-Provider">Anonymous</link>: allows anonymous connections to the
                    Broker</para></listitem>
                <listitem><para><link linkend="Java-Broker-Security-External-Provider">External</link>: delegates to external mechanisms such as SSL Client
                        Certificate Authentication</para></listitem>
                <listitem><para><link linkend="Java-Broker-Security-Kerberos-Provider">Kerberos</link>: uses Kerberos to authenticate connections via
                        GSS-API.</para></listitem>
                <listitem><para><link linkend="Java-Broker-Security-LDAP-Provider">SimpleLDAP</link>: authenticate users against an LDAP
                    server.</para></listitem>
                <listitem><para><link linkend="Java-Broker-Security-OAuth2-Provider">OAuth2</link>: authenticate users against a OAuth2 Authorization
                    Server.</para></listitem>
                <listitem><para><link linkend="Java-Broker-Security-ScramSha-Providers">ScramSha</link>: authenticate users against credentials stored in a
                        local database</para></listitem>
                <listitem><para><link linkend="Java-Broker-Security-Plain-Provider">Plain</link>: authenticate users against credentials stored in a local
                            database.</para></listitem>
                <listitem><para><link linkend="Java-Broker-Security-PlainPasswordFile-Provider">PlainPasswordFile</link>: authenticate users against credentials stored
                        in plain text in a local file.</para></listitem>
                <listitem><para><link linkend="Java-Broker-Security-MD5-Provider">MD5</link>: authenticate users against credentials
                        stored in a local database.</para></listitem>
                <listitem><para><link linkend="Java-Broker-Security-Base64MD5PasswordFile-Provider">Base64MD5PasswordFile</link>: authenticate users against credentials
                        stored encoded in a local file.</para></listitem>
            </itemizedlist>
            </para>
            <para>The last five providers offer user management facilities too, that is, users can
                be created, deleted and passwords reset.</para>
    </section>

    <section xml:id="Java-Broker-Management-Managing-Authentication-Providers-Attributes">
        <title>Attributes</title>
        <para>
            <itemizedlist>
                <listitem>
                    <para><emphasis>Name the authentication provider</emphasis>.</para>
                </listitem>
            </itemizedlist>
        </para>
        <para>Other attributes are provider specific.</para>
    </section>
    <section xml:id="Java-Broker-Management-Managing-Authentication-Providers-Children">
        <title>Children</title>
        <para>None</para>
    </section>
    <section xml:id="Java-Broker-Management-Managing-Authentication-Providers-Lifecycle">
        <title>Lifecycle</title>
        <para>Not supported</para>
        <important>
            <para>When updating an existing authentication provider, changes become effective until
                the Broker is restarted.</para>
        </important>
    </section>
</section>
