> For AI agents: the complete documentation index is available at /resource/ucidm/docs/on-premise/1.8.0/llms.txt, the full documentation bundle is available at /resource/ucidm/docs/on-premise/1.8.0/llms-full.txt.

# 仕様上の制約

## ID 連携全般

### primaryID は変更不可

primaryID は外部サービスへも主要なキー情報として連携されます。そのため、既存の primaryID を変更すると外部サービスにも影響があります。UCIDM ではユーザー／グループのエントリ情報が初めて連携されてきたときに primaryID を生成します。ユーザー／グループエントリを更新して primaryID を変更することはできません。例えば、デフォルトでは LDAP の DN 文字列の RDN0 の値を割り当てます。DN の値は後から変更できますが、初期の RDN0 の値を使って割り当てた primaryID の値は変更されません。そのため、DN 文字列を変更すると外部サービスで使っている primaryID の命名規則においてズレてしまう可能性があります。

## Agent モジュール

ユーザーやグループの変更を検知して ID 連携するモジュールの制約になります。

### 共通

search base として設定した OU (Organizational Unit) エントリーを別の内容に変更すると変更を検知できなくなり、ID 連携できません。

例えば、次のようにユーザーやグループの search base を設定しているとします。

```
LDAP_USER_SEARCH_BASE="ou=users,dc=example,dc=com"
LDAP_GROUP_SEARCH_BASE="ou=groups,dc=example,dc=com"
```

このとき、例えば、内部ディレクトリサービスのユーザーの `ou=users,dc=example,dc=com` から `ou=new-users-group,dc=example,dc=com` のように変更した場合、Agent モジュールの設定変更を行い、プロセスを再起動しないと以降の LDAP エントリーの変更を検知できません。

### Active Directory 向け Agent

- 古いエントリが複数ある場合は直接削除する必要があります。
- 次の属性は同期されません。
  - nTSecurityDescriptor
  - pwdLastSet
  - objectSid
  - parentGUID
  - memberOf

## PassSync Agent モジュール

パスワード変更を検知してパスワード連携するモジュールの制約になります。

### OpenLDAP 向け

- 連携対象のパスワードに改行文字を含めることはできません

### Active Directory 向け

- ユーザーを追加すると、同時にパスワード変更を検出します。しかし、ユーザーが連携される前にパスワードを連携すると失敗します。その際は再度パスワードを変更する必要があります
- ログオン名変更後はパスワードをユーザー自身が更新する必要があります
- 高負荷のときにイベントログにログが出力されない場合があります
  - 一方で UCIDM の管理画面ではすべてのリクエストの履歴を確認できます

## 外部連携モジュール

外部サービスへ ID 連携するモジュールの制約になります。

### SCIM

[SCIM 外部連携モジュール](/resource/ucidm/docs/on-premise/1.8.0/configuration/destination/scim.md) は起動後の最初の ID 連携リクエストのタイミングで必要なスキーマ情報を取得します。そして、そのスキーマ情報はプロセスは起動している最中ずっとキャッシュされます。実運用において共通でよく使われるスキーマが変更されることは滅多にないと考えています。キャッシュしているため、スキーマ情報に変更があった場合は外部連携モジュールのプロセスを再起動する必要があります。

## 管理画面

ID 連携管理画面 および ユーザープロファイル画面の制約になります。

### 共通

ID 連携管理画面 および ユーザープロファイル画面（管理者用）において、それぞれの画面にて同名のアカウントでログインを行って同時に各種操作をした場合、主にログアウト操作をした際に上手く動かない事象が確認できています。

## 認証

認証関係の制約になります。

### 連携元を AD としている場合の認証デバイス設定

OpenAM の認証デバイス設定で使用するスキーマを使用して AD の属性を拡張する必要があります。現在の UCIDM は OpenAM と連携しているときのみ認証デバイス設定を使用できます。
