unicornidm.conf
===================

概要
-----

::

    unicornidm.conf

説明
------

:file:`unicornidm.conf` は Unicorn ID Manager の設定ファイルです。このファイルは Python
の configparser モジュールを利用して読み込まれます。 configparser モジュールの詳細
については、 https://docs.python.org/3/library/configparser.html をご覧ください。

:file:`unicornidm.conf` は大きく分けて次のセクションで構成されています。

メインセクション
    Unicorn ID Manager サービス全体に及ぶ設定を記述するセクションです。

ターゲットセクション
    ターゲットに関するセクションです。ターゲットがどのバックエンドに紐付いているか、
    どのようなパスワードポリシーを適用するかを定義します。

バックエンドセクション
    バックエンドに関するセクションです。バックエンドへの接続用パラメーターなどを
    定義します。バックエンドセクションはバックエンドの *type* によって設定パラメーター
    が異なります。なお、バックエンドセクションにはかならずテンプレートファイルが
    必要になります。テンプレートファイルは :file:`unicornidm.conf` と同じディレクトリにある、
    :file:`templates/` ディレクトリ内に、 :file:`{backend-name}.py` のファイル名で登録します。
    :file:`{backend-name}` はバックエンドの名前です。

SCIM 属性マッピングセクション
    SCIM 属性と任意に定義したフロントエンド属性 (Unicorn ID Manager で使用する属性) との
    マッピングのためのセクションです。

クライアントセクション
    Unicorn ID Manager に付属する :doc:`unicornidm-tool` で使用されるセクションです。

メインセクション
-----------------

メインセクションは [__main__] という名前のセクションで定義されます。
ここでは以下のパラメーターを定義できます。

.. envvar:: debug_level

    Unicorn ID Manager のデバッグレベルを定義します。定義可能な値は以下のとおりです。

    ::

        DEBUG           すべてのデバッグログを出力
        INFO            DEBUG を除いたデバッグログを出力
        WARNING         DEBUG, INFO を除いたデバッグログを出力
        ERROR           DEBUG, INFO, WARNING を除いたデバッグログを出力
        CRITICAL        DEBUG, INFO, WARNING, ERROR を除いたデバッグログを出力

.. envvar:: debug_file

    Unicorn ID Manager のデバッグ情報を出力するファイルパスを定義します。

.. envvar:: targets

    ターゲット一覧をカンマ区切りで定義します。ターゲット文字列内に **:** を含む場合、
    **:** の左側がシステムで利用するためのターゲット名になり、
    右側の文字列はターゲットの表示名になります。システムで利用するターゲット名は
    URL 等に利用されます。ターゲットの表示名は管理画面のダッシュボード上で
    ターゲットを表示するために利用されます。
    **:** を含まない場合、システムで利用するターゲット名とターゲットの表示名は同一になります。

.. envvar:: session_time_out

    ログインしたアカウントのセッションタイムアウト (単位: 秒) を定義します。
    デフォルト値は 3600 です。

.. envvar:: password_cache_duration

    ランダム生成されたパスワードを保持する期間 (単位: 秒) を設定します。
    デフォルト値は 86400 です。

.. envvar:: items_per_page

    ユーザーやグループの一覧取得時に出力する項目数を指定します。
    デフォルト値は 20 です。

.. envvar:: multi_valued_attributes

    複数値を持つフロントエンド属性をカンマ区切りで指定します。
    デフォルト値は ``mail,phoneNumbers,img,photo,streetAddress,locality,region,postalCode,country,entitlement,role,x509Certificate,azureLicense`` です。

    なお、Active Directory において ``mail`` 属性に複数の値を入れることはできないので、
    Active Directory で ``mail`` に複数値を格納したい場合には
    Active Directory のテンプレートファイル上で ``mail`` フロントエンド属性を
    別のバックエンド属性に紐付ける必要があります。

.. envvar:: user_viewable_attributes

    ユーザー一覧取得時に出力するフロントエンド属性名をカンマ区切りで定義します。
    デフォルト値は ``userName,familyName,givenName`` です。

.. envvar:: group_viewable_attributes

    グループ一覧取得時に出力するフロントエンド属性名をカンマ区切りで定義します。
    デフォルト値は ``groupName,description`` です。

.. envvar:: admin_lockout_policy_duration

    管理者のロックアウト期間 (単位: 秒) を定義します。デフォルト値は 3600 です。
    ロックアウトを無効化したいときは 0 に設定してください。

.. envvar:: admin_lockout_policy_max_failure

    管理者が連続で何回ログインに失敗したあとにロックアウトするかを定義します。
    デフォルト値は 3 です。

.. envvar:: admin_lockout_policy_failure_count_interval

    認証失敗時刻の情報が存続する期間 (単位: 秒) を定義します。
    デフォルト値は 1800 です。この値を 0 にした場合、
    認証失敗時刻情報が削除されないため、 *lockout_policy_max_failure* で
    定義した回数だけ連続で認証が失敗すれば、たとえどんなに期間を空けても
    必ずロックアウトされます。

.. envvar:: allowed_hosts

    UnicornIDM が動作しているサーバーのホスト名をカンマ区切りで設定してください。
    例えば、 ``allowed_host = host1, host2`` のように指定します。
    UnicornIDM は HTTP リクエストの ``Host`` ヘッダーがこの設定で指定されている
    ホスト名のいずれにも一致しない場合にそのリクエストを拒否することがあります。

    何も設定していない状態でも、 *localhost* 、 *127.0.0.1* および *サーバーの FQDN ホスト名*
    からのアクセスは許可されます。
    これらのアクセスに加えて別のホスト名での HTTP リクエストを許可したいときに
    追加のホスト名を指定してください。

    ``use_x_forwarded_host`` 設定を ``yes`` にしている場合には、
    ``Host`` ヘッダーの代わりに ``X-Forwarded-Host`` ヘッダーが検証されます。

.. envvar:: use_x_forwarded_host

    HTTPヘッダーの ``X-Forwarded-Host`` ヘッダーを ``Host`` ヘッダーより優先するかどうかを設定します。
    ``yes`` に設定すると ``X-Forwarded-Host`` が優先されます。デフォルト値は ``no`` です。
    ``X-Forwarded-Host`` ヘッダーは UnicornIDM をリバースプロキシを使った構成で使用する場合などに使用されます。
    この設定は主に一般ユーザーへのパスワードリセットメールに書くパスワード変更URLを構成する際に使われます。

    .. versionadded:: 3.11.6

.. envvar:: client_ip_address_http_header

    どの HTTPヘッダーからクライアントの IPアドレスを推測するかを設定します。
    推測したIPアドレスは操作結果に記録されます。
    デフォルトではTCPコネクションの情報からIPアドレスを取得します。

    .. versionadded:: 3.16.4

    .. note::

       このパラメータは :envvar:`header_auth_trust_ips` の挙動には影響を与えません。


ターゲットセクション
--------------------

ターゲットセクションは [target:<name>] という名前のセクションで定義されます。
<name> はメインセクションの *targets* で列挙したうちのターゲット名になります。

たとえば、以下のようになります。

::

    [__main__]
    targets = Sales, Finance, Tech

    [target:Sales]
    ...

    [target:Finance]
    ...

    [target:Tech]
    ...

ターゲットセクションでは以下のパラメーターを定義できます。

.. envvar:: backends

   ターゲットに紐づくバックエンドをカンマ区切りで定義します。

.. envvar:: backends_add

   ユーザー/グループの追加処理を行う時にデフォルトで有効になるバックエンドをカンマ区切りで定義します。
   ここで定義されたバックエンド以外のバックエンドを利用する場合は、手動でチェックボックスにチェックを付ける必要があります。
   バックエンドをひとつも指定しなかった場合、デフォルトで全てのバックエンドが有効になります。

.. envvar:: backends_default_select

   バックエンドを選択するチェックボックスのデフォルトのチェック状態を定義します。
   デフォルト値は true (チェック済み) です。
   また :envvar:`backends_add` が同時に設定された場合は、
   ユーザー/グループの追加時のみ :envvar:`backends_add` の設定が反映されます。

   .. versionadded:: 3.18.7

.. envvar:: authentication_backends

    一般ユーザーの認証を行うバックエンドを条件式のように ``and`` と ``or`` でつなげて指定します。
    バックエンド名、 ``and`` 、 ``or`` の間には半角スペースを間に入れてください。

    例1::

        backend1 or backend2

    この場合 ``backend1``, ``backend2`` のどちらかで認証が成功すれば、一般ユーザーはログインできます。
    認証は ``backend1``, ``backend2`` の順に実行され、 ``backend1`` で認証成功すると ``backend2`` での認証を実行されません。

    例2::

        backend1 and backend2

    この場合 ``backend1``, ``backend2`` の両方で認証が成功すれば、一般ユーザーはログインできます。
    認証は ``backend1``, ``backend2`` の順に実行され、 ``backend1`` で認証失敗すると ``backend2`` での認証を実行されません。

    複雑な条件式を書くときには半角括弧（ ``()`` ）を使うことができます。
    例えば以下は同じ意味です::

        backend1 and backend2 or backend3 and backend4

        (backend1 and backend2) or (backend3 and backend4)

    以下のように書くと上記と認証の挙動が変わります::

        backend1 and (backend2 or backend3) and backend4

    この場合、 ``backend1`` で認証が成功し、 ``backend2`` または ``backend3`` で認証が成功し、 ``backend4`` で認証が成功した場合にログインが成功します。
    認証実行順序は先ほどのバックエンド2つの例の規則に自然に従います。

    :envvar:`backends` に列挙していないバックエンドを含めることはできません。

    指定しなかった場合、 :envvar:`backends` の中のコマンドバックエンド以外を全て順に `or` でつなげた条件式がデフォルト値として使用されます。

    .. versionadded:: 3.16.4
        以前のバージョンでは上記デフォルト値の挙動になっていました。

.. envvar:: displayName

    ターゲットの表示名です。 *[__main__]* セクションの *targets* で **:**
    を指定しなくても、このパラメーターによってターゲットの表示名を指定できます。

.. envvar:: password_policy_max

    パスワードポリシーのうち、パスワードの最大長を定義します。
    この値を ``100`` に設定すると、一般ユーザーのパスワード変更画面でパスワードの最大長の情報が表示されなくなります。
    デフォルト値は ``16`` です。

    .. versionchanged:: 3.11.5
       ``100`` に設定した場合の挙動が上記に変更されました。


.. envvar:: password_policy_min

    パスワードポリシーのうち、パスワードの最小長を定義します。
    デフォルト値は 8 です。

.. envvar:: password_policy_alphabet

    一般ユーザーがパスワードを変更する際にパスワードに含めなければならない英語アルファベットの数（大文字小文字の区別はなし）を設定します。
    デフォルト値は 0 です。

.. envvar:: password_policy_upper

    パスワードポリシーのうち、パスワードに含めなければならない英大文字の数を定義します。
    デフォルト値は 1 です。

.. envvar:: password_policy_lower

    パスワードポリシーのうち、パスワードに含めなければならない英小文字の数を定義します。
    デフォルト値は 1 です。

.. envvar:: password_policy_symbol

    パスワードポリシーのうち、パスワードに含めなければならない印字 ASCII 記号の数を
    定義します。デフォルト値は 0 です。

.. envvar:: password_policy_digit

    パスワードポリシーのうち、パスワードに含めなければならない数字の数を定義します。
    デフォルト値は 1 です。

.. envvar:: password_policy_complexity

    パスワードポリシーのうち、パスワードの複雑性を定義します。
    具体的には、英大文字、英小文字、記号、数字という 4 つのカテゴリのうち、
    いくつのカテゴリをパスワードに含める必要があるかを定義します。
    デフォルト値は 3 です。このパラメーターに 4 より大きい数字を指定した場合、
    password_policy_complexity は 4 とみなされます。

.. envvar:: password_policy_prohibited

    パスワードポリシーのうち、パスワードに含めてはならない文字 (禁止文字) を定義します。
    デフォルト値は空文字 (禁止文字はなし) です。

.. envvar:: password_policy_must_not_contain_name

    パスワードポリシーのうち、パスワードにユーザーの名前を含めてよいかどうかを定義します。
    デフォルト値は true (名前を含めてはならない) です。

.. envvar:: password_policy_must_be_different_from_old

    パスワードポリシーのうち、パスワードが 1 つ前のパスワードと異なる必要が
    あるかを定義します。デフォルト値は true (異なる必要がある) です。

.. envvar:: password_policy_must_be_various

    パスワードポリシーのうち、パスワードが多様な種類の文字で構成される必要があるか
    を定義します。デフォルト値は true (多様である必要がある) です。
    このパラメーターは、 password_policy_complexity と組み合わせてより複雑な
    パスワードを強制したい場合に利用します。
    たとえば、 password_policy_complexity が 4 の場合、 **aA1-aA1-** という
    パスワードは許可されますが、実際のところ、使われている文字は、
    **a** 、 **A** 、 **1** 、 **-** の 4 種類の文字だけです。
    このようなパスワードを許可したくない場合に password_policy_must_be_various を利用します。

.. envvar:: password_policy_must_be_disorder

    パスワードポリシーのうち、パスワードが不規則である必要があるかどうかを定義します。
    デフォルト値は true (不規則である必要がある) です。
    たとえば、 **abcde** や **12345** などの規則的な並びの文字列を禁止します。

.. envvar:: password_policy_message_path

    一般ユーザーなどのパスワード変更画面で、ユーザーオリジナルのポリシーメッセージが
    格納されたファイルパスを定義します。デフォルト値はありません。
    このパラメーターの指定がない場合、
    システムが自動生成するポリシーメッセージが出力されます。
    このパラメーターに指定したファイルの拡張子が *.html* の場合、
    ユーザーオリジナルのポリシーメッセージを HTML ファイルとみなします。

.. envvar:: password_policy_random_prohibited

    このパラメータには UnicornIDM によって自動生成されるパスワードに含めたくない文字を列挙します。
    デフォルト値は記号類と誤読しやすい英数字です。(``!"#$%%&'()*+,-./:;<=>?@[\]^_`{|}~0DOQ1lI2Z5S6G8B9q``)

.. envvar:: password_policy_random_length

    パスワード自動生成時に使用されるパスワード文字数です。
    デフォルト値は 8 です。

.. envvar:: password_print_message_path

    管理者によるパスワード変更後などで、更新したパスワードを印刷する時フッターに出力する、
    ユーザーオリジナルのメッセージが格納されたファイルパスを定義します。デフォルト値はありません。
    このパラメーターの指定がない場合、フッターには何も出力されません。
    このパラメーターに指定したファイルの拡張子が *.html* の場合、
    ユーザーオリジナルのメッセージを HTML ファイルとみなします。

    .. versionadded:: 3.16.10

.. envvar:: lockout_policy_duration

    ユーザーのロックアウト期間 (単位: 秒) を定義します。デフォルト値は 3600 です。
    ロックアウトを無効化したいときは 0 に設定してください。

.. envvar:: lockout_policy_max_failure

    ユーザーが連続で何回ログインに失敗したあとにロックアウトするかを定義します。
    デフォルト値は 3 です。

.. envvar:: lockout_policy_failure_count_interval

    認証失敗時刻の情報が存続する期間 (単位: 秒) を定義します。
    デフォルト値は 1800 です。この値を 0 にした場合、
    認証失敗時刻情報が削除されないため、 *lockout_policy_max_failure* で
    定義した回数だけ連続で認証が失敗すれば、たとえどんなに期間を空けても
    必ずロックアウトされます。

.. envvar:: self_password_reset

    self_password_reset を利用するかどうかを定義します。この機能を
    有効にすることで、ユーザーが自分自身でパスワードリセットを行うことが
    できるようになります。

    UIDM のパスワードリセット機能は
    リセットメールを送るアドレスをユーザーに入力させ、
    そのアドレスがそのユーザーの mail 属性の複数の値の
    どれかに一致していた場合に入力されたアドレスのみに
    リセットメールを送るという仕様になっています。

    デフォルト値は no (self_password_reset は利用しない) です。

    .. versionadded:: 3.4.0



.. envvar:: self_password_reset_mail_attribute

    Unicorn ID Manager は self_password_reset 有効時、
    パスワードリセット用 URL をユーザーに伝達します。このときの伝達には
    メールが使われます。この設定は、 **メール** を示す *フロントエンド属性*
    が何かを指定するために使われます。デフォルト値は mail です。

    .. versionadded:: 3.4.0

.. envvar:: self_password_reset_url_duration

    self_password_reset 有効時、 パスワードリセット用 URL の有効期間 (単位: 秒)
    を定義します。デフォルト値は 3600 です。

    .. versionadded:: 3.4.0

.. envvar:: self_password_reset_smtp_host

    self_password_reset 有効時、メール配送に利用する SMTP サーバーのホスト名を
    指定します。デフォルト値は "" (localhost に配送) です。

    .. versionadded:: 3.4.0

.. envvar:: self_password_reset_smtp_port

    self_password_reset 有効時、メール配送に利用する SMTP サーバーのポート番号を
    指定します。デフォルト値は 0 (self_password_reset_smtp_tls が有効な場合 465 、
    無効な場合 25 に配送) です。

    .. versionadded:: 3.4.0

.. envvar:: self_password_reset_smtp_tls

    self_password_reset 有効時、メール配送に利用する SMTP サーバーへの接続に、
    TLS を利用するかどうかのフラグを指定します。
    デフォルト値は no (TLS は利用しない) です。

    .. versionadded:: 3.4.0

.. envvar:: self_password_reset_smtp_login_name

    self_password_reset 有効時、メール配送に利用する SMTP サーバーへの接続時に、
    認証を行うためのユーザー名を指定します。
    デフォルト値は "" です。 "" の場合、 SMTP 接続時の認証は行われません。

    .. versionadded:: 3.4.0

.. envvar:: self_password_reset_smtp_login_password_file

    self_password_reset_smtp_login_name のパスワードを格納したファイルパスを
    指定します。デフォルト値は "" です。

    .. versionadded:: 3.4.0

.. envvar:: self_password_reset_from

    self_password_reset 有効時、メール配送の際の *From:* を指定します。
    デフォルト値は "" (Unicorn ID Manager のインストールされたホスト名) です。

    .. versionadded:: 3.4.0

.. envvar:: self_password_reset_bcc

    self_password_reset 有効時、メール配送の際の *Bcc:* を指定します。
    デフォルト値は "" (Bcc: に値はセットされない) です。

    .. versionadded:: 3.4.0

.. envvar:: self_password_reset_subject

    self_password_reset 有効時、メール配送の際の件名を指定します。
    デフォルト値は "" (システムで自動生成) です。

    .. versionadded:: 3.4.0

.. envvar:: self_password_reset_body_file

    self_password_reset 有効時、メール配送の際のボディの内容を含むファイルパスを指定します。
    デフォルト値は "" (システムで自動生成) です。

    ボディに *%(url)s* というプレースホルダーを含めると、そのプレースホルダーに
    パスワードリセット用の URL が挿入されます。 *%(url)s* が含まれない場合、ボディの
    末尾にパスワードリセット用の URL が追記されます。

    ボディに *%(name)s* というプレースホルダーを含めると、そのプレースホルダーに
    ユーザー名が挿入されます。 *%(name)s* が含まれない場合、
    ボディにユーザー名は含まれません。

    例::


        %(name)s様

        ご利用のアカウントに対してパスワードリセットの要求が行われました。
        以下の URL にアクセスしてパスワードリセットを行ってください。

        %(url)s

        なお、この URL は一定時間経過後、無効になります。

    .. versionadded:: 3.4.0

.. envvar:: self_password_reset_message_path

    一般ユーザーのパスワードリセット画面で、ユーザーオリジナルのメッセージが
    格納されたファイルパスを定義します。デフォルト値はありません。
    このパラメーターの指定がない場合、追加のメッセージは出力されません。
    このパラメーターに指定したファイルの拡張子が *.html* の場合、
    ユーザーオリジナルのメッセージを HTML ファイルとみなします。

    .. versionadded:: 3.16.24

.. envvar:: attribute-display-names

    そのターゲットで使用する属性表示名セクションのIDを指定します。
    詳しくは :ref:`attribute-names-descriptions` を参照ください。

    .. versionadded:: 3.16.0

.. envvar:: attribute-descriptions

    そのターゲットで使用する属性説明セクションのIDを指定します。
    詳しくは :ref:`attribute-names-descriptions` を参照ください。

    .. versionadded:: 3.16.0

.. envvar:: self_modify

    self_modify を利用するかどうかを定義します。この機能を
    有効にすることで、ユーザーが自身の属性を変更することが
    できるようになります。
    デフォルト値は no (self_modify は利用しない) です。

    .. versionadded:: 3.7.0

.. envvar:: self_modify_attributes

    self_modify を利用する際、どのフロントエンド属性を変更可能かを指定します。
    デフォルト値は familyName, givenName, mail です。

    .. versionadded:: 3.7.0

.. envvar:: self_modify_duration

    self_modify を利用する際のユーザーのセッションタイムアウトを指定します。
    デフォルト値は 3600 (秒) です。

    .. versionadded:: 3.7.0

.. envvar:: self_modify_message_path

    一般ユーザーが自身の属性を変更する画面で、ユーザーオリジナルのメッセージが
    格納されたファイルパスを定義します。デフォルト値はありません。
    このパラメーターの指定がない場合、追加のメッセージは出力されません。
    このパラメーターに指定したファイルの拡張子が *.html* の場合、
    ユーザーオリジナルのメッセージを HTML ファイルとみなします。

    .. versionadded:: 3.17.9

.. envvar:: readonly_by_self_attributes

    このパラメーターに列挙されたフロントエンド属性は、一般ユーザーの自己属性変更画面で値が表示されますが、更新はできなくなります。
    :envvar:`self_modify_attributes` と同じ属性を含めた場合、こちらのパラメーターの挙動が優先されます。

    デフォルト値は属性なしです。

    .. versionadded:: 3.16.1

.. envvar:: header_auth

    HTTPヘッダーによる認証（ヘッダー認証）を有効にするかどうかを定義します。
    この機能が有効の場合、``header_auth_user_header`` で設定されたHTTPヘッダーに
    ユーザー名が入っていれば、他の認証情報なしでそのユーザーをログイン済みとして
    扱います。
    ただしその HTTPリクエストが ``header_auth_trust_ips`` で指定した IP アドレスから
    の場合に限ります。

    デフォルト値は no (ヘッダー認証は利用しない) です。

    .. versionadded:: 3.7.1

    .. versionchanged:: 3.11.5
       この属性を ``yes`` に設定した場合、一般ユーザーは他の認証方式ではログインできなくなるようになりました。

.. envvar:: header_auth_trust_ips

    ``header_auth`` を利用する際の信頼できるソース IP アドレスを
    カンマ区切りで指定します。
    ソース IP アドレスは CIDR 表記やサブネットマスクによる表記で
    指定することもできます。その場合、表記のネットワークアドレス範囲内に
    ソース IP アドレスが含まれれば、そのアクセスは信頼できるアクセスと
    みなされます。デフォルト値は ``127.0.0.1`` です。

    .. versionadded:: 3.7.1

.. envvar:: header_auth_user_header

    ``header_auth`` を利用する際のユーザー名を示すヘッダー名を指定します。
    ``header_auth`` 機能では、この属性で示したヘッダー名を参照します。
    デフォルト値は ``Remote-User`` です。

    .. versionadded:: 3.7.1

.. envvar:: header_auth_require_old_password

    header_auth を利用する際パスワード変更画面で、古いパスワードの
    入力を要求するかどうかを指定します。
    デフォルト値は ``yes`` (古いパスワードの入力が必要) です。

    .. versionadded:: 3.7.2

.. envvar:: extension_ldap_ppolicy_unlock

    ldap_ppolicy_unlock 拡張を利用するかどうかを定義します。この拡張は ldap
    バックエンドが OpenLDAP でかつ、 ppolicy overlay を利用してアカウントロックを
    実装している場合に、ロック状態のアカウントをブラウザーからアンロックできるようにする
    機能です。デフォルト値は no (ldap_ppolicy_unlock 拡張は利用しない) です。

バックエンドセクション
----------------------

バックエンドセクションは [backend:<name>] という名前のセクションで定義されます。
<name> はターゲットセクションの *backends* で列挙したうちのバックエンド名になります。

.. caution::
    バックエンド名を ``and`` や ``or`` の部分文字列に設定しないでください。
    例えばバックエンド名を ``a`` や ``or`` にすると正しく動かない場合があります。

たとえば、以下のようになります。

::

    [__main__]
    targets = Sales, Finance, Tech

    [target:Sales]
    backends = b1, b2

    [target:Finance]
    backends = b2

    [target:Tech]
    backends = b3

    [backend:b1]
    ...

    [backend:b2]
    ...

    [backend:b3]
    ...


バックエンドセクションはバックエンドのタイプによって定義可能なパラメーターが異なります。
詳細は以下の各章をご覧ください。

 * :doc:`backend/ldap`
 * :doc:`backend/samba_ldap`
 * :doc:`backend/ad`
 * :doc:`backend/google`
 * :doc:`backend/azure`
 * :doc:`backend/command`

.. _attribute-names-descriptions:

属性表示名・属性の説明セクション
--------------------------------

これらのセクションでは、ユーザー・グループ追加・更新画面に表示される、各属性の表示名と説明を設定することができます。
日本語と英語で2通りの表記を指定することができます。

表示名も説明も設定の仕方はほぼ同じです。

1. セクション名を以下のようにします。

    * 表示名の場合: ``[attribute-display-names:<ID>:リソースタイプ:言語]``
    * 説明の場合: ``[attribute-descriptions:<ID>:リソースタイプ:言語]``

        * ``<ID>`` の部分は好きな値を指定してください。
        * **リソースタイプ** の部分には ``User`` か ``Group`` を指定してください。
        * **言語** の部分には ``ja`` か ``en`` を指定してください。

2. セクションの中に1行ずつ ``<属性名> = 表示名または説明`` と書いてください（以下の例参照）。

3. ターゲットセクションの :envvar:`attribute-display-names` および :envvar:`attribute-descriptions` に ``<ID>`` （以下の例だと、 ``names1`` および ``descriptions1`` ）を指定してください。指定した表示名・説明がそのターゲットで使われます。


以下は設定の例です。

::

    [target:Target1]
    ...
    attribute-display-names                      = names1
    attribute-descriptions                       = descriptions1
    ...

    [attribute-display-names:names1:User:ja]
    userName            = ユーザーID
    givenName           = 名
    familyName          = 姓
    password            = パスワード
    mail                = メールアドレス
    description         = 説明
    displayName         = 表示名

    [attribute-display-names:names1:User:en]
    userName            = User ID
    givenName           = Given Name
    familyName          = Family Name
    password            = password
    mail                = Email Addresses
    description         = Description
    displayName         = Display Name

    [attribute-descriptions:descriptions1:User:ja]
    userName    = ユーザーIDです。
    givenName   = 下の名前を入力してください。
    familyName  = 苗字を入力してください。
    password    = パスワードを入力してください。長くすることが推奨されます。
    mail        = メールアドレスを入力してください。複数入力できます。
    description = このユーザーに関する説明です。
    displayName = このシステム以外ではこの値でユーザーが表示されます。

    [attribute-descriptions:descriptions1:User:en]
    userName    = Your user ID.
    givenName   = Ypur given name。
    familyName  = Your family name。
    password    = Your password. Longer is better.
    mail        = Your email addresses.
    description = Description about you.
    displayName = You are displayed as this value on other systems.

    [attribute-display-names:names1:Group:ja]
    groupName           = グループID
    description         = 説明

リソースタイプや言語が異なるセクションに同じIDを割り当てることで、複数のセクションをターゲットに紐付けることができます（上記の例だと、 ``names1`` は異なるリソースタイプ、言語で3回定義されている）。


SCIM 属性マッピングセクション
-----------------------------

.. note::
    この章はプログラマー向けの情報を記載しています。それ以外の人は読む意味がない、読んでも理解できない可能性が高いです。

SCIM 属性マッピングセクションには *[scim-attribute-map-user]* というセクションと、
*[scim-attribute-map-group]* というセクションがあります。それぞれ、ユーザー向けと
グループ向けの SCIM 属性マッピングを行います。

SCIM 属性マッピングとは、 SCIM で定義されている属性と Unicorn ID Manager で
使用する任意のフロントエンド属性とをマッピングする機構です。

たとえば、以下のように定義します。

::

    [scim-attribute-map-user]
    externalId     = userName
    name.givenName = givenName

この場合、ユーザー情報を扱う際、 SCIM の *externalId* を Unicorn ID Manager の
userName に、 *name.givenName* を Unicorn ID Manager の *givenName* にマッピングします。

SCIM 属性に **.** (ドット) を含まなければそのまま Unicorn ID Manager のフロントエンド属性に
マッピングされます。 **.** を含む場合、その SCIM 属性は Complex 属性である必要があります。


.. _unicornidm.conf[client]:

クライアントセクション
----------------------

クライアントセクションは :doc:`unicornidm-tool` で利用されます。詳細は :doc:`unicornidm-tool`
をご覧ください。
