<?Pub UDT _bookmark _target?><?Pub CX solbook(?><chapter id="sasl-1"><?Pub Tag atict:info tracking="off" ref="0"?><?Pub Tag atict:user
user="sharonr" fullname="Sharon Veach"?><?Pub Tag atict:user user="kathys"
fullname="Kathy Slattery"?><title>Using SASL</title><highlights><para>This chapter includes information about the Simple Authentication and
Security Layer (SASL).</para><itemizedlist><listitem><para><olink targetptr="egytb" remap="internal">SASL (Overview)</olink></para>
</listitem><listitem><para><olink targetptr="egyrr" remap="internal">SASL (Reference)</olink></para>
</listitem>
</itemizedlist>
</highlights><sect1 id="egytb"><title>SASL (Overview)</title><indexterm><primary>SASL</primary><secondary>overview</secondary>
</indexterm><indexterm><primary><filename>/usr/lib/libsasl.so</filename> library</primary><secondary>overview</secondary>
</indexterm><indexterm><primary>new features</primary><secondary>SASL</secondary>
</indexterm><para>The Simple Authentication and Security Layer (SASL) is a framework that
provides authentication and optional security services to network protocols.
 An application calls the SASL library, <filename>/usr/lib/libsasl.so</filename>,
which provides a glue layer between the application and the various SASL mechanisms.
The mechanisms are used in the authentication process and in providing optional
security services. The version of SASL delivered with the Solaris 10 release
is derived from the Cyrus SASL with a few changes.</para><itemizedlist><para>SASL provides the following services:</para><listitem><para>Loading of any plug-ins</para>
</listitem><listitem><para>Determining the necessary security options from the application
to aid in the choice of a security mechanism</para>
</listitem><listitem><para>Listing of plug-ins that are available to the application</para>
</listitem><listitem><para>Choosing the best mechanism from a list of available mechanisms
for a particular authentication attempt</para>
</listitem><listitem><para>Routing the authentication data between the application and
the chosen mechanism</para>
</listitem><listitem><para>Providing information about the SASL negotiation back to the
application</para>
</listitem>
</itemizedlist>
</sect1><sect1 id="egyrr"><title>SASL (Reference)</title><para>The following section provides information about the implementation
of SASL for the Solaris 10 release.</para><sect2 id="etfbp"><title>SASL Plug-ins</title><indexterm><primary>SASL</primary><secondary>plug-ins</secondary>
</indexterm><indexterm><primary>plugins</primary><secondary>SASL and</secondary>
</indexterm><para>SASL plug-ins provide support for security mechanisms, user-canonicalization,
and auxiliary property retrieval.  By default, the dynamically loaded 32-bit
plug-ins are installed in <filename>/usr/lib/sasl</filename>, and the 64-bit
plug-ins are installed in <filename>/usr/lib/sasl/<replaceable>$ISA</replaceable></filename>.
The following security mechanism plug-ins are provided in the Solaris 10 release:</para><variablelist><varlistentry><indexterm><primary><filename>crammd5.so.1</filename> plug-in</primary><secondary>SASL and</secondary>
</indexterm><term><filename>crammd5.so.1</filename></term><listitem><para>CRAM-MD5, which supports authentication only, no authorization</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><filename>digestmd5.so.1</filename> plug-in</primary><secondary>SASL and</secondary>
</indexterm><term><filename>digestmd5.so.1</filename></term><listitem><para>DIGEST-MD5, which supports authentication, integrity, and
privacy, as well as authorization</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><filename>gssapi.so.1</filename> plug-in</primary><secondary>SASL and</secondary>
</indexterm><term><filename>gssapi.so.1</filename></term><listitem><para>GSSAPI, which supports authentication, integrity, and privacy,
as well as authorization. The GSSAPI security mechanism requires a functioning
Kerberos infrastructure.</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><filename>plain.so.1</filename> plug-in</primary><secondary>SASL and</secondary>
</indexterm><term><filename>plain.so.1</filename></term><listitem><para>PLAIN, which supports authentication and authorization.</para>
</listitem>
</varlistentry>
</variablelist><para><indexterm><primary>INTERNAL plug-in</primary><secondary>SASL and</secondary></indexterm><indexterm><primary>EXTERNAL security mechanism plug-in</primary><secondary>SASL and</secondary></indexterm>In addition, the EXTERNAL security
mechanism plug-in and the INTERNAL user canonicalization plug-ins are built
into <filename>libsasl.so.1</filename>.  The EXTERNAL mechanism supports authentication
and authorization. The mechanism supports integrity and privacy if the external
security source provides it. The INTERNAL plug-in adds the realm name if necessary
to the username.</para><para>The Solaris 10 release is not supplying any <literal>auxprop</literal> plug-ins
at this time.  For the CRAM-MD5 and DIGEST-MD5 mechanism plug-ins to be fully
operational on the server side, the user must provide an <literal>auxprop</literal> plug-in
to retrieve clear text passwords.  The PLAIN plug-in requires additional support
to verify the password. The support for password verification can be one of
the following: a callback to the server application, an <literal>auxprop</literal> plug-in, <literal>saslauthd</literal>, or <literal>pwcheck</literal>. The <command>salauthd</command> and <command>pwcheck</command> daemons are not provided in the Solaris releases. For better
interoperability, restrict server applications to those mechanisms that are
fully operational by using the <option role="nodash">mech_list</option> SASL
option.</para>
</sect2><sect2 id="egyrs"><title>SASL Environment Variable</title><indexterm><primary>SASL</primary><secondary>environment variable</secondary>
</indexterm><para>By default, the client authentication name is set to <literal>getenv("LOGNAME")</literal>. This variable can be reset by the client or by the plug-in.</para>
</sect2><sect2 id="egyrt"><title>SASL Options</title><indexterm><primary>SASL</primary><secondary>options</secondary>
</indexterm><para>The behavior of <filename>libsasl</filename> and the plug-ins can be
modified on the server side by using options that can be set in the <filename>/etc/sasl/<replaceable>app</replaceable>.conf</filename> file. The variable <replaceable>app</replaceable> is
the server-defined name for the application. The documentation for the server <replaceable>app</replaceable> should specify the application name.</para><para>The following options are supported in the Solaris 10 release:</para><variablelist><varlistentry><indexterm><primary><option role="nodash">auto_transition</option> option</primary><secondary>SASL and</secondary>
</indexterm><term><option role="nodash">auto_transition</option></term><listitem><para>Automatically transitions the user to other mechanisms when
the user does a successful plain text authentication.</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><option role="nodash">auxprop_login</option> option</primary><secondary>SASL and</secondary>
</indexterm><term><option role="nodash">auxprop_login</option></term><listitem><para>Lists the name of auxiliary property plug-ins to use.</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><option role="nodash">canon_user_plugin</option> option</primary><secondary>SASL and</secondary>
</indexterm><term><option role="nodash">canon_user_plugin</option></term><listitem><para>Selects the canon_user plug-in to use.</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><option role="nodash">mech_list</option> option</primary><secondary>SASL and</secondary>
</indexterm><term><option role="nodash">mech_list</option></term><listitem><para>Lists the mechanisms that are allowed to be used by the server
application.</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><option role="nodash">pwcheck_method</option> option</primary><secondary>SASL and</secondary>
</indexterm><term><option role="nodash">pwcheck_method</option></term><listitem><para>Lists the mechanisms used to verify passwords. Currently, <literal>auxprop</literal> is the only allowed value.</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><option role="nodash">reauth_timeout</option> option</primary><secondary>SASL and</secondary>
</indexterm><term><option role="nodash">reauth_timeout</option></term><listitem><para>Sets the length of time, in minutes, that authentication information
is cached for a fast reauthentication. This option is used by the DIGEST-MD5
plug-in. Setting this option to 0 disables reauthentication.</para>
</listitem>
</varlistentry>
</variablelist><para>The following options are not supported in the Solaris 10 release:</para><variablelist><varlistentry><indexterm><primary><option role="nodash">plugin_list</option> option</primary><secondary>SASL and</secondary>
</indexterm><term><option role="nodash">plugin_list</option></term><listitem><para>Lists available mechanisms. Not used because the option changes
the behavior of the dynamic loading of plugins.</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><option role="nodash">saslauthd_path</option> option</primary><secondary>SASL and</secondary>
</indexterm><term><option role="nodash">saslauthd_path</option></term><listitem><para>Defines the location of the saslauthd door, which is used
for communicating with the <command>saslauthd</command> daemon. The <command>saslauthd</command> daemon is not included in the Solaris 10 release. So, this option
is also not included.</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><option role="nodash">keytab</option> option</primary><secondary>SASL and</secondary>
</indexterm><term><option role="nodash">keytab</option></term><listitem><para>Defines the location of the <filename>keytab</filename> file
used by the GSSAPI plug-in. Use the <envar>KRB5_KTNAME</envar> environment
variable instead to set the default <filename>keytab</filename> location.</para>
</listitem>
</varlistentry>
</variablelist><para>The following options are options not found in Cyrus SASL. However,
they have been added for the Solaris 10 release:</para><variablelist><varlistentry><indexterm><primary><option role="nodash">use_authid</option> option</primary><secondary>SASL and</secondary>
</indexterm><term><option role="nodash">use_authid</option></term><listitem><para>Acquire the client credentials rather than use the default
credentials when creating the GSS client security context. By default, the
default client Kerberos identity is used.</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><option role="nodash">log_level</option> option</primary><secondary>SASL and</secondary>
</indexterm><term><option role="nodash">log_level</option></term><listitem><para>Sets the desired level of logging for a server.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
</chapter><?Pub *0000011350 0?>