5.5. Samba LDAP バックエンド

5.5.1. 概要

unicornidm.conf, templates/<name>.py

5.5.2. 説明

バックエンドセクションのうち、 typesamba_ldap となっているバックエンドは、 Samba と連携している LDAP サーバーへの接続に関する設定を行います。

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

5.5.3. パラメーター

LDAP バックエンド のパラメーターに加えて以下のパラメーターを設定します。

samba_domain_sid
Samba のドメイン SID を指定します。

5.5.4. テンプレート

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

User = {
    "objectClass": [
        "top",
        "person",
        "organizationalPerson",
        "inetOrgPerson",
        "posixAccount",
        "sambaSamAccount",
    ],
    "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": mail,
    "description": default(description),
    "displayName": default(displayName, "%(familyName)s %(givenName)s"),
    "sambaAcctFlags": default(sambaAcctFlags, "[UX         ]"),
}


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

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

  • User と Group の辞書には必ず、 objectClass を list 型で指定する必要があること
  • objectClass で必須のバックエンド属性を必ず含めること

5.5.5. samba_ldap バックエンド特有のバックエンド属性

sambaSID
テンプレートファイルに sambaSID バックエンド属性が 定義されていない場合、ユーザーの場合 uidNumber から、 グループの場合 gidNumber から、 sambaSID を自動生成します。
parentOu

parentOu バックエンド属性はユーザーやグループの所属 OU を指定するための バックエンド属性です。この値がセットされた場合、 parentOusuffix パラメーターを結合したサフィックスが適用されます。 parentOu が存在しない場合 suffix_usersuffix_group が適用されます。

例:

backend_primary_key_user = "uid"
userName = "user1
parentOu = "ou=org1"
suffix = "dc=example,dc=com"
suffix_user = "ou=Users,%(suffix)s"

    ===> "uid=user1,ou=org1,dc=example,dc=com"

backend_primary_key_user = "uid"
userName = "user1
parentOu = None
suffix = "dc=example,dc=com"
suffix_user = "ou=Users,%(suffix)s"

    ===> "uid=user1,ou=Users,dc=example,dc=com"

バージョン v3.3.0 で追加: parentOu で所属 OU を変更できるようになりました。