> 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.

# Windows AD 外部連携モジュール \{#ad-destination-module}

UCIDM は [Windows AD](https://learn.microsoft.com/ja-jp/windows-server/identity/ad-ds/active-directory-domain-services) に対して ID 連携できます。

## Windows AD 外部連携設定手順 \{#ad-destination-setup}

## AD 外部連携設定 \{#ad-destination-settings}

管理画面にて AD の外部連携設定が行えます。ホーム画面の「外部連携設定」を選択し、外部連携設定一覧画面に遷移します。外部連携設定一覧画面で、登録ボタンを押下することで新規外部連携設定画面が表示されます。

![](/resource/ucidm/docs/on-premise/static/image/federation-setting.a8162487da.png)
この新規外部連携設定画面の各セクションで詳細内容を設定します。

### 種別および基本情報 \{#destination-type-basic-info}

外部連携設定の種別および基本情報を指定します。

- 外部連携先の種別
  - AD を指定します
  - 既存の AD 外部連携設定の内容を利用する場合は、「既存の外部連携先を利用」を選択し、利用元の外部連携設定を選択してください
- 連携 ID
  - 一意の連携 ID を指定します
- 外部連携先 ID
  - 任意の値を指定します
- 説明

### 連携設定 \{#federate-settings}

AD 外部連携の連携設定を行います。設定項目と内容は次になります。

- ドライランモード
  - 接続の取得やエントリの検索は行いますが、実際にエントリの追加/変更/削除は行わないモードとなります
  - 主にテスト時の動作確認等に使うことを想定しています
- AD URL
  - 接続する外部連携先 AD への URL
- バインド DN
  - 外部連携先 AD の Bind DN
- バインドパスワード
  - 外部連携先 AD の Bind DN のパスワード
- TLS の検証をスキップ
  - TLS の検証をスキップするかを指定します
- ドメイン
  - AD のドメイン名を指定します（例：destad.com）
  - 主に userPrincipalName の値の自動生成に使われます
- ベース DN
  - AD のベース DN を指定します
  - 主に sAMAccountName をキーにしてユーザ/グループ検索を行う際の検索基点として使われます
- プライマリグループ用属性名
  - ユーザのリクエストにおいて、primaryGroupID に設定したいグループの sAMAccountName の値を入れる属性を指定します
  - プライマリグループ用属性に指定した属性については、AD のユーザ送信データには含まれません
  - ユーザープロファイルのステータス設定画面で指定した有効無効設定の情報を利用して、ユーザーのステータスの値を取得する場合は on にします
- ユーザーステータス設定情報を使用する
- ステータス用属性名
  - ユーザーステータス設定情報を使用しない場合にこちらの設定が使われます
  - マッピング後の属性について、AD のユーザーステータスとして反映させたい属性を指定します
  - 本属性には true/false の真偽値が連携されてくる必要があります（有効化の場合は true、無効化の場合は false が割り当てられる必要があります）
  - ステータス用属性に指定した属性については、AD のユーザ送信データには含まれません
  - 値が未設定の場合は、連携先 AD へのステータス情報の反映は行われません

#### 実施しない操作の設定 \{#skip-operations}

- ユーザー追加/更新を行わない
  - AD に対してユーザー追加/更新を行わない場合は、この項目をオン（true）にしてください
- ユーザー削除を行わない
  - AD に対してユーザー削除を行わない場合は、この項目をオン（true）にしてください
- ユーザーパスワード更新を行わない
  - AD に対してユーザーパスワード更新を行わない場合は、この項目をオン（true）にしてください
- グループ追加/更新を行わない
  - AD に対してグループ追加/更新を行わない場合は、この項目をオン（true）にしてください
- グループ削除を行わない
  - AD に対してグループ削除を行わない場合は、この項目をオン（true）にしてください
- グループメンバー追加を行わない
  - AD に対してグループメンバー追加を行わない場合は、この項目をオン（true）にしてください
- グループメンバー削除を行わない
  - AD に対してグループメンバー削除を行わない場合は、この項目をオン（true）にしてください

#### 前処理・後処理スクリプト設定 \{#pre-post-processing-scripts}

UCIDM では、外部連携処理の前後で任意のシェルスクリプトを実行できます。

次の [外部連携の前処理/後処理で実行するスクリプトの配置](/resource/ucidm/docs/on-premise/dev/administration/admin-ui/destination/script.md) を参考に、スクリプトファイルを配置後、[外部連携の前処理/後処理で実行するスクリプトの設定](/resource/ucidm/docs/on-premise/dev/administration/admin-ui/scriptsettings.md) を参考に、実行したいスクリプトファイルを指定してください。

### マッピング \{#mapping}

AD 外部連携の以下マッピング設定を行います。以下順序でマッピングが適用されます。

- PrimaryID マッピング
  - 新規外部連携設定作成画面においては、「詳細設定を表示」を押下することで設定が可能になります
- DN マッピング
- 属性マッピング

それぞれのマッピング設定について説明します。

#### PrimaryID マッピング \{#primaryid-mapping}

次の [PrimaryID マッピング設定](/resource/ucidm/docs/on-premise/dev/administration/admin-ui/primaryid-mapping.md) を参考にしてください。

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

次の [DN マッピング設定](/resource/ucidm/docs/on-premise/dev/administration/admin-ui/dn-mapping.md) を参考にしてください。

#### 属性マッピング \{#attribute-mapping}

次の [属性マッピング設定](/resource/ucidm/docs/on-premise/dev/administration/admin-ui/mappings.md) を参考にしてください。

以下は AD 外部連携のユーザーマッピング設定の一例です。

| 連携先の属性名        | 連携元の属性名     | ビルトイン関数名 | テンプレート文字列 | 固定値                                     |
| :------------- | :---------- | :------- | :-------- | :-------------------------------------- |
| objectClass    | --          | --       | --        | top, person, user, organizationalPerson |
| sn             | sn          | --       | --        | --                                      |
| givenName      | givenName   | --       | --        | --                                      |
| description    | description | --       | --        | --                                      |
| accountExpires | --          | --       | --        | NEVER_EXPIRES                           |

以下は AD 外部連携のグループマッピング設定の一例です。

| 連携先の属性名     | 連携元の属性名     | ビルトイン関数名 | テンプレート文字列 | 固定値        |
| :---------- | :---------- | :------- | :-------- | :--------- |
| objectClass | --          | --       | --        | top, group |
| description | description | --       | --        | --         |

また、以下の属性は Windows AD 外部連携モジュール独自のマッピングになるため、合わせてご参照ください。

#### ユーザー・グループ共通の属性 \{#common-attributes}

##### cn 属性 \{#cn-attribute}

本属性については、連携されてきた DN （例：cn=test1,ou=people,dc=example,dc=com）の RDN （例：test1）の値が自動でセットされるので、マッピング設定は必要ありません。

##### sAMAccountName 属性 \{#samaccountname-attribute}

本属性については、連携されてきた primaryID の値が自動でセットされるので、マッピング設定は必要ありません。

この属性の値は 20 文字以下としなければいけない制限がございます。

- [https://learn.microsoft.com/ja-jp/windows/win32/adschema/a-samaccountname](https://learn.microsoft.com/ja-jp/windows/win32/adschema/a-samaccountname)

#### ユーザー属性 \{#user-attributes}

##### accountExpires 属性 \{#accountexpires-attribute}

accountExpires 属性は AD ユーザーのアカウント有効期限をセットするために利用されます。
この属性に値をセットする際は、以下のいずれかの形式で値をセットしてください。

- RFC 3339 の形式（2023-08-28T00:00:00+00:00）
  - タイムゾーンを自由に指定するにはこの形式にて値をセットしてください
- "2023-08-28 10:00:00" の形式
  - 本形式で値がセットされると、例として上記値であれば、UTC の "2023-08-28 10:00:00" として有効期限が設定されます
- "2023-08-28" の形式
  - 本形式で値がセットされると、例として上記値であれば、UTC の "2023-08-28 00:00:00" として有効期限が設定されます
- "NEVER_EXPIRES" の形式
  - "NEVER_EXPIRES" という文字列をセットすることで、アカウントの有効期限を無期限に設定できます

### ルーティング \{#routing-setting}

連携するユーザー／グループの決め方について設定します。全ユーザー・全グループをそのまま連携する際は「すべて連携」を選択します。

ルーティング設定の詳細については [ルーティング設定](/resource/ucidm/docs/on-premise/dev/administration/admin-ui/index.md#external-federation-routing) の内容を参考にしてください。

メンバーシップブリッジ設定も行えます。詳細については [メンバーシップブリッジ設定](/resource/ucidm/docs/on-premise/dev/administration/admin-ui/index.md#external-federation-membership-bridge) の内容を参考にしてください。

## AD 外部連携モジュールの留意事項 \{#ad-destination-notes}

### ユーザーステータスの変更 \{#user-status-change}

ステータス設定情報またはステータス用属性の値を参照して AD のユーザーステータスを変更します。

### ユーザーの primaryGroupID の変更 \{#user-primarygroupid-change}

UCIDM では、上記「プライマリグループ用属性名」の属性に連携されてきた値（グループの sAMAccountName）をみて、AD のユーザーの primaryGroupID の値をセットします。
プライマリグループに設定したいグループのメンバーに、そのユーザーが所属していない場合には、エラーになります。（グループに対象のユーザーをメンバーとして追加後、再度 primaryGroupID の連携を行う必要がございます。）
