SQL バックエンド
==============================

概要
-----

::

    unicornidm.conf, templates/<name>.py

説明
------

バックエンドセクションのうち、 *type* が *sql* となっているバックエンドは、
RDBMS への接続に関する設定を行います。

各バックエンドには必ずテンプレートファイルを用意する必要があります。
テンプレートファイルとは Unicorn ID Manager の任意属性 (フロントエンド属性) を
バックエンド固有の属性 (バックエンド属性) にマッピングするためのものです。

パラメーター
--------------

type
    バックエンドのタイプを指定します。

engine
    RDBMS 接続に使用するエンジンを指定します。 *postgresql* か *mysql* を選択できます。

bind_user
    RDBMS へ接続する際に使用するユーザーを指定します。

bind_password_file
    RDBMS へ接続するユーザーのパスワード情報を格納したファイルパスを指定します。

host
    RDBMS の接続先ホスト名を指定します。

port
    RDBMS の接続先ポートを指定します。

database
    RDBMS で使用するデータベースを指定します。

table_users
    ユーザーを格納するテーブル名を指定します。

table_groups
    グループを格納するテーブル名を指定します。

table_members
    ユーザーとグループのメンバーシップに関する情報を格納するテーブル名を指定します。
    このテーブルには *backend_primary_key_user* と *backend_primary_key_group* で
    指定するカラム名を持つ必要があります。

backend_primary_key_user
    ユーザーを一意に特定するためのカラム名を指定します。

backend_primary_key_group
    グループを一意に特定するためのカラム名を指定します。

password_key
    ユーザーのパスワードを格納するカラム名を指定します。

enable_multivalue
    一つのカラムに複数値を格納するかどうかを指定します。デフォルト値は
    off (複数値を格納しない、複数値データが入力されても最初の値のみを格納)
    になります。

multivalue_separator
    *enable_multivalue* を on にした際に、どのような区切り文字を使用するかを
    指定します。

password_hash
    パスワードのハッシュアルゴリズムを指定します。詳細は *unicornidm.template.ldap(5)*
    をご覧ください。

password_hash_iteration
    パスワードハッシュアルゴリズムを PBKDF2 シリーズのどれかに指定した時に
    有効なパラメーターです。このパラメーターにより、ハッシュ回数を指定できます。
    デフォルト値は 10000 です。

テンプレート
-------------

以下は、 sql のテンプレートファイルの例です。

::

    User = {
        "user_name": userName,
        "sn": familyName,
        "given_name": givenName,
        "group_number": default(gidNumber, 100),
        "password": password,
        "mail": mail,
        "description": default(description),
    }


    Group = {
        "group_name": groupName,
        "description": default(description),
    }
