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

# DN マッピング設定 \{#dn-mapping}

連携先システムに反映する DN を導出するための設定を行います。

- RDN 属性名
  - 変換後の DN において、最初の要素の属性名を指定します。（例：uid）
- 配置先 DN
  - 変換後の DN において、格納先の DN を指定します。（例：ou=people,dc=dstldap,dc=com）
- 連携元の階層構造を反映する
  - 連携元 LDAP/AD サーバーの階層構造を反映したい場合、こちらを on にします。以下のようなことが可能になります。
    - ou=sub1,ou=users,dc=srcldap,dc=com のエントリを ou=sub1,ou=people,dc=dstldap,dc=com に反映する。
    - ou=sub2,ou=users,dc=srcldap,dc=com のエントリを ou=sub2,ou=people,dc=dstldap,dc=com に反映する。
  - こちらを on にした場合、以下設定が必要です。
    - DN の変換元部分（例：ou=users,dc=srcldap,dc=com）
- スクリプトを使用する
  - DN マッピングで任意の処理をスクリプトにて記述したい場合こちらを on にします。以下設定が必要となります。
    - DN を生成するスクリプト（後述）

例えば、primaryID: test01 のデータを cn=test01,ou=people,dc=dstldap,dc=com の DN としてマッピングしたい場合は、次のように指定します。

- DN 変換先の RDN 属性名
  - cn
- DN の変換先部分
  - ou=people,dc=dstldap,dc=com

DN マッピングにおいては、入力となる DN に対し、出力となる DN が一意に決まるよう必ず設定ください。

## DN を生成するスクリプト \{#dn-script}

DN マッピング処理においては、カスタムスクリプトを用いて、任意の関数の処理を実行した結果を DN マッピング結果に設定できます。

カスタムスクリプトは javascript で記述します。

以下はカスタムスクリプトの一例です。関数名は mapDN で固定となります。

```
function mapDN(){
    // reference source DN
    if (UCIDM_DN.endsWith("ou=people,dc=example,dc=com")) {
        return UCIDM_DN.replace('ou=people,dc=example,dc=com', 'ou=users,dc=dest,dc=com');
    }
    // reference cn attribute and primaryID
    return "cn=" + cn[0] + "-" + UCIDM_PRIMARY_ID + ",ou=users2,dc=dest,dc=com";
}
```

cn の部分は環境値となり、マッピング元のデータの cn の値が参照されます。

カスタムスクリプトはユーザー、グループ の DN マッピングにおいてそれぞれ定義できます。

カスタムスクリプトには以下の環境値で情報が渡されます。

### 属性名

連携元データの各属性に対応する配列値（小文字で参照）

### UCIDM_PRIMARY_ID

primaryID の値（primaryID マッピングが設定されている場合は変換後の値、設定されていない場合は元の値）

### UCIDM_DN

変換前の DN の値
