5.4. unicornidm.template.ldap(5)¶
5.4.1. 概要¶
unicornidm.conf, templates/<name>.py
5.4.2. 説明¶
バックエンドセクションのうち、 type が ldap となっているバックエンドは、 LDAP サーバーへの接続に関する設定を行います。
各バックエンドには必ずテンプレートファイルを用意する必要があります。 テンプレートファイルとは Unicorn ID Manager の任意属性 (フロントエンド属性) を バックエンド固有の属性 (バックエンド属性) にマッピングするためのものです。
5.4.3. パラメーター¶
-
type¶ バックエンドのタイプを指定します。
-
uris¶ LDAP URI を指定します。カンマ区切りで複数の URI を指定できます。 URI が複数ある場合、通常先頭の URI への接続が実行され、失敗すれば、 次の URI への接続を試みます。
-
bind_user¶ LDAP サーバーへ接続する際に使用する BIND DN を指定します。
-
bind_password_file¶ LDAP サーバーへ接続する BIND DN のパスワード情報を格納したファイルパスを指定します。
-
suffix¶ 接続する LDAP サーバーの DIT (Directory Information Tree) の suffix を指定します。
-
suffix_user¶ 接続する LDAP サーバーでユーザー情報が格納されているツリーを指定します。 例えば、 ou=Users,%(suffix)s と指定します。なお、ここで利用している %(…)s という形式は別のパラメーターの値を変数として利用することを意味します。ここでは suffix パラメーターの値に置き換えられます。
-
suffix_group¶ 接続する LDAP サーバーでグループ情報が格納されているツリーを指定します。
-
filter_user¶ ユーザー検索時に使用するフィルターを指定します。 デフォルト値は (&(objectClass=posixAccount)(uid=*)) です。
-
filter_group¶ グループ検索時に使用するフィルターを指定します。 デフォルト値は (&(objectClass=posixGroup)(cn=*)) です。
-
backend_primary_key_user¶ ユーザーの RDN を指定します。 デフォルト値は uid です。
-
backend_primary_key_group¶ グループの RDN を指定します。 デフォルト値は cn です。
-
member_keys¶ グループのメンバーに該当するバックエンド属性名を指定します。 カンマ区切りで複数指定することもできます。 デフォルト値は memberUid です。
-
assign_auto_uid_number¶ ユーザーの uidNumber を自動生成するかのフラグです。 デフォルト値は yes (uidNumber を自動生成する) です。 自動生成される番号は Unicorn ID Manager が最後に割り当てた uidNumber の次に大きな番号で、LDAP サーバー上でまだ使われていない番号です。
-
assign_auto_uid_number_min¶ ユーザーの uidNumber を自動生成する際、 uidNumber に割り当てる最小値 を指定します。デフォルト値はありません。
-
assign_auto_uid_number_max¶ ユーザーの uidNumber を自動生成する際、 uidNumber に割り当てる最大値 を指定します。デフォルト値はありません。
-
assign_auto_gid_number¶ グループの gidNumber を自動生成するかのフラグです。 デフォルト値は yes (gidNumber を自動生成する) です。 自動生成される番号は Unicorn ID Manager が最後に割り当てた gidNumber の次に大きな番号で、LDAP サーバー上でまだ使われていない番号です。
-
assign_auto_gid_number_min¶ グループの gidNumber を自動生成する際、 gidNumber に割り当てる最小値 を指定します。デフォルト値はありません。
-
assign_auto_gid_number_max¶ グループの gidNumber を自動生成する際、 gidNumber に割り当てる最大値 を指定します。デフォルト値はありません。
-
uid_number_must_unique¶ -
gid_number_must_unique¶ 追加、更新操作時に
uidNumber(gidNumber) が同じユーザー(グループ)がバックエンドに既に存在しないことを確認します。 存在していた場合追加、更新操作が失敗します。
-
password_hash¶ パスワードのハッシュアルゴリズムを指定します。 指定可能な値は以下です。
MD5 パスワードを md5 でハッシュ化 SHA パスワードを sha1 でハッシュ化 SHA256 パスワードを sha256 でハッシュ化 SHA384 パスワードを sha384 でハッシュ化 SHA512 パスワードを sha512 でハッシュ化 SSHA パスワードを salt sha1 でハッシュ化 SSHA256 パスワードを salt sha256 でハッシュ化 SSHA384 パスワードを salt sha384 でハッシュ化 SSHA512 パスワードを salt sha512 でハッシュ化 CRYPT パスワードを crypt でハッシュ化 CRYPT-MD5 パスワードを md5 crypt でハッシュ化 CRYPT-SHA256 パスワードを sha256 crypt でハッシュ化 CRYPT-SHA512 パスワードを sha512 crypt でハッシュ化 PBKDF2 パスワードを sha1 PBKDF2 でハッシュ化 PBKDF2-SHA256 パスワードを sha256 PBKDF2 でハッシュ化 PBKDF2-SHA512 パスワードを sha512 PBKDF2 でハッシュ化
デフォルト値は CRYPT-SHA512 です。
-
password_hash_iteration¶ パスワードハッシュアルゴリズムを PBKDF2 シリーズのどれかに指定した時に 有効なパラメーターです。このパラメーターにより、ハッシュ回数を指定できます。 デフォルト値は 10000 です。
-
enable_ppolicy¶ ユーザーの認証の際に以下のメッセージをログに出力するかどうかを指定します。 ppolicy オーバーレイを利用していない場合、ユーザーの認証の際に以下の ログが出力されます。この値を no とすることで、メッセージが出力されなくなります。 デフォルト値は yes (メッセージを出力する) です。
slap_global_control: unrecognized control: 1.3.6.1.4.1.42.2.27.8.5.1
5.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": mail,
"description": default(description),
"displayName": default(displayName, "%(familyName)s %(givenName)s"),
}
Group = {
"objectClass": [
"top",
"posixGroup",
],
"cn": groupName,
"gidNumber": default(gidNumber),
"description": default(description),
}
注意すべき点は以下のとおりです。
- User と Group の辞書には必ず、 objectClass を list 型で指定する必要があること
- objectClass で必須のバックエンド属性を必ず含めること
5.4.5. ldap バックエンド特有のバックエンド属性¶
- parentOu
parentOuバックエンド属性はユーザーやグループの所属 OU を指定するための バックエンド属性です。この値がセットされた場合、parentOuとsuffixパラメーターを結合したサフィックスが適用されます。parentOuが存在しない場合suffix_userかsuffix_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"
CSVファイルで所属 OU を
suffix直下に変更したい場合には、--か-接頭辞を利用してください。例えば以下の CSV では user1, user2 の 所属 OU を
suffix直下に 変更しています。例:
userName,--parentOu user1, user2
CSV の
parentOuカラムを空文字にした場合には、所属 OU は 変更されません。以下では user1 の所属 OU は変更されますが、 user2 の所属 OU は 変わりません。
例:
userName,parentOu user1,ou=Org1 user2,
上記の、カラムを空文字にした場合の挙動は期待する動作と異なるかも しれません。 つまり、1つの CSV ファイルで あるユーザーの所属 OU を
suffix以外に変え、別のユーザーの 所属 OU をsuffixに変更したい場合に、上記のような CSV ファイルでは user2 の所属OUは変更されません。このような動作を1つのCSVファイルで実現するには、
-と+接頭辞を 併用してください。 この場合、対象ユーザーの現在の所属 OU を CSV ファイルに書く必要があります。以下の CSV では、 user1 の所属 OU は ou=Org2 に、 user2 の所属 OU は
suffixに変更されます。 どちらのユーザーも元々の所属OU は ou=Org1 であると仮定しています。例:
userName,-parentOu,+parentOu user1,ou=Org1,ou=Org2 user2,ou=Org1,
ブラウザからの GUI 操作の場合には、
parentOuのインプットフォームを 空にすると 所属OU はsuffixに変わります。
バージョン v3.3.0 で追加: parentOu で所属 OU を変更できるようになりました。
- LDAPPrimaryGroup
LDAPPrimaryGroupはユーザーのgidNumberを数値ではなく グループ名で設定するためのバックエンド属性です。 ユーザーを追加、更新するときにこの属性を指定すると、 Unicorn ID Manager は操作対象のターゲットの中からgroupNameが この属性の値と一致するグループを探し、そのグループのgidNumberを ユーザーのgidNumber属性に設定します。gidNumberとLDAPPrimaryGroupの両方に値が設定された場合、gidNumberの値が優先されます。 従って、テンプレートファイルでgidNumber: default(gidNumber, 100)のようにgidNumberのデフォルト値が指定されている場合には、LDAPPrimaryGroup属性は使われません (gidNumberのデフォルト値がLDAPPrimaryGroupの値よりも 優先されてしまう)。
バージョン v3.10.10 で追加.