5.7. AD (Active Directory) バックエンド¶
5.7.1. 概要¶
unicornidm.conf, templates/<backendname>.py
5.7.2. 説明¶
バックエンドセクションのうち、 type が ad となっているバックエンドは、 Active Directory ドメインコントローラー (AD DC) への接続に関する設定を行います。
各バックエンドには必ずテンプレートファイルを用意する必要があります。 テンプレートファイルとは Unicorn ID Manager の任意属性 (フロントエンド属性) を バックエンド固有の属性 (バックエンド属性) にマッピングするためのものです。
5.7.3. リファレンス¶
5.7.3.1. unicornidm.conf のパラメーター¶
- type¶
バックエンドのタイプを指定します。 ad に設定してください。
- description¶
バックエンドの説明文を指定します。
Added in version 3.18.7.
- uris¶
AD DC の URI を指定します。カンマ区切りで複数の URI を指定できます。 URI が複数ある場合、通常先頭の URI への接続が実行され、失敗すれば、 次の URI への接続を試みます。
- bind_user¶
AD DC へ接続する際に使用するユーザー名を指定します。 DN とユーザープリンシパル名 の両方の形式に対応しています。このユーザーには Account Operators グループ、 あるいは相当する権限が必要です。
- bind_password_file¶
AD DC へ接続するユーザーのパスワード情報を格納したファイルパスを指定します。
- domain¶
接続する AD DC のドメイン名を指定します。
- ou_user¶
接続する AD DC においてユーザーオブジェクトが格納されている OU (組織単位) を 指定します。デフォルトは CN=Users です。
- ou_group¶
接続する AD DC においてグループオブジェクトが格納されている OU (組織単位) を 指定します。デフォルトは CN=Users です。
- filter_user¶
ユーザー検索時に使用するフィルターを指定します。 デフォルト値は (&(objectClass=user)(!(objectClass=computer))) です。
- filter_group¶
グループ検索時に使用するフィルターを指定します。 デフォルト値は (objectClass=group) です。
- backend_primary_key_user¶
ユーザーの RDN の値を格納する属性を指定します。 デフォルト値は cn です。
- backend_primary_key_group¶
グループの RDN の値を格納する属性を指定します。 デフォルト値は cn です。
- member_keys¶
グループのメンバーに該当するバックエンド属性名を指定します。 カンマ区切りで複数指定することもできます。 デフォルト値は member です。
- assign_auto_uid_number¶
ユーザーの uidNumber を自動生成するかのフラグです。 デフォルト値は no (uidNumber を自動生成しない) です。
- assign_auto_uid_number_min¶
ユーザーの uidNumber を自動生成する際、 uidNumber に割り当てる最小値 を指定します。デフォルト値はありません。
- assign_auto_uid_number_max¶
ユーザーの uidNumber を自動生成する際、 uidNumber に割り当てる最大値 を指定します。デフォルト値はありません。
- assign_auto_gid_number¶
グループの gidNumber を自動生成するかのフラグです。 デフォルト値は no (gidNumber を自動生成しない) です。
- assign_auto_gid_number_min¶
グループの gidNumber を自動生成するかのフラグです。 デフォルト値は no (gidNumber を自動生成しない) です。
- assign_auto_gid_number_max¶
グループの gidNumber を自動生成する際、 gidNumber に割り当てる最大値 を指定します。デフォルト値はありません。
5.7.3.2. テンプレートファイル¶
以下は、 ad バックエンドのテンプレートファイルの例です。
User = {
"objectClass": [
"top",
"person",
"organizationalPerson",
"user",
],
"sAMAccountName": userName,
"sn": familyName,
"givenName": givenName,
"unicodePwd": password,
"userAccountControl": "512",
"description": default(description),
"displayName": default(displayName, "%(familyName)s %(givenName)s"),
}
Group = {
"objectClass": [
"top",
"group",
],
"sAMAccountName": groupName,
"description": default(description),
}
注意すべき点は以下のとおりです。
User と Group の辞書には必ず、 objectClass を list 型で指定してください
User と Group の属性定義では必ず sAMAccountName を
userName
とgroupName
に紐付けてくださいUser の objectClass には必ず user を含めてください
Group の objectClass には必ず group を含めてください
5.7.4. ad バックエンド特有のバックエンド属性¶
- userPrincipalName¶
テンプレートファイルに userPrincipalName バックエンド属性が 定義されていない場合、 sAMAccountName と domain から、 userPrincipalName を自動生成します。 手動で入力する場合、メールアドレス形式で指定してください。
- cn¶
テンプレートファイルに cn バックエンド属性が 定義されていない場合、 sAMAccountName から、 cn を自動生成します。
- unicodePwd¶
unicodePwd バックエンド属性は AD ユーザーのパスワードを セットするために利用されます。
- accountExpires¶
accountExpires バックエンド属性は AD ユーザーのアカウント有効期限を セットするために利用されます。このバックエンド属性に値をセットする際は、 "2016-05-28" の形式か、 "2016/05/28" の形式で値をセットしてください。 アカウントの有効期限を無期限にする場合は "NEVER_EXPIRES" という文字列を セットしてください。
- parentOu¶
parentOu バックエンド属性はユーザーやグループの所属 OU を指定するための バックエンド属性です。この値がセットされた場合、 parentOu と domain パラメーターを元にしたルートサフィックスを結合した サフィックスが適用されます。 parentOu が存在しない場合 ou_user か ou_group が適用されます。
例:
backend_primary_key_user = "CN" userName = "user1 parentOu = "ou=org1" domain = "example.com" ou_user = "CN=Users" ===> "CN=user1,ou=org1,DC=example,DC=com" backend_primary_key_user = "CN" userName = "user1 parentOu = None domain = "example.com" ou_user = "CN=Users" ===> "CN=user1,CN=Users,DC=example,DC=com"
Added in version 3.3.0: parentOu で所属 OU を変更できるようになりました。
- ADPrimaryGroup¶
ADPrimaryGroup
はユーザーのプライマリーグループを変更するためのバックエンド属性です。 ユーザーを追加、更新するときにこの属性を指定すると、 Unicorn ID Manager は操作対象のターゲットの中からgroupName
が この属性の値と一致するグループを探し、そのグループを ユーザーのプライマリーグループに設定します。
Added in version 3.14.1: ADPrimaryGroup
属性が追加されました。
5.7.5. 制限¶
グループの入れ子 (ネスト。グループへのグループの追加) には対応していません。
組織単位 (OU) の管理には対応していません。 ユーザーに所属させたい組織単位は別途 AD の管理ツールで作成しておいてください。
5.7.5.1. AD 由来の制限¶
AD バックエンドでは userName
, groupName
を sAMAccountName
に紐付ける必要があるため、以下の制限が発生します。
これらはどれも AD の sAMAccountName
の仕様に基づくものです。
userName
,groupName
は 20文字以下でなければなりませんuserName
,groupName
には以下の文字を含めてはいけません"/ \ [ ] : ; | = , + * ? < >
userName
,groupName
の値は AD 全体で一意でなければいけません。 UIDM 管理外のツリー(所属OU)やユーザー、グループ以外のオブジェクトのsAMAccountName
とも被ってはいけません。
AD バックエンド属性名には givenName;lang-ja
のような
<属性名>;<属性オプション>
形式の属性オプションは使用できません。
UIDM 接続用の AD ドメインユーザーの権限は通常 Account Operators グループ権限だけで充分です。ただし Account Operators 権限では 特権付きユーザー (Administrator など) や特権付きグループ (Domain Admins など) に所属するユーザーのパスワードを変更できません。 Administrators 権限を付与すれば特権付きユーザーとグループの パスワードを変更できますが、UIDM により強い特権を付与するリスクを 考慮するようご注意ください。
- Protected Users セキュリティ グループ | Microsoft Docs
- Active Directory の攻撃を削減する | Microsoft Docs