5.5. LDAP バックエンド¶
5.5.1. 概要¶
unicornidm.conf, templates/<backendname>.py
5.5.2. 説明¶
バックエンドセクションのうち、 type が ldap となっているバックエンドは、 LDAP サーバーへの接続に関する設定を行います。
各バックエンドには必ずテンプレートファイルを用意する必要があります。 テンプレートファイルとは Unicorn ID Manager の任意属性 (フロントエンド属性) を バックエンド固有の属性 (バックエンド属性) にマッピングするためのものです。
5.5.3. リファレンス¶
5.5.3.1. unicornidm.conf のパラメーター¶
- type¶
バックエンドのタイプを指定します。 ldap に設定してください。
- description¶
バックエンドの説明文を指定します。
Added in version 3.18.7.
- uris¶
LDAP URI を指定します。カンマ区切りで複数の URI を指定できます。 URI が複数ある場合、通常先頭の URI への接続が実行され、失敗すれば、 次の URI への接続を試みます。
- tls_require_certificate¶
LDAPS接続時のサーバー証明書検証ルールを指定します。 指定可能な値は以下です。
NEVER サーバー証明書を検証しない ALLOW サーバー証明書の検証をし、失敗した場合警告文をログに出力する(接続は行われる) DEMAND サーバー証明書の検証をし、検証に失敗した場合は接続しない HARD DEMANDと同等
デフォルト値は
NEVER
です。大文字小文字は区別せず、上記以外の文字列が指定された場合はNEVER
がセットされます。Added in version 3.20.2.
- tls_ca_certificate_file¶
LDAPS接続時のサーバー証明書検証の際に利用するCA証明書ファイルを指定します。
Added in version 3.20.2.
- tls_ca_certificate_dir¶
LDAPS接続時のサーバー証明書検証の際に利用するCA証明書ディレクトリを指定します。
Added in version 3.20.2.
- 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¶
追加、更新操作時に
uidNumber
が同じユーザーがバックエンドに既に存在しないことを確認します。 存在していた場合追加、更新操作が失敗します。
- uid_number_must_unique_suffix¶
uidNumber
の重複を確認する際に、検索するツリーのサフィックスを指定します。 デフォルトはsuffix_user
の値になります。
- uid_number_must_unique_filter¶
uidNumber
の重複を確認する際に、検索するエントリーのフィルターを指定します。 デフォルトはfilter_user
の値になります。
- gid_number_must_unique¶
追加、更新操作時に
gidNumber
が同じグループがバックエンドに既に存在しないことを確認します。 存在していた場合追加、更新操作が失敗します。
- gid_number_must_unique_suffix¶
gidNumber
の重複を確認する際に、検索するツリーのサフィックスを指定します。 デフォルトはsuffix_group
の値になります。
- gid_number_must_unique_filter¶
gidNumber
の重複を確認する際に、検索するエントリーのフィルターを指定します。 デフォルトはfilter_group
の値になります。
- password_hash¶
パスワードのハッシュアルゴリズムを指定します。 指定可能な値は以下です。
MD5 MD5 でハッシュ化 SHA SHA-1 でハッシュ化 SHA256 SHA-2 256-bit でハッシュ化 SHA384 SHA-2 384-bit でハッシュ化 SHA512 SHA-2 512-bit でハッシュ化 SSHA SHA-1、salt 付きでハッシュ化 SSHA256 SHA-2 256-bit、salt 付きでハッシュ化 SSHA384 SHA-2 384-bit、salt 付きでハッシュ化 SSHA512 SHA-2 512-bit、salt 付きでハッシュ化 CRYPT crypt(3) DES、salt 付きでハッシュ化 CRYPT-MD5 crypt(3) MD5、salt 付き、1000 回でハッシュ化 CRYPT-SHA256 crypt(3) SHA-2 256-bit、salt 付き、5000 回でハッシュ化 CRYPT-SHA512 crypt(3) SHA-2 512-bit、salt 付き、5000 回でハッシュ化 PBKDF2 PBKDF2 SHA-1、salt 付き 10000 回でハッシュ化 PBKDF2-SHA256 PBKDF2 SHA-2 256-bit、salt 付き 10000 回でハッシュ化 PBKDF2-SHA512 PBKDF2 SHA-2 512-bit、salt 付き 10000 回でハッシュ化 PASSMOD LDAP サーバーでハッシュ化
デフォルト値は CRYPT-SHA512 です。
注釈
パスワード変更リクエストでは、仕様上パスワードが平文で送信されます。 PASSMODを利用する際は、LDAPサーバーへの接続にLDAPSを用いた暗号化通信を利用するようにしてください。
Added in version 3.17.9: PASSMOD が追加されました。
- 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.5.3.2. テンプレートファイル¶
以下は、 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.5.4. 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
に変わります。
Added in version 3.3.0: parentOu で所属 OU を変更できるようになりました。
- LDAPPrimaryGroup¶
LDAPPrimaryGroup
はユーザーのgidNumber
を数値ではなく グループ名で設定するためのバックエンド属性です。 ユーザーを追加、更新するときにこの属性を指定すると、 Unicorn ID Manager は操作対象のターゲットの中からgroupName
が この属性の値と一致するグループを探し、そのグループのgidNumber
を ユーザーのgidNumber
属性に設定します。gidNumber
とLDAPPrimaryGroup
の両方に値が設定された場合、gidNumber
の値が優先されます。 従って、テンプレートファイルでgidNumber: default(gidNumber, 100)
のようにgidNumber
のデフォルト値が指定されている場合には、LDAPPrimaryGroup
属性は使われません (gidNumber
のデフォルト値がLDAPPrimaryGroup
の値よりも 優先されてしまう)。
Added in version 3.10.10.
5.5.5. 制限¶
組織単位 (OU) の管理には対応していません。 ユーザーに所属させたい組織単位は別途 LDAP DIT の管理ツールで作成しておいてください。