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

# UCIDM 用語集

## experimental: 実験的な機能

まだ開発中の実験段階の機能であることを表しています。実際のデータを使ってシステム管理者の方にご利用いただき、弊社へのフィードバックを頂けることを目的としています。機能をより良くするための改善点や不具合報告を歓迎します。

experimentalとして提供している機能は今後の開発において提供範囲の変更が発生したり、正常に動作しない条件が含まれるなど安定的に機能を提供できない可能性があります。また原則として弊社のサポートは行っておりません。experimentalの機能を使って、お客様の運用環境で問題が生じたとしても弊社から完全なサポートは提供できないことをご理解いただいたうえでご利用ください。

## 外部連携モジュール

UCIDM サーバー内で外部の連携先に ID 連携のための通信を行うモジュールのことです。

サポートしている外部サービスや連携プロトコルの詳細については [外部連携](/resource/ucidm/docs/on-premise/1.9.0/configuration/destination/index.md) を参照してください。

## Agent モジュール

内部ディレクトリサービスのサーバーまたはクラウドシステムから変更された ID 情報を検出して UCIDM サーバーへそれらの情報を連携するモジュールのことです。連携元データソースのシステムによっては定期的な問い合わせ (ポーリングと呼ぶ) を行います。

詳細については [Agent モジュール](/resource/ucidm/docs/on-premise/1.9.0/configuration/agent/index.md) を参照してください。

### PassSync Agent

パスワードを扱う特別な Agent モジュールのことです。

一般的にパスワードは暗号化して保存されるため、パスワードを連携するには暗号化される前の文字列 (平文パスワードまたは生パスワードと呼ばれる) を取得する必要があります。そのための特別な処理を行うモジュールが PassSync Agent になります。

PassSync Agent は内部ディレクトリサービスが稼働するサーバーにインストールする必要があります。詳細については [PassSync Agent モジュール](/resource/ucidm/docs/on-premise/1.9.0/configuration/passsync/index.md) を参照してください。

## ディレクトリサービス

ネットワーク上のリソースに対して ID と名前を管理するサービスの総称です。

- ユーザー／グループ管理などに X.500 ベースの [LDAP](https://ja.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) プロトコルがよく使われる
- LDAP プロトコルの実装には様々なプロダクトがある
  - [Active Directory](https://ja.wikipedia.org/wiki/Active_Directory): Windows 向けのマイクロソフト社のディレクトリサービスの実装
  - [OpenLDAP](https://ja.wikipedia.org/wiki/OpenLDAP): ミシガン大学のオリジナルの LDAP 実装から派生したもので OpenLDAP Project が開発している

### 内部ディレクトリサービス

ID 連携の連携元になる内部のサービスを指します。

## 外部サービス

ID 連携の連携先になる外部のサービスを指します。

[外部連携モジュール](/resource/ucidm/docs/on-premise/1.9.0/glossary/index.md#外部連携モジュール) により、複数の外部のディレクトリサービスやクラウドサービスと連携できます。

## ID 連携

### DN (Distinguished Name)

LDAP または UCIDM で管理するエントリー (ユーザーやグループなど) を一意に識別できる ID です。[RFC 4514](https://datatracker.ietf.org/doc/html/rfc4514) で提案されています。後述する **entryUUID との違いは変更可能** であることです。DN の値は更新できます。

### entryUUID

LDAP または UCIDM で管理するエントリー (ユーザーやグループなど) を一意に識別できる ID です。[RFC 4530](https://datatracker.ietf.org/doc/html/rfc4530) で提案されています。前述した **DN との違いは変更できない** ことです。DN の値を更新したいときは entryUUID をエントリーを識別する一意な ID として指定します。

連携元システムの次の属性の値を UCIDM へ ID 連携する際に entryUUID として管理します。

| データソース             | 連携元属性名     | UCIDM     |
| :----------------- | :--------- | :-------- |
| OpenLDAP           | entryUUID  | entryUUID |
| Active Directory   | objectGUID | entryUUID |
| Microsoft Entra ID | objectID   | entryUUID |

### primaryID

LDAP 認証のユーザー名や外部サービスへ ID 連携するときのアカウント名に相当し、UCIDM のシステム内でユーザー/グループを一意に識別できる ID です。

詳細は [UCIDM API の設定](/resource/ucidm/docs/on-premise/1.9.0/configuration/ucidm-api.md) を参照してください。

### primaryGroupID

[Active Directory におけるデフォルトグループを定義する属性](https://learn.microsoft.com/ja-jp/windows/win32/adschema/a-primarygroupid) です。ユーザーを作成したときはデフォルトで `Domain Users` グループ (`513`) に関連付けられます。UCIDM のシステム内で管理している primaryID と直接関係はありませんが、ID 連携された任意のグループを primaryGroupID に設定したい場合はそのグループの primaryID を設定します。

### ID 連携のフロー種別

ID 連携のフローについて次の種別があります。

#### 自動同期型 (provisioning, pull)

[Agent モジュール](/resource/ucidm/docs/on-premise/1.9.0/glossary/index.md#agent-モジュール) を介して、社内にある [ディレクトリサービス](/resource/ucidm/docs/on-premise/1.9.0/glossary/index.md#ディレクトリサービス) からエントリーの変更を自動的に検出して、その都度、更新内容を外部サービスへ ID 連携するフローを指します。

```mermaid
flowchart TB

in-dir-service[内部ディレクトリサービス] -- event --> passsync-agent[PassSync Agent]
passsync-agent -- https --> api[API]
in-dir-service -- ldaps --> agent[Agent]
agent -- polling --> in-dir-service
agent -- https --> api
api -- messaging --> client[外部連携モジュール]
client -- ldaps/https --> ext-service[外部サービス]
```

#### 配信型 (push)

利用者が管理画面を介して、エントリーの情報を更新したときに外部サービスへ ID 連携するフローを指します。

```mermaid
flowchart LR

ui[管理画面] -- https --> api[API]
api -- messaging --> client[外部連携モジュール]
client -- ldaps/https --> ext-service[外部サービス]
```

## リカバリとリトライ

### リカバリ

エンドユーザーの平文パスワードは再取得できないことから一時的に PassSync Agent が稼働しているサーバー内に難読化した上で保存し、定期的にそれらを読み込んで再送を試みます。環境変数 UCIDM_RECOVERY_XXX で設定します。

### リトライ

主にはネットワークエラーのような、一時的な障害に対して短い時間をあけて再リクエストすることで復旧できることを想定しています。環境変数 CLIENT_RETRY_XXX で設定します。
