5.6. Samba LDAP バックエンド

5.6.1. 概要

unicornidm.conf, templates/<backendname>.py

5.6.2. 説明

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

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

5.6.3. リファレンス

5.6.3.1. unicornidm.conf のパラメーター

type

バックエンドのタイプを指定します。 samba_ldap に設定してください。

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

samba_domain_sid

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

5.6.3.2. テンプレートファイル

以下は、 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.6.4. 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"

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