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

# SCIM 外部連携モジュール \{#scim-destination-module}

UCIDM は SCIM 対応のサービスに対して ID 連携できます。

現状は以下のサービスに対して動作を確認できています。

- Salesforce

> \[!WARNING]
> Salesforce に対しては、ユーザの追加/更新/削除の連携は行えますが、ユーザーパスワードの更新の連携は行えません。これは Salesforce の SCIM API の仕様によるものとなります。
> Salesforce と連携を行う際は、Salesforce 側で SSO の設定を行うことを推奨します。

また、SCIM 対応サービスとの認証・認可においては以下に対応しています。

- OAuth 2.0

## SCIM 外部連携設定手順 \{#scim-destination-setup}

### SCIM 外部連携設定 \{#scim-destination-settings}

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

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

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

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

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

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

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

- ドライランモード
  - 接続の取得やエントリの検索は行いますが、実際にエントリの追加/変更/削除は行わないモードとなります。
  - 主にテスト時の動作確認等に使うことを想定しています。
- 認証方式
  - client_credentials: クライアントクレデンシャルズフローで SCIM 対応サービスにアクセスする場合
    - OAuth2 クライアント ID: SCIM 対応サービスとの認証・認可で使用する OAuth2 クライアント ID
    - OAuth2 クライアントシークレット: SCIM 対応サービスとの認証・認可で使用する OAuth2 クライアントシークレット
  - access_token: アクセストークンを指定して SCIM 対応サービスにアクセスする場合
    - アクセストークン: SCIM API にアクセスする際に利用するアクセストークン
- OAuth2 トークンエンドポイント URL
  - OAuth2 トークンエンドポイントの URL を指定します。
- OAuth2 スコープ
  - OAuth2 のスコープの値を指定したい場合には、ここで設定を行います。
- SCIM スキーマ URL
  - SCIM 対応サービスの Schema の URL を指定します。
- SCIM Users URL
  - SCIM 対応サービスの Users の URL を指定します。
- SCIM Groups URL
  - SCIM 対応サービスの Groups の URL を指定します。
- 連携先サービス
  - 外部連携先のサービスを指定します。指定できる値は以下になります。
    - Salesforce
    - Others
- ユーザーステータス設定情報を使用する
  - ユーザープロファイルのステータス設定画面で指定した有効無効設定の情報を利用して、ユーザーのステータスの値を取得する場合は on にします
- ステータス用属性名
  - 有効無効設定情報を使用しない場合にこちらの設定が使われます

以下は SCIM（Salesforce）外部連携の動作設定の一例です。

- ドライランモード
  - false
- 認証方式
  - client_credentials
- OAuth2 クライアント ID
  - Salesforce で発行された値を指定
- OAuth2 クライアントシークレット
  - Salesforce で発行された値を指定
- OAuth2 トークンエンドポイント URL
  - [https://test-service.develop.my.salesforce.com/services/oauth2/token](https://test-service.develop.my.salesforce.com/services/oauth2/token)
- OAuth2 スコープ
  - 空
- SCIM スキーマ URL
  - [https://test-service.develop.my.salesforce.com/services/scim/v2/Schemas](https://test-service.develop.my.salesforce.com/services/scim/v2/Schemas)
- SCIM Users URL
  - [https://test-service.develop.my.salesforce.com/services/scim/v2/Users](https://test-service.develop.my.salesforce.com/services/scim/v2/Users)
- SCIM Groups URL
  - [https://test-service.develop.my.salesforce.com/services/scim/v2/Groups](https://test-service.develop.my.salesforce.com/services/scim/v2/Groups)
- 連携先サービス
  - Salesforce

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

- ユーザー追加/更新を行わない
  - SCIM 対応サービスに対してユーザー追加/更新を行わない場合は、この項目をオン（true）にしてください
- ユーザー削除を行わない
  - SCIM 対応サービスに対してユーザー削除を行わない場合は、この項目をオン（true）にしてください
- ユーザーパスワード更新を行わない
  - SCIM 対応サービスに対してユーザーパスワード更新を行わない場合は、この項目をオン（true）にしてください
- グループ追加/更新を行わない
  - SCIM 対応サービスに対してグループ追加/更新を行わない場合は、この項目をオン（true）にしてください
- グループ削除を行わない
  - SCIM 対応サービスに対してグループ削除を行わない場合は、この項目をオン（true）にしてください
- グループメンバー追加を行わない
  - SCIM 対応サービスに対してグループメンバー追加を行わない場合は、この項目をオン（true）にしてください
- グループメンバー削除を行わない
  - SCIM 対応サービスに対してグループメンバー削除を行わない場合は、この項目をオン（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}

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

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

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

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

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

以下は、userName の値として primaryID の後に固定値を入れてメールアドレス形式にする設定の一例です。

```
return UCIDM_PRIMARY_ID + "@scim-example.com";
```

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

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

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

| 連携先の属性名                                                             | 連携元の属性名   | ビルトイン関数名 | テンプレート文字列 | 固定値        |
| :------------------------------------------------------------------ | :-------- | :------- | :-------- | :--------- |
| displayName                                                         | cn        | --       | --        | --         |
| name.familyName                                                     | sn        | --       | --        | --         |
| name.givenName                                                      | givenName | --       | --        | --         |
| active                                                              | --        | --       | --        | true       |
| emails.0.primary                                                    | --        | --       | --        | true       |
| emails.0.type                                                       | --        | --       | --        | customType |
| emails.0.value                                                      | mail      | --       | --        | --         |
| urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.division | --        | --       | --        | staff      |

SCIM（Salesforce）外部連携のグループマッピング設定の一例です。

| 連携先の属性名 | 連携元の属性名 | ビルトイン関数名 | テンプレート文字列 | 固定値 |
| :------ | :------ | :------- | :-------- | :-- |
| 設定なし    | --      | --       | --        | --  |

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

- SCIM では階層構造を持つ属性があります。
  - 例えば、name 内の givenName に対して属性値をマッピングする場合は、「name.givenName」に対してマッピングをする必要があります。
- また、SCIM では階層構造に加えて、配列を持つ属性があります。
  - 例えば、emails 内の 最初の配列要素における、value に対して属性値をマッピングする場合は、「emails.0.value」に対してマッピングをする必要があります。
  - 配列の要素番号は、0, 1, 2, ... の形で 0 から始める番号で指定する必要があります。

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

##### userName 属性 \{#username-attribute}

本 SCIM 外部連携モジュールにおいては、primaryID の値が userName として使われます。

primaryID の値の前や後に何か文字列を付加して userName の属性値としたい場合は、前述の「userName 属性の前につける固定値」や「userName 属性の後につける固定値」の設定をしてください。

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

ユーザの有効化/無効化を制御するために主に使われる属性となります。（詳しくは SCIM 各連携先の公式マニュアル等をご参照ください。）

SCIM 連携先がこの属性を有効化/無効化のフラグとして使っている場合には、本属性に対して true/false が設定されるようマッピングを行うことで、ユーザの有効化/無効化
のステータスを制御することができます。

#### グループ属性 \{#group-attributes}

##### displayName 属性 \{#displayname-attribute}

本 SCIM 外部連携モジュールにおいては、primaryID の値が displayName として使われます。

### ルーティング \{#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) の内容を参考にしてください。

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

Salesforce に対してユーザーパスワード更新を行っても、その値は反映されません
