仕様上の制約
ID 連携全般
primaryID は変更不可
primaryID は外部サービスへ主要なキー情報として連携されます。そのため、既存の primaryID を変更すると外部サービスに連携されている情報との照合に影響があります。
UCIDM ではユーザー/グループのエントリ情報が初めて連携されてきたときに primaryID を生成します。ユーザー/グループエントリを更新して primaryID を変更することはできません。例えば、デフォルトでは LDAP の DN 文字列の RDN0 の値を割り当てます。DN の値は後から変更できますが、初期の RDN0 の値を用いて割り当てた primaryID の値は変更されません。そのため、DN 文字列を変更すると外部サービスで使っている primaryID の命名規則と一致しなくなります。
Agent モジュール
ユーザーやグループの変更を検知して UCIDM API へ ID 連携するモジュールの制約になります。
(OpenLDAP, Active Directory) グループに多くのメンバーが存在するときのパフォーマンス懸念
OpenLDAP または Active Directory でグループ情報を更新したとき、グループのメンバー全件に対して存在チェック処理が実行されます。このことはメンバー数に比例して処理時間がかかります。そのため、1つのグループに多くのメンバーが所属している場合、仮にメンバーをまったく更新していないとしても、グループの更新時にメンバー数に比例した処理時間を要します。
この制約を回避するには、次のようなワークアラウンドがあります。
- グループにメンバー登録しない
- 頻繁にグループ情報を更新しない
- グループのメンバー情報を更新するときは一括して更新する
どのぐらいのメンバー数であれば運用に耐えられるかは、サーバーのスペックや UCIDM の設定などによっても変わってきます。導入時にお客様の環境で実際に検証した ID 連携の処理時間から、想定するグループのメンバー数や ID 連携に期待する制限時間を検討してください。
Active Directory 向け Agent
- 古いエントリが複数ある場合は直接削除する必要があります
- 次の属性は同期されません
- badPasswordTime
- badPwdCount
- codePage
- countryCode
- dBCSPwd
- dSCorePropagationData
- instanceType
- lmPwdHistory
- memberOf
- nTSecurityDescriptor
- ntPwdHistory
- objectCategory
- objectSid
- parentGUID
- pwdLastSet
- sAMAccountType
- supplementalCredentials
PassSync Agent モジュール
パスワード変更を検知してパスワード連携するモジュールの制約になります。
OpenLDAP 向け
- 連携対象のパスワードに改行文字を含めることはできません
Active Directory 向け
- ログオン名変更後はパスワードをユーザー自身が更新する必要があります
- 高負荷のときにイベントログにログが出力されない場合があります
- 一方で UCIDM の管理画面ではすべてのリクエストの履歴を確認できます
外部連携モジュール
外部サービスへ ID 連携するモジュールの制約になります。
SCIM
SCIM 外部連携モジュール は起動後の最初の ID 連携リクエストのタイミングで必要なスキーマ情報を取得します。そして、そのスキーマ情報はプロセスが起動している最中ずっとキャッシュされます。実運用において共通でよく使われるスキーマが変更されることは滅多にないと考えています。キャッシュしているため、スキーマ情報に変更があった場合は外部連携モジュールのプロセスを再起動する必要があります。
管理画面
ID 連携管理画面 および ユーザープロファイル画面の制約になります。
共通
ID 連携管理画面 および ユーザープロファイル画面(管理者用)において、それぞれの画面にて同名のアカウントでログインを行って同時に各種操作をした場合、主にログアウト操作をした際に上手く動かない事象が確認できています。
認証
認証関係の制約になります。
連携元を AD としている場合の認証デバイス設定
OpenAM の認証デバイス設定で使用するスキーマを使用して AD の属性を拡張する必要があります。現在の UCIDM は OpenAM と連携しているときのみ認証デバイス設定を使用できます。