3.4. unicornidm.template(5)

3.4.1. 概要

templates/<name>.py

3.4.2. 説明

バックエンドセクションを定義する際に、必ずテンプレートファイルを定義する必要があります。 テンプレートファイルは unicornidm.conf と同じディレクトリにある、 templates ディレクトリ内に、 <name>.py のファイル名で登録します。 <name> はバックエンド の名前です。

3.4.3. テンプレートファイルのルール

テンプレートファイルは Python の構文に基づいて以下のルールで記載します。

  • User 及び Group という変数に辞書オブジェクトを割り当てること

  • 辞書オブジェクトは key-value の形式になっていること

  • 辞書オブジェクトの key は必ず str 型であること

  • 辞書オブジェクトの value は以下のいずれかであること

    • str 型

    • str 型 (printf(3) の文字列書式を含む)

    • list 型

    • dict 型

      • dict の各 value は str か任意の変数であること
    • 任意の変数

    • default 関数の返り値

3.4.4. 例

以下は LDAP バックエンドのテンプレートファイルです。

User = {
    "objectClass": [
        "top",
        "person",
        "organizationalPerson",
        "inetOrgPerson",
        "posixAccount",
    ],
    "uid": userName,
    "cn": userName,
    "uidNumber": default(uidNumber),
    "gidNumber": default(gidNumber, 100),
    "loginShell": default(loginShell, "/bin/bash"),
    "homeDirectory": default(unixHomeDirectory, "/home/%(userName)s"),
    "sn": familyName,
    "givenName": givenName,
    "userPassword": password,
    "mail": email,
    "description": default(description),
    "displayName": default(displayName, "%(familyName)s %(givenName)s"),
}


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

このテンプレートファイルの特徴は以下です。

  • objectClass に要素すべてが str 型の list を格納しています

    • バックエンドに属性を渡す際、必ず objectClass がここで定義した属性になります
  • User の uid には userName という Unicorn ID Manager の任意属性が割り当てられています

    • Unicorn ID Manager から userName=user1 としてユーザー登録を行った時、 バックエンドには uid: user1 として登録されます
  • User の mail には email という Unicorn ID Manager の任意属性が割り当てられています

    • ルールは uid と同様ですが、もし email に複数の値が格納されていた場合、 バックエンドの mail 属性にも同様に複数の値が割り当てられます
  • User の loginShell には default 関数の返り値が割り当てられています

    • default 関数の第一引数 loginShell が指定されなかった場合、第二引数の /bin/bash が loginShell に割り当てられます
  • User の homeDirectory には default 関数の返り値が割り当てられています

    • default 関数の第一引数 homeDirectory が指定されなかった場合、第二引数の /home/%(userName)s が割り当てられます。なお、 %(userName)s は Unicorn ID Manager の任意属性 userName の値に展開されます
  • Group の description には default 関数の返り値が割り当てられています

    • default 関数の第一引数 description が指定されなかった場合、 description は空になります