summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Robie <jonathan@apache.org>2010-05-18 20:34:51 +0000
committerJonathan Robie <jonathan@apache.org>2010-05-18 20:34:51 +0000
commit8369bf17e5339db674df1ffa95247205c36763f6 (patch)
tree21ad5df80a80ea2bec726f1e92e9df026625ba50
parentb178a0dce4a6cffbdc6c1d2b56eb6d828775dd0c (diff)
downloadqpid-python-8369bf17e5339db674df1ffa95247205c36763f6.tar.gz
Added section on security.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@945872 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/doc/book/src/Programming-In-Apache-Qpid.xml93
1 files changed, 90 insertions, 3 deletions
diff --git a/qpid/doc/book/src/Programming-In-Apache-Qpid.xml b/qpid/doc/book/src/Programming-In-Apache-Qpid.xml
index 8971a7befc..178f252172 100644
--- a/qpid/doc/book/src/Programming-In-Apache-Qpid.xml
+++ b/qpid/doc/book/src/Programming-In-Apache-Qpid.xml
@@ -1920,12 +1920,99 @@ try {
</section>
-<!--
+
<section>
- <title>Security ####</title>
+ <title>Security</title>
+
+ <para>Qpid provides authentication, rule-based authorization, encryption, and digital signing.</para>
+
+ <para>Authentication is done using Simple Authentication and
+ Security Layer (SASL) to authenticate client connections to the
+ broker. SASL is a framework that supports a variety of
+ authentication methods. For secure applications, we suggest
+ CRAM-MD5, DIGEST-MD5, or GSSAPI (Kerberos). The ANONYMOUS method
+ is not secure. The PLAIN method is secure only when used
+ together with SSL.</para>
+
+ <para>To enable Kerberos in a client, set the <varname>sals-mechanism</varname> connection option to <literal>GSSAPI</literal>:</para>
+
+
+ <programlisting>
+Connection connection(broker);
+connection.setOption("sasl-mechanism", "GSSAPI");
+try {
+ connection.open();
+ ...
+ </programlisting>
+
+ <para>For Kerberos authentication, if the user running the
+ program is already authenticated, e.g. using
+ <command>kinit</command>, there is no need to supply a user name
+ or password. If you are using another form of authentication, or are not already authenticated with Kerberos, you can supply these as connection options:</para>
+
+ <programlisting>
+connection.setOption("username", "mick");
+connection.setOption("password", "pa$$word");
+ </programlisting>
+
+ <para>Encryption and signing are done using SSL (they can also be done using SASL, but SSL provides stronger encryption). To enable SSL, set the <varname>protocol</varname> connection option to <literal>ssl</literal>:</para>
+
+ <programlisting>
+connection.setOption("protocol", "ssl");
+ </programlisting>
+
+ <para>Use the following environment variables to configure the SSL client:</para>
+
+ <table>
+ <title>SSL Client Environment Variables for C++ clients</title>
+ <tgroup align="left" cols="2" colsep="1" rowsep="1">
+ <colspec colname="c1"></colspec>
+ <colspec colname="c2"></colspec>
+ <thead>
+ <row>
+ <entry align="center" nameend="c2" namest="c1">
+ SSL Client Options for C++ clients
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <command>SSL_USE_EXPORT_POLICY</command>
+ </entry>
+ <entry>
+ Use NSS export policy
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <command>SSL_CERT_PASSWORD_FILE <replaceable>PATH</replaceable></command>
+ </entry>
+ <entry>
+ File containing password to use for accessing certificate database
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <command>SSL_CERT_DB <replaceable>PATH</replaceable></command>
+ </entry>
+ <entry>
+ Path to directory containing certificate database
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <command>SSL_CERT_NAME <replaceable>NAME</replaceable></command>
+ </entry>
+ <entry>
+ Name of the certificate to use. When SSL client authentication is enabled, a certificate name should normally be provided.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
</section>
--->
<section>
<title>Transactions</title>