unicornidm.template.ad(5)
===========================

概要
-----

::

    unicornidm.conf, templates/<name>.py

説明
------

バックエンドセクションのうち、 *type* が *ad* となっているバックエンドは、
Active Directory ドメインコントローラー (AD DC) への接続に関する設定を行います。

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

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

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

uris
    AD DC の URI を指定します。カンマ区切りで複数の URI を指定できます。
    URI が複数ある場合、通常先頭の URI への接続が実行され、失敗すれば、
    次の URI への接続を試みます。

bind_user
    AD DC へ接続する際に使用するユーザー名を指定します。 DN とユーザープリンシパル名
    の両方の形式に対応しています。

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

domain
    接続する AD DC のドメイン名を指定します。

ou_user
    接続する AD DC においてユーザーオブジェクトが格納されている OU (組織単位) を
    指定します。デフォルトは CN=Users です。

ou_group
    接続する AD DC においてグループオブジェクトが格納されている OU (組織単位) を
    指定します。デフォルトは CN=Users です。

filter_user
    ユーザー検索時に使用するフィルターを指定します。
    デフォルト値は (&(objectClass=user)(!(objectClass=computer))) です。

filter_group
    グループ検索時に使用するフィルターを指定します。
    デフォルト値は (objectClass=group) です。

backend_primary_key_user
    ユーザーの RDN を指定します。
    デフォルト値は CN です。

backend_primary_key_group
    グループの RDN を指定します。
    デフォルト値は CN です。

member_keys
    グループのメンバーに該当する属性名を指定します。
    カンマ区切りで複数指定することもできます。
    デフォルト値は member です。

assign_auto_uid_number
    ユーザーの uidNumber を自動生成するかのフラグです。
    デフォルト値は no (uidNumber を自動生成しない) です。

assign_auto_uid_number_min
    ユーザーの uidNumber を自動生成する際、 uidNumber に割り当てる最小値
    を指定します。デフォルト値はありません。

assign_auto_uid_number_max
    ユーザーの uidNumber を自動生成する際、 uidNumber に割り当てる最大値
    を指定します。デフォルト値はありません。

assign_auto_gid_number
    グループの gidNumber を自動生成するかのフラグです。
    デフォルト値は no (gidNumber を自動生成しない) です。

assign_auto_gid_number_min
    グループの gidNumber を自動生成するかのフラグです。
    デフォルト値は no (gidNumber を自動生成しない) です。

assign_auto_gid_number_max
    グループの gidNumber を自動生成する際、 gidNumber に割り当てる最大値
    を指定します。デフォルト値はありません。

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

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

::

    User = {
        "objectClass": [
            "top",
            "person",
            "organizationalPerson",
            "user",
        ],
        "cn": userName,
        "sAMAccountName": userName,
        "sn": familyName,
        "givenName": givenName,
        "unicodePwd": password,
        "userAccountControl": "512",
        "description": default(description),
        "displayName": default(displayName, "%(familyName)s %(givenName)s"),
    }


    Group = {
        "objectClass": [
            "top",
            "group",
            ],
        "cn": groupName,
        "sAMAccountName": groupName,
        "description": default(description),
    }

注意すべき点は以下のとおりです。

* User と Group の辞書には必ず、 *objectClass* を list 型で指定する必要があること

* User と Group の辞書には必ず、 *sAMAccountName* を含めること

* User の *objectClass* には必ず user を含めること

* Group の *objectClass* には必ず group を含めること
