> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Directory Sync

> HRIS またはディレクトリソリューションを接続して自動同期するか、ファイルからユーザーをインポートして、ディレクトリを最新の状態に保ちます。

組織に所属するユーザーの信頼できる情報源となるシステムから、[ディレクトリ](/ja/identity/directory/directory-overview)にデータを取り込み、最新の状態に保ちます。方法は 2 つあります。

<CardGroup cols={2}>
  <Card title="ソースシステムを接続する" icon="plug">
    **ライブソース** (**Workday** や **BambooHR** などの **HRIS**、または別の**ディレクトリソリューション**) をリンクすると、Iru はそこからユーザーを取得してスケジュールに従って同期し、ユーザーを自動的に作成、更新、削除します。さらに多くのプロバイダーが追加される予定です。
  </Card>

  <Card title="ファイルをインポートする (手動)" icon="file-csv" href="/ja/identity/directory/importing-users">
    システム用の直接コネクタがない場合は、ユーザーを **CSV** にエクスポート (従来の HR システム、**学生情報システム (SIS)**、またはファイルを生成できるあらゆるものから) してアップロードします。リストが変更されるたびに更新されたエクスポートを再アップロードして、ユーザーを最新の状態に保ちます。
  </Card>
</CardGroup>

ライブソースを接続すると、更新が自動的に Iru に流れ込むため、誰かが採用されたり、ロールが変わったり、退職したりしても、手動作業なしでディレクトリが追従します。このガイドの残りの部分では、ソースシステムの接続について説明します。手動の方法については、[CSV インポート](/ja/identity/directory/importing-users)を参照してください。

現在、HR システムの **Workday** と **BambooHR** を接続でき、さらに多くのプロバイダー (他のディレクトリソリューションを含む) が追加される予定です。セットアップはいずれも同じガイド付きフローで、プロバイダーによって異なるのは数ステップのみです。

<Note>
  ソースシステムを接続するには、Iru テナントの管理者アクセス権と、そのシステムの管理者アカウントが必要です。プロバイダーに応じて、Iru に統合の資格情報を入力するか、プロバイダー独自の同意ウィンドウで Iru を承認します。接続はソースからユーザーを**読み取る**だけで、ソースに書き戻すことはありません。
</Note>

<Frame caption="接続されたソースは、Directory の Sync タブに一覧表示されます。">
  <img src="https://mintcdn.com/iru/Pd7a0-sHKi0jGjE6/assets/media/images/directory-sync-list.webp?fit=max&auto=format&n=Pd7a0-sHKi0jGjE6&q=85&s=bdfcf859acb179f4473455ec5f090787" alt="Iru の Directory ページの Sync タブ。接続されたソースとそのステータスが一覧表示されています。" width="2000" height="1098" data-path="assets/media/images/directory-sync-list.webp" />
</Frame>

## 仕組みの概要

1. プロバイダーを**選択**します。
2. **接続:** Iru に資格情報を入力する (Workday) か、プロバイダーで Iru を承認して (BambooHR)、ユーザーデータを読み取れるようにします。
3. **構成** (一部のプロバイダーのみ): データの場所を Iru に指定します。
4. ソースのフィールドを Iru のフィールドに**マッピング**します。
5. **有効化:** 同期をオンにし、実行頻度を選択します。

```mermaid theme={null}
flowchart LR
  connect["接続<br/>+ 承認"] --> discover["Iru が利用可能な<br/>フィールドを読み取る"]
  discover --> map["フィールドをマッピング<br/>ソース → Iru"]
  map --> enable["有効化"]
  enable --> sync["スケジュールまたは<br/>オンデマンド同期"]
  sync -->|"作成 / 更新 / 削除"| dir["ディレクトリ"]
  sync -->|"問題"| errors["確認する同期エラー"]
```

接続が有効になると、Iru は設定した**間隔**で同期します。間隔は **30 分**ごとから**週** 1 回まで選択でき、**今すぐ同期** で自分で同期を実行したい場合は**手動のみ**にすることもできます。

## すべての接続に適用される考え方

* **ソースシステムが主導します。** 接続されると、ソースシステムがユーザーデータの権威となり、Iru はソースが送信する内容を反映します。
* **すべてのユーザーに安定した ID が必要です。** 各ユーザーを一意かつ永続的に識別するフィールドを 1 つ選択することで、Iru は常に正しいレコードを更新します。
* **フィールドの対応はあなたが決定します。** Iru は推測しません。各ソースフィールドを対応する Iru フィールドにマッピングし、値が 1 対 1 で対応しない場合は **IQL** で値を変換できます。

## 設定する

<Steps>
  <Step title="プロバイダーを選択する">
    **Directory → Sync** で **Connect Source** を選択し、プロバイダー (**Workday** または **BambooHR**) を選択します。

    <Frame caption="Connect Source には、接続可能なソースシステムが一覧表示されます。">
      <img src="https://mintcdn.com/iru/Pd7a0-sHKi0jGjE6/assets/media/images/connect-source.png?fit=max&auto=format&n=Pd7a0-sHKi0jGjE6&q=85&s=66f7f44acd51140036fbe7ae9707faa3" alt="Connect Source から開いた Select user source ピッカー。Workday、Bamboo、および Coming Soon と表示された Other Sources オプションが表示されています。" width="1188" height="764" data-path="assets/media/images/connect-source.png" />
    </Frame>
  </Step>

  <Step title="プロバイダーに接続する">
    接続に**表示名** (およびオプションの**説明**) を付けてから、Iru にプロバイダーへの読み取りアクセス権を付与します。方法はプロバイダーによって異なります。

    * **Workday:** Iru にインスタンスホスト、Workday テナント、Integration System User、パスワードを入力します。
    * **BambooHR:** Iru に**会社のドメイン**を入力してから、**BambooHR ウィンドウ**で承認します。BambooHR にサインインし、**Share access with Iru Identity** 画面で **アクセスを許可** を選択します。BambooHR の資格情報は Iru ではなく BambooHR に送信され、入力する API キーはありません。**15 分**以内に承認を完了するか、Iru に戻って接続を最初からやり直してください。

    正確なフィールドと画面については、[プロバイダーガイド](#choose-your-provider)を参照してください。

    <Frame caption="Workday 接続: Iru に入力された Integration System User の資格情報。">
      <img src="https://mintcdn.com/iru/60YZAZS1iNMrBv2w/assets/media/images/iru-identity-connect-workday.png?fit=max&auto=format&n=60YZAZS1iNMrBv2w&q=85&s=637b56461035f9b7762f63e0d01daabb" alt="Integration user と Password を求める Connect with Workday ステップ。" width="1266" height="267" data-path="assets/media/images/iru-identity-connect-workday.png" />
    </Frame>

    <Tip>
      可能であれば専用の管理者 / 統合アカウントを使用して、特定のユーザーのステータスに関係なく接続が機能し続けるようにしてください。
    </Tip>
  </Step>

  <Step title="データの場所を構成する (一部のプロバイダー)">
    一部のプロバイダーでは、Iru に正しいデータソースを指定する必要があります。**Workday** では、必要なワーカーフィールドを公開する**レポート名**を求められます。前のステップの Integration System User がそのレポートを実行します。**BambooHR** は標準の従業員ディレクトリを読み取るため、このステップはスキップされます。下記の[プロバイダーガイド](#choose-your-provider)を参照してください。
  </Step>

  <Step title="データを Iru にマッピングする">
    Iru はプロバイダーが提供するフィールドを読み取り、照合できるように並べて表示します。下記の[データをマッピングする](#map-your-data)を参照してください。
  </Step>

  <Step title="完了して有効化する">
    マッピングを保存してセットアップを完了します。新しい接続は**無効**の状態で開始されるため、確認するまで何も同期されません。確認後、**有効にする** にして最初のインポートを実行します。接続の Configuration タブで**同期間隔**を設定するか、**Manual only** のままにして、更新が必要なときに **今すぐ同期** を使用します。
  </Step>
</Steps>

## データをマッピングする

マッピングはセットアップの大部分を占める作業で、ソースのフィールドを Iru の対応するフィールドに接続します。

<Frame caption="Mapping タブ: 一意の識別子の式と属性ごとの行。各行はソースフィールドまたは IQL 式で埋められます。">
  <img src="https://mintcdn.com/iru/yv46VZ-WbN1GdStp/assets/media/images/sync-connection-mapping.webp?fit=max&auto=format&n=yv46VZ-WbN1GdStp&q=85&s=aad2660a55fb85c678742bdbc11b9596" alt="接続の Mapping タブ。Unique user identifier フィールドと、Bamboo のフィールド (firstName、lastName、workEmail) を Iru の属性 (name.firstName、name.lastName、primaryEmail.email) にマッピングする Attributes リストが表示され、一部の値は IQL 式で構築されています。" width="1888" height="1036" data-path="assets/media/images/sync-connection-mapping.webp" />
</Frame>

### 一意の識別子を設定する

各ユーザーを一意に識別するフィールドを選択します。多くの場合、**従業員 ID** または同様の安定した識別子です。Iru は、名前やメールアドレスが変更された場合でも、すべての同期で*正しい*レコードを更新するために、ユーザーごとに 1 つの安定した値に依存します。

<Warning>
  ユーザーに対して決して変わらないものを選択してください。**接続を保存すると、一意の識別子は変更できません。** 変更すると、Iru がすでにインポートしたユーザーを認識できなくなります。
</Warning>

### フィールドを Iru に対応付ける

Iru の各属性について、それを埋めるソースフィールドを選択します。4 つの属性は**必須**で、常にマッピングされます。

* **メール**
* **名**
* **姓**
* **ユーザー名**

[スキーマ](/ja/identity/directory/schema)で必須としてマークした属性も、ここで必須になります。それ以外はすべてオプションですが、マッピングすると役職、部署、マネージャー、所在地など、各ユーザーの全体像が取り込まれます。

### IQL で値を変換する

ほとんどのフィールドは選択するだけで済みます。必要な値をそのままコピーするのではなく、フィールドから*構築*する必要がある場合は、代わりに短い **IQL** 式を記述します。入力中に Iru が利用可能なフィールドを提案して式をチェックするため、同期中ではなく保存*前*に入力ミスやフィールドの欠落に気付くことができます。完全な構文については、[属性マッピング](/ja/identity/directory/attribute-mapping#writing-expressions)および [IQL 式](/ja/identity/getting-started/iql-expressions)を参照してください。

#### フィールド名の読み取り方

IQL はフィールド名をコードとして読み取ります。そのままの名前は、有効な IQL 識別子である場合に機能します。つまり、ASCII 文字またはアンダースコアで始まり、以降のすべての文字が ASCII 文字、数字、またはアンダースコアである必要があります。`first_name` は条件を満たすため、そのまま記述します。ドットは有効な名前を結合してネストされた値にアクセスします (`name.givenName` など)。名前自体にドットを含むフィールドは 1 つのキーであるため、`__source["name.givenName"]` として検索します。

一部のソースシステムは、このルールに当てはまらない名前を送信します。

* `Email - Work` や `urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department` など、スペース、ハイフン、コロン、その他の記号を含む名前
* `in`、`null`、`true`、`if` など、IQL キーワードでもある名前

そのまま記述すると、`Email - Work` は `Email` から `Work` を引くと解釈され、`in` はメンバーシップ演算子として解釈されます。フィールドを読み取るには、ソースのすべてのフィールドのマップである `__source` で正確な名前を指定して検索します。

```
__source["Email - Work"]
```

マッピングエディターでこれらのフィールドのいずれかを選択または入力すると、Iru はそれを `__source["…"]` に書き換えます。この形式は任意のフィールドに使用でき、他の値と同様に長い式の中でも機能します。

```
__source["Email - Work"].lowerAscii()
```

フィールド名に二重引用符 (`"`) またはバックスラッシュ (`\`) が含まれる場合は、括弧内でそれぞれの前にバックスラッシュを付けます。`Title "Legal"` という名前のフィールドは `__source["Title \"Legal\""]` と記述します。エディターはフィールドを書き換える際にこれらのバックスラッシュを追加します。

一般的な例 (プロバイダー独自のフィールド名を使用してください):

* **メールアドレスからユーザー名を構築する** (`@` より前のすべて):
  `email.split("@")[0]`
* **2 つのフィールドを 1 つの値に結合する**:
  `firstName + " " + lastName`
* **一方のフィールドを優先し、空の場合は別のフィールドにフォールバックする**:
  `optional.ofNonZeroValue(workEmail).orValue(homeEmail)`

<Tip>
  空になる可能性のあるテキストフィールドを変換する場合は、式が引き続き実行されるよう値をガードしてください。変換する前に `optional.ofNonZeroValue(...).orValue("")` でラップします。たとえば、メールアドレスが存在する場合にのみユーザー名を導出するには:
  `optional.ofNonZeroValue(email).orValue("").split("@")[0]`

  **Boolean**、**Date**、**Integer**、または **Decimal** のカスタム属性に対する空または null のマッピング値で同期が失敗することはありません。既存の値がクリアされます。[空のマッピング値](/ja/identity/directory/attribute-mapping#blank-mapped-values)を参照してください。
</Tip>

## プロバイダーを選択する

フローはいずれも同じです。これらのガイドでは異なるステップについて説明します。

<CardGroup cols={2}>
  <Card title="Workday を接続する" icon="briefcase" href="/ja/identity/directory/hris-workday">
    Workday レポートからワーカーを読み取ります。レポートと統合ユーザーのステップが含まれます。
  </Card>

  <Card title="BambooHR を接続する" icon="seedling" href="/ja/identity/directory/hris-bamboohr">
    BambooHR の標準従業員ディレクトリから読み取ります。構成するレポートはありません。
  </Card>
</CardGroup>

| ステップ | Workday | BambooHR |
| - | - | - |
| 接続 | Iru に資格情報を入力 | BambooHR でサインインして **アクセスを許可** |
| レポートの構成 | はい | いいえ (標準フィールド) |
| フィールドのマッピング (一意の ID、必須フィールド、IQL) | はい | はい |
| 有効化とスケジュールに従った同期 | はい | はい |

## 各同期で行われること

有効化されると、Iru は選択した間隔で同期し、ディレクトリをソースシステムと照合します。

| ソースでの変更 | Iru の処理 |
| - | - |
| 新しいユーザーが表示される | ディレクトリに対応するユーザーを作成する |
| ユーザーの詳細が変更される | ユーザーのプロファイル属性を更新する |
| ユーザーが存在しなくなる | ディレクトリからユーザーを削除する |

プロファイルが到着して変更されると、[Auto Groups](/ja/identity/directory/auto-groups) がメンバーシップを自動的に更新するため、手動作業なしでアクセスがユーザーに追従します。

<Frame caption="接続の Effective Users: ソースから現在同期されているユーザー。">
  <img src="https://mintcdn.com/iru/yv46VZ-WbN1GdStp/assets/media/images/sync-connection-effective-users.webp?fit=max&auto=format&n=yv46VZ-WbN1GdStp&q=85&s=811705e35cdd3db62a8016e32e0635fe" alt="接続の Effective Users タブ。Ashley Adams や Charlotte Abbott などの同期されたユーザーが作成日と ID とともに一覧表示されています。" width="1888" height="1036" data-path="assets/media/images/sync-connection-effective-users.webp" />
</Frame>

## 同期スケジュールとオンデマンド同期

接続の **構成** タブで、**Interval** コントロールを使用して **Sync frequency** を設定します。Iru が最新のディレクトリを取得する頻度を選択するか、**Manual only** に設定してオンデマンドで同期します。

利用可能な間隔:

* Manual only (自動同期なし)
* 30 分ごと
* 1 時間ごと
* 2 時間ごと
* 4 時間ごと
* 8 時間ごと
* 12 時間ごと
* 毎日
* 2 日ごと
* 毎週

<Frame caption="Iru が接続を同期する頻度を選択します。">
  <img src="https://mintcdn.com/iru/60YZAZS1iNMrBv2w/assets/media/images/iru-identity-sync-frequency.png?fit=max&auto=format&n=60YZAZS1iNMrBv2w&q=85&s=8f34a961b593788e00bde0adff90a0a8" alt="Interval メニューが開いた Sync schedule セクション。Manual only と、Every 30 minutes から Every week までのオプションが一覧表示されています。" width="1012" height="716" data-path="assets/media/images/iru-identity-sync-frequency.png" />
</Frame>

**同期** タブで、**今すぐ同期** を使用してすぐに実行を開始し、**Refresh** を使用して同期実行のリストを再読み込みします。各実行では、ディレクトリソースからすべてのユーザーを読み取り、Iru に追加または更新します。実行を選択すると、その実行で行われた内容と同期できなかった内容を確認できます。失敗した実行は、次のスケジュールされた同期で再試行されます。

## 接続の継続的な管理

接続の詳細ページから、次のことができます。

* **再認証:** 接続の有効期限が切れたり拒否されたりした場合に、マッピングに触れることなく、新しい資格情報を送信するか、プロバイダーで再度アクセスを承認します。
* **構成またはマッピングの編集:** ニーズの変化に応じてインポートする内容を調整します。
* **同期間隔の設定**、または **今すぐ同期** の実行。
* **属性の強制同期** (Workday): 待つことなく、レポートから利用可能な最新のフィールドを再読み取りします。
* **アクティビティ、有効なユーザー、同期エラーの確認:** 流入している内容を確認し、対応が必要なものを見つけます。
* 接続の**有効化または無効化**、または削除。

<Frame caption="接続の詳細ページ: ステータス、接続の健全性、および 再認証。">
  <img src="https://mintcdn.com/iru/60YZAZS1iNMrBv2w/assets/media/images/iru-identity-start-reauthentication-bamboo.png?fit=max&auto=format&n=60YZAZS1iNMrBv2w&q=85&s=a3415b8304ce762d249f68120a108691" alt="Bamboo 接続の Configuration タブ。Status Enabled、Needs re-authentication と表示された接続の詳細、および行メニューの 再認証 アクションが表示されています。" width="2048" height="527" data-path="assets/media/images/iru-identity-start-reauthentication-bamboo.png" />
</Frame>

<AccordionGroup>
  <Accordion title="接続ステータスと再認証" icon="plug-circle-check">
    **Directory → Sync** リストでは、各接続が **Enabled** か **Disabled** か、および接続の健全性の値が表示されます。

    | 健全性 | 意味 |
    | - | - |
    | **接続済み** | Iru はソースからの読み取りを承認されています。 |
    | **Needs re-authentication** | 資格情報またはプロバイダーの承認が欠落、期限切れ、取り消し、または拒否されています。同期を成功させるには再認証してください。 |
    | **Not connected** | 接続は認証の準備ができていません (セットアップが未完了の場合など)。 |

    接続の **構成** タブでは、**Connection details** にそのプロバイダーの同じ健全性が表示されます。**再認証** を使用して、現在の資格情報を入力するか、プロバイダーで再度アクセスを承認します。属性マッピングには影響しません。

    * **BambooHR:** Iru が開くウィンドウで BambooHR に再度サインインし、**アクセスを許可** を選択します。
    * **Workday:** Integration user とパスワードを再入力します。

    <Frame caption="現在の Integration System User の資格情報で Workday を再認証します。">
      <img src="https://mintcdn.com/iru/60YZAZS1iNMrBv2w/assets/media/images/iru-identity-reauthenticate-workday.png?fit=max&auto=format&n=60YZAZS1iNMrBv2w&q=85&s=c79cab0ae17064cc945d1b9c482edb1b" alt="Integration user と Password フィールドを含む 再認証 Workday ダイアログ。属性マッピングには影響しないことが記載されています。" width="893" height="289" data-path="assets/media/images/iru-identity-reauthenticate-workday.png" />
    </Frame>
  </Accordion>

  <Accordion title="同期エラー" icon="triangle-exclamation">
    同期の問題は 2 つの段階で表示されます。どの段階で失敗したかがわかれば、最初に確認すべき場所がわかります。

    * **プル段階のエラー**は、Iru がソースから読み取れない場合に発生します。不正または期限切れの資格情報、期限切れまたは取り消されたプロバイダーの承認、到達できないインスタンス、欠落しているレポート、または拒否された API 呼び出しなどです。接続を修正し (多くの場合 **再認証** を使用するか、レポートまたはドメインの設定を修正します)、再度同期を実行します。
    * **適用段階 (同期) のエラー**は、Iru がレコードを取得した後、ディレクトリ内の特定のユーザーを作成または更新できない場合に発生します。Iru は確認可能な**同期エラー**を記録します。発生日時、影響を受けたユーザー、Iru が試行したアクション、エラーコード、メッセージが含まれます。多数のレコードが同じエラーで失敗する場合、原因は通常マッピングです。必須属性がマッピングされていないか、一意の識別子が実際には一意ではありません。マッピングを修正してから、次の同期を実行させます。

    <Frame caption="Activity タブに表示された失敗した同期とその詳細なエラー情報。この例では、必須属性が欠落していたためにレコードが拒否されました。">
      <img src="https://mintcdn.com/iru/yv46VZ-WbN1GdStp/assets/media/images/sync-connection-activity.webp?fit=max&auto=format&n=yv46VZ-WbN1GdStp&q=85&s=5ff12dfeabf47729bd45c799dc9cadf9" alt="接続の Activity タブ。FAILED エントリと、必須属性が欠落していたためにユーザーをプロビジョニングできなかったことを説明する展開されたエラーの詳細が表示されています。" width="1888" height="1036" data-path="assets/media/images/sync-connection-activity.webp" />
    </Frame>
  </Accordion>
</AccordionGroup>

## 関連情報

<CardGroup cols={2}>
  <Card title="Workday を接続する" icon="briefcase" href="/ja/identity/directory/hris-workday">
    レポートのステップを含む、Workday 固有のセットアップ。
  </Card>

  <Card title="BambooHR を接続する" icon="seedling" href="/ja/identity/directory/hris-bamboohr">
    BambooHR 固有のセットアップ。
  </Card>

  <Card title="属性マッピング" icon="code" href="/ja/identity/directory/attribute-mapping">
    受信した値を整形するために使用する IQL。
  </Card>

  <Card title="スキーマ" icon="table-list" href="/ja/identity/directory/schema">
    ソースフィールドのマッピング先となる属性。
  </Card>
</CardGroup>
