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

# ユーザーのインポート

> CSV ファイルから Iru Identity ユーザーを一括作成および更新します。必須列、検証ルール、再アップロード時の動作、および代わりに HR 同期を使用すべき場合について説明します。

一度に数人以上のユーザーを追加または更新する必要がある場合は、**CSV** ファイルからユーザーを一括インポートします。インポートされた各ユーザーには **`csv`** ソースタグが付与され、更新されたファイルを再アップロードすると同期が維持されます。CSV インポートは、初期読み込みや一時的な更新に適しています。HR システムが継続的な信頼できる情報源である場合は、代わりに [HR 同期](#when-to-use-hr-sync-instead)を使用してください。

定義した[カスタム属性](/ja/identity/directory/schema#custom-attributes)をファイルの列として含めることもできます。**Directory → Users** で **+ User** の横にある矢印を選択し、**Import via CSV** を選択します。

<Note>
  リストが変更されるたびに再アップロードしてください。CSV インポートと HR 同期は組み合わせることができます。多くのチームは CSV でディレクトリに初期データを投入し、その後 HR システムを接続して最新の状態を維持しています。[HR 同期を使用すべき場合](#when-to-use-hr-sync-instead)を参照してください。
</Note>

## ファイルの要件

| 要件 | 詳細 |
| - | - |
| **形式** | カンマ区切り値 (`.csv`)。 |
| **エンコーディング** | UTF-8。先頭のバイトオーダーマーク (Excel が追加するもの) は受け入れられ、無視されます。 |
| **最初の行** | 列に名前を付ける**ヘッダー行**。 |
| **ヘッダー名 (コア列)** | **大文字と小文字が区別され**、完全に一致する必要があります (`ExternalID` ではなく `externalId`)。 |
| **ヘッダー名 (カスタム属性)** | `categorySlug.attributeSlug` を使用します。ヘッダーの大文字/小文字とスペースは無視されます。 |
| **最大行数** | アップロードあたり 50,000 データ行。 |
| **最大ファイルサイズ** | 16 MB。 |

<Warning>
  インポートは**オールオアナッシング**です。ファイルに構造的な問題がある場合、またはいずれかの行が検証に失敗した場合は、**何もインポートされません**。Iru はすべての問題のレポートを返すため、ファイルを修正して再度アップロードできます。
</Warning>

## 列

インポートダイアログには、ファイルに含めることができるすべての列が一覧表示されます。必須のコア列、オプションのコア列、および[スキーマ](/ja/identity/directory/schema)のカスタム属性列です。**Download sample.csv** のサンプルをヘッダーテンプレートとして使用してください。列名がサンプルと一致すると、各行の値は `externalId` で識別されるユーザーの対応するプロファイルフィールドに入力されます。

### 必須

すべての行で、これらの各列に空でない値を含める必要があります。

| 列 | 説明 | ルール | 例 |
| - | - | - | - |
| `externalId` | ユーザーの安定した識別子。再アップロード時に行を照合するために使用されます。 | 空でないこと。**ファイル内で一意**であること。 | `EMP-10482` |
| `username` | ユーザーのログインユーザー名。 | 空でないこと。 | `jane.doe` |
| `email` | ユーザーのプライマリメールアドレス。 | 有効な**アドレスのみ** (表示名なし。`Jane <jane@example.com>` は拒否されます)。 | `jane.doe@example.com` |
| `firstName` | 名。 | 空でないこと。 | `Jane` |
| `lastName` | 姓。 | 空でないこと。 | `Doe` |

### オプション

値が不要な場合は、セルを空のままにするか、列を完全に省略します。`domain` が空の場合、Iru はメールアドレスからそれを導出します。

| 列 | 説明 | ルール | 例 |
| - | - | - | - |
| `domain` | ユーザーのドメイン。 | 空の場合、`email` の `@` 以降の部分から導出されます。異なる値にする必要がある場合にのみ設定します。 | `example.com` |
| `streetAddress` | 住所の番地。 | 自由テキスト。 | `123 Main St` |
| `locality` | 市区町村。 | 自由テキスト。 | `San Francisco` |
| `region` | 州、県、または地域。 | 自由テキスト。 | `CA` |
| `postalCode` | 郵便番号。 | 自由テキスト。 | `94105` |
| `country` | 国。 | 自由テキスト (例: ISO 国コード)。 | `US` |
| `phone` | 電話番号。 | E.164 に正規化されます。[電話番号](#phone-numbers)を参照してください。 | `+14155550101` |

### カスタム属性

スキーマでカスタム属性を定義すると、インポートダイアログの **Custom attribute columns** にそれらが一覧表示されます。名前はカテゴリスラッグと属性スラッグから `categorySlug.attributeSlug` となります。たとえば、スラッグが `extrainfo` のカテゴリ内の `department` と `title` は、`extrainfo.department` と `extrainfo.title` として表示されます。

CSV ヘッダーに属性ごとに 1 列を追加します。コア列名は完全に一致する必要があります。カスタム属性列名では大文字/小文字とスペースが無視されます。

### サンプルファイル

インポートダイアログで **Download sample.csv** を選択すると、すべてのコア列と 1 人のサンプルユーザーを含むスターターファイルを取得できます。スキーマにカスタム属性が含まれている場合は、**Download sample.csv** の横にある矢印を選択し、**With custom attributes** を選択します。このサンプルにはスキーマ内の各カスタム属性の列が追加され、サンプル行のそれらのセルは入力できるよう空のままになっています。コア列とサンプルユーザーは同じです。

サンプルユーザーを独自の行に置き換え、ヘッダー名は変更しないでください。

<Expandable title="オプション列のバリエーション">
  すべての行にすべてのオプション列が必要なわけではありません。行には、必須列のみ、部分的な住所、または国コードの有無にかかわらず電話番号を含めることができます。メールアドレスと一致させる場合は `domain` を空のままにし、ユーザーの値がない場合はカスタム属性のセルを空のままにします。
</Expandable>

## フィールドの動作

### ドメインの導出

* `domain` が**空**の場合、Iru はメールアドレスからそれを取得します (`jane.doe@example.com` は `example.com` になります)。
* `domain` が**指定されている**場合、その値がそのまま使用されます。
* まだ存在しないドメインは自動的に作成されます。

### 電話番号

電話番号の値は、Iru Identity の他の場所で電話番号が保存されるのと同じ方法で、**E.164** (先頭の `+`、国コード、数字の順で、スペースや句読点なし) に正規化されます。

| 入力値 | 保存される値 | 理由 |
| - | - | - |
| `4155550101` | `+14155550101` | 国コードなし。デフォルトの **`+1`** (北米) が追加されます。 |
| `(415) 555-0101` | `+14155550101` | 区切り文字が削除され、`+1` が追加されます。 |
| `14155550101` | `+14155550101` | すでに `1` を含む北米の番号として認識されます。 |
| `+14155550101` | `+14155550101` | すでに E.164 形式のため、そのまま保持されます。 |
| `+44 7911 123456` | `+447911123456` | 国際番号 (`+` あり)。国コードは保持され、区切り文字が削除されます。 |
| `1-800-FLOWERS` | *拒否* | 文字が含まれています。 |
| `555-0101` | *拒否* | 有効な番号としては桁数が少なすぎます。 |

<Tip>
  北米以外の番号には、`+` と国コード (例: `+44…`) を含める必要があります。先頭に `+` がない場合、番号は 10 桁の北米の番号とみなされ、`+1` が付けられます。
</Tip>

### 住所

Iru は、**いずれか**の住所列に値がある場合に住所を保存します。部分的な住所 (たとえば `locality` と `country` のみ) でも問題ありません。欠落している部分は空のままです。すべての住所列が空の場合、住所は保存されません。

## インポートを実行する

**Import users via CSV** ダイアログには、必須およびオプションのコア列、スキーマのカスタム属性列、および **With custom attributes** 用の矢印が付いた **Download sample.csv** が表示されます。ファイルをアップロード領域にドラッグするか、参照して選択します。

<Steps>
  <Step title="インポートを開始する">
    **Directory → Users** で **+ User** の横にある矢印を選択し、**Import via CSV** を選択します。ダイアログの列リストを上記の表と照らし合わせて確認します。
  </Step>

  <Step title="ファイルを準備する">
    **Download sample.csv** を選択して、コア列と 1 人のサンプルユーザーを含むファイルを取得します。ファイルにカスタム属性列が含まれる場合は、**Download sample.csv** の横にある矢印を選択し、**With custom attributes** を選択します。サンプルユーザーを独自の行に置き換え、各行が正しいユーザーとプロファイルフィールドにマッピングされるよう、サンプルのヘッダー名を維持します。
  </Step>

  <Step title="ファイルを選択する">
    CSV を選択するか、アップロード領域にドラッグします。
  </Step>

  <Step title="アップロードして検証する">
    Iru は最初にファイル全体を検証します。検証に合格すると、行が受け入れられ、ユーザーがバックグラウンドで作成または更新されます。検証に失敗すると、ダイアログにレポートが表示され、何もインポートされません。
  </Step>

  <Step title="結果を確認する">
    アップロードが成功すると、ステージングされたユーザー数が報告され、インポートが履歴に追加されます。履歴では各行の結果を確認できます。
  </Step>

  <Step title="ユーザーを招待する">
    インポートによって作成されたユーザーは、セットアップを完了するまで **pending** 状態です。ユーザーリストから[一括](/ja/identity/directory/users#resend-invites-in-bulk)で、またはユーザーレコードから [1 人ずつ](/ja/identity/directory/users#resend-an-invite-for-one-user)招待します。招待の送信先メールアドレスを含む招待の仕組みについては、[ユーザーの招待](/ja/identity/directory/users#inviting-users)を参照してください。
  </Step>
</Steps>

アップロード後、Iru はファイル全体を検証します。検証に失敗した場合、何もインポートされません。報告された問題を修正して再度アップロードしてください。検証に合格すると、行が受け入れられてステージングされ、ユーザーがバックグラウンドで作成または更新されます。履歴でインポートを確認して各行を確認してください。ファイルが受け入れられた後でも、適用時に行が失敗する場合があります。それらの行を修正して再インポートしてください。2 段階のチェックについては、[検証とエラー](#validation-and-errors)を参照してください。

## 作成と更新: 再アップロード

ユーザーは `csv` ソース内の `externalId` で照合されます。

* **新しい `externalId`** は、**`end-user`** ロールを持つ新しいユーザーを作成します。
* **既存の `externalId`** は、行からそのユーザーのプロファイルを更新します。ロールとグループメンバーシップは変更されません。

インポートされたユーザーの同期を維持するために、修正または拡張された CSV をいつでも再アップロードできます。ファイル内のすべての `externalId` は一意である必要があります。

<Note>
  変更した行だけでなく、毎回**完全な**現在のファイルを再アップロードしてください。各インポートは `externalId` で照合されます。
</Note>

## 検証とエラー

検証は 2 段階で実行されます。ファイルが完全に受け入れられるまで、**何もインポートされません**。

<AccordionGroup>
  <Accordion title="ファイルの問題 (ファイル全体が拒否される)">
    ファイルを処理できません。一般的な原因には、重複した列、必須列の欠落、空のファイル、データ行のないヘッダー、または制限を超える行数があります。ファイルを修正して再度アップロードしてください。
  </Accordion>

  <Accordion title="行の問題 (やはり何もインポートされない)">
    ファイルの形式は正しいものの、1 つ以上の行が無効です。Iru は、**行番号** (ヘッダーが 1 行目のため、最初のデータ行は 2 行目)、問題のある**列** (行全体の問題の場合は空)、および**メッセージ**とともにすべての問題を返します。例:

    | Line | Column | Message |
    | - | - | - |
    | 3 | `email` | is not a valid email address |
    | 5 | `username` | is required |
    | 8 | `phone` | is not a valid phone number |
    | 9 | `externalId` | is duplicated in this file |

    一覧表示された行を修正して再アップロードしてください。
  </Accordion>

  <Accordion title="適用エラー (正常なファイルが受け入れられた後)">
    ファイルが受け入れられた後、行はバックグラウンドで適用されます。たとえば、メールアドレスがすでに別のユーザーによって使用されている場合や、値が[一意の属性](/ja/identity/directory/schema)と競合する場合、この段階で行が失敗することがあります。これらの**適用エラー**は、行の `externalId`、`username`、エラーの詳細とともにインポートバッチに記録されます。それらの行を修正して再インポートしてください。
  </Accordion>
</AccordionGroup>

## 代わりに HR 同期を使用すべき場合

リストが変更されるたびに CSV を再アップロードすると、Iru はすべての行を再チェックします。継続的で手間のかからないプロビジョニングを行うには、代わりに HR システムを信頼できる記録として接続してください。

| | CSV インポート | HR システム同期 |
| - | - | - |
| **トリガー** | ファイルをアップロードする | スケジュールに従って自動的に実行 |
| **最新の状態を維持** | 再アップロード時 | はい (自動的に再同期) |
| **作成 / 更新** | 両方。`externalId` で照合 | 両方。自動的に実行 |
| **削除** | 手動 | オフボーディング時にユーザーを削除可能 |
| **最適な用途** | 初期読み込み、アドホックな追加 | 継続的なライフサイクル自動化 |

<Note>
  両方を使用できます。HR 同期のセットアップについては、[Directory Sync](/ja/identity/directory/directory-sync) で説明しています。
</Note>

## 次のステップ

<CardGroup cols={2}>
  <Card title="HR システムを接続する" icon="building-user" href="/ja/identity/directory/directory-sync">
    スケジュールに従って作成、更新、削除を自動化します。
  </Card>

  <Card title="最初にスキーマを設計する" icon="table-list" href="/ja/identity/directory/schema">
    インポートする前に必須属性と一意の属性を定義します。
  </Card>

  <Card title="個々のユーザーを管理する" icon="user" href="/ja/identity/directory/users">
    インポートしたユーザーを編集、一時停止、招待します。
  </Card>

  <Card title="グループに整理する" icon="users" href="/ja/identity/directory/groups">
    インポートしたユーザーを割り当て可能なグループにします。
  </Card>
</CardGroup>
