.. _appendix:

付録
****

.. _apache config sample:

Apache HTTP サーバーの設定ファイルの例
=======================================

Apache HTTP サーバーをリバースプロキシサーバーとし、Unicorn ID Manager と連携する設定のサンプルファイルです。

設定の詳細に関しては `Apacheの公式ドキュメント`_ を参考にしてください。

.. literalinclude:: ../rpm/apache/httpd.conf
   :language: apacheconf
   :caption: /etc/httpd/conf/httpd.conf

.. note::
   上記の設定ファイルではサーバーのホスト名は ``uidm.example.com`` として設定されています。実際に利用する際は、適切なホスト名に書き換えてください。

.. note::
   上記の設定ファイルではサーバー証明書に ``/etc/pki/tls/certs/localhost.crt`` と ``/etc/pki/tls/private/localhost.key`` が設定されています。実際に利用する際は、適切な証明書ファイルに書き換えてください。

.. literalinclude:: ../rpm/apache/ssl.conf
   :language: apacheconf
   :caption: /etc/httpd/conf.d/ssl.conf

.. _Apacheの公式ドキュメント: https://httpd.apache.org/docs/current/

.. _uwsgi stand alone config sample:

uWSGIをHTTPサーバーとして動作させる場合の設定例
===============================================

Apache HTTP サーバーを利用せず、uWSGI単独でUnicorn ID Managerを動作させる設定のサンプルファイルです。

設定の詳細に関しては `uWSGI公式ドキュメント`_ を参考にしてください。

.. literalinclude:: ../docker/unicornidm/share/uwsgi_standalone.conf
   :language: ini
   :caption: /opt/osstech/etc/unicornidm/uwsgi.conf

.. note::
   上記の設定ファイルではサーバー証明書に ``/opt/osstech/etc/unicornidm/secrets/certs.pem`` と ``/opt/osstech/etc/unicornidm/secrets/key.pem`` が設定されています。実際に利用する際は、適切な証明書ファイルに書き換えてください。

.. _uWSGI公式ドキュメント: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html

.. _activedirectory certificate service install guide:

ActiveDirectory証明書サービスインストールガイド
===============================================

.. only:: html

  * [PDF] `ActiveDirectory証明書サービスインストールガイド <appendix/ActiveDirectory証明書サービスインストールガイド.pdf>`_

.. _selinux setup guide:

SELinuxが有効な環境でUnicorn ID Managerを利用する手順
=====================================================

SELinuxが有効な環境下でUnicorn ID Managerを利用する場合は、いくつか設定を行う必要があります。
必要な手順を以下に示します。

.. _selinux setup overview:

手順概要
--------

手順概要としては以下のとおりです。

* uWSGIの動作モード変更
* SELinuxの設定

.. _selinux setup uwsgi config:

uWSGIの動作モード変更
---------------------

Unicorn ID Managerのデフォルト構成では Apache HTTP サーバー と uWSGI は Unixドメインソケットを介して通信します。
ですが、SELinuxが有効な環境下ではこの通信がブロックされるため、TCPソケットを介してい通信するように設定を変更します。

``/opt/osstech/etc/unicornidm/uwsgi.conf`` を以下のように設定します。

.. literalinclude:: ../docker/unicornidm/share/uwsgi_tcp.conf
   :language: ini
   :caption: /opt/osstech/etc/unicornidm/uwsgi.conf

また、Apache にて ProxyPass の設定を行っている箇所を以下のように変更します。

.. code-block:: apache

  # 変更前
  #ProxyPass /unicornidm unix:/opt/osstech/var/run/unicornidm/uwsgi.sock|uwsgi://localhost/unicornidm retry=1

  # 変更後
  ProxyPass /unicornidm http://localhost:8080/unicornidm retry=1
  ProxyPassReverse /unicornidm http://localhost:8080/unicornidm

設定完了後、Apache HTTP サーバーおよび osstech-unicornidm を再起動します。

.. code-block:: console

   # systemctl restart httpd
   # systemctl restart osstech-unicornidm

.. _selinux setup selinux config:

SELinuxの設定
-----------------

SELinuxの設定を行います。
リバースプロキシ先への通信を許可するための Policy booleans が Apache によってあらかじめ用意されているため、
これを有効化することで uWSGI への通信を許可します。

Policy booleans の設定には ``setsebool`` コマンドを、
Policy booleans の現在の設定状態の確認には ``getsebool`` コマンドを使用します。

コマンドがインストールされていない場合は、 ``policycoreutils`` と ``libselinux-utils`` パッケージをインストールしてください。

.. code-block:: console

   # yum install policycoreutils libselinux-utils

``httpd_can_network_relay`` という Policy booleans を有効化します。

.. code-block:: console

   # getsebool httpd_can_network_relay
   httpd_can_network_relay --> off

   # setsebool -P httpd_can_network_relay on

   # getsebool httpd_can_network_relay
   httpd_can_network_relay --> on

サーバーの再起動やサービスの再起動は不要です。
設定変更後、Unicorn ID Managerの管理画面にアクセス出来ることを確認してください。
