mirror of https://github.com/OpenKMIP/PyKMIP.git
Merge pull request #379 from OpenKMIP/feat/update-client-docs
Updating the client documentation with configuration info
This commit is contained in:
commit
7895d4c820
|
@ -3,6 +3,121 @@ Client
|
||||||
The PyKMIP client allows developers to connect to a KMIP-compliant key
|
The PyKMIP client allows developers to connect to a KMIP-compliant key
|
||||||
management server and conduct key management operations.
|
management server and conduct key management operations.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
-------------
|
||||||
|
The client settings can be managed by a configuration file, by default
|
||||||
|
located at ``/etc/pykmip/pykmip.conf``. An example client configuration
|
||||||
|
settings block, as found in the configuration file, is shown below:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
[client]
|
||||||
|
host=127.0.0.1
|
||||||
|
port=5696
|
||||||
|
certfile=/path/to/certificate/file
|
||||||
|
keyfile=/path/to/certificate/key/file
|
||||||
|
ca_certs=/path/to/ca/certificate/file
|
||||||
|
cert_reqs=CERT_REQUIRED
|
||||||
|
ssl_version=PROTOCOL_SSLv23
|
||||||
|
do_handshake_on_connect=True
|
||||||
|
suppress_ragged_eofs=True
|
||||||
|
username=example_username
|
||||||
|
password=example_password
|
||||||
|
|
||||||
|
The configuration file can contain multiple settings blocks. Only one,
|
||||||
|
``[client]``, is shown above. You can swap between different settings
|
||||||
|
blocks by simply providing the name of the block as the ``config``
|
||||||
|
parameter (see below).
|
||||||
|
|
||||||
|
The client can also be configured manually via Python. The following example
|
||||||
|
shows how to create the ``ProxyKmipClient`` in Python code, directly
|
||||||
|
specifying the different configuration values:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
>>> import ssl
|
||||||
|
>>> from kmip.pie.client import ProxyKmipClient
|
||||||
|
>>> client = ProxyKmipClient(
|
||||||
|
... hostname='127.0.0.1',
|
||||||
|
... port=5696,
|
||||||
|
... cert='/path/to/certificate/file',
|
||||||
|
... key='/path/to/certificate/key/file',
|
||||||
|
... ca='/path/to/ca/certificate/file',
|
||||||
|
... ssl_version=ssl.PROTOCOL_SSLv23,
|
||||||
|
... username='example_username',
|
||||||
|
... password='example_password'
|
||||||
|
... config='client'
|
||||||
|
... )
|
||||||
|
|
||||||
|
Settings specified at runtime, as in the above example, will take precedence
|
||||||
|
over the default values found in the configuration file.
|
||||||
|
|
||||||
|
The different configuration options are defined below:
|
||||||
|
|
||||||
|
* ``host``
|
||||||
|
A string representing either a hostname in Internet domain notation or an
|
||||||
|
IPv4 address.
|
||||||
|
* ``port``
|
||||||
|
An integer representing a port number. Recommended to be ``5696``
|
||||||
|
according to the KMIP specification.
|
||||||
|
* ``certfile``
|
||||||
|
A string representing a path to a PEM-encoded client certificate file. For
|
||||||
|
more information, see the `ssl`_ documentation.
|
||||||
|
* ``keyfile``
|
||||||
|
A string representing a path to a PEM-encoded client certificate key file.
|
||||||
|
The private key contained in the file must correspond to the certificate
|
||||||
|
pointed to by ``certfile``. For more information, see the `ssl`_
|
||||||
|
documentation.
|
||||||
|
* ``ca_certs``
|
||||||
|
A string representing a path to a PEM-encoded certificate authority
|
||||||
|
certificate file. This certificate will be used to verify the server's
|
||||||
|
certificate when establishing a TLS connection. For more information, see
|
||||||
|
the `ssl`_ documentation.
|
||||||
|
* ``cert_reqs``
|
||||||
|
A flag indicating the enforcement level to use when validating the
|
||||||
|
certificate received from the server. Options include: ``CERT_NONE``,
|
||||||
|
``CERT_OPTIONAL``, and ``CERT_REQUIRED``. ``CERT_REQUIRED`` is the most
|
||||||
|
secure option and should be used at all times. The other options can be
|
||||||
|
helpful when debugging TLS connections. For more information, see the
|
||||||
|
`ssl`_ documentation.
|
||||||
|
* ``ssl_version``
|
||||||
|
A flag indicating the SSL/TLS version to use when establishing a TLS
|
||||||
|
connection with a server. Options are derived from the `ssl`_ module.
|
||||||
|
The recommended value is ``PROTOCOL_SSLv23`` or ``PROTOCOL_TLS``, which
|
||||||
|
automatically allows the client to pick the most secure option provided
|
||||||
|
by the server. For more information, see the `ssl`_ documentation.
|
||||||
|
* ``do_handshake_on_connect``
|
||||||
|
A boolean flag indicating when the client should perform the TLS handshake
|
||||||
|
when establishing the TLS connection. The recommended value is ``True``.
|
||||||
|
For more information, see the `ssl`_ documentation.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
This configuration option is deprecated and will be removed in a future
|
||||||
|
version of PyKMIP.
|
||||||
|
* ``suppress_ragged_eofs``
|
||||||
|
A boolean flag indicating how the client should handle unexpected EOF from
|
||||||
|
the TLS connection. The recommended value is ``True``. For more
|
||||||
|
information, see the `ssl`_ documentation.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
This configuration option is deprecated and will be removed in a future
|
||||||
|
version of PyKMIP.
|
||||||
|
* ``username``
|
||||||
|
A string representing the username to use for KMIP requests. Optional
|
||||||
|
depending on server access policies. Leave blank if not needed.
|
||||||
|
* ``password``
|
||||||
|
A string representing the password to use for KMIP requests. Optional
|
||||||
|
depending on server access policies. Leave blank if not needed.
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
The following class documentation provides numerous examples detailing how to
|
||||||
|
use the client. For additional examples, demo scripts for different operations
|
||||||
|
are available in the ``kmip/demos/pie`` directory.
|
||||||
|
|
||||||
|
Class Documentation
|
||||||
|
-------------------
|
||||||
.. py:module:: kmip.pie.client
|
.. py:module:: kmip.pie.client
|
||||||
|
|
||||||
.. py:class:: ProxyKmipClient(hostname=None, port=None, cert=None, key=None, ca=None, ssl_version=None, username=None, password=None, config='client')
|
.. py:class:: ProxyKmipClient(hostname=None, port=None, cert=None, key=None, ca=None, ssl_version=None, username=None, password=None, config='client')
|
||||||
|
@ -972,3 +1087,6 @@ management server and conduct key management operations.
|
||||||
.. py:method:: mac(data, uid=None, algorithm=None)
|
.. py:method:: mac(data, uid=None, algorithm=None)
|
||||||
|
|
||||||
Documentation coming soon.
|
Documentation coming soon.
|
||||||
|
|
||||||
|
|
||||||
|
.. _`ssl`: https://docs.python.org/dev/library/ssl.html#socket-creation
|
||||||
|
|
Loading…
Reference in New Issue