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

# 属性マッピング

> 接続されたディレクトリソースのフィールドを Iru Identity のプロファイル属性にマッピングし、ユーザープロファイルに到達する前に IQL 式を使用して値を変換します。

Iru が接続されたソースからユーザーを読み取る際、どの受信フィールドがどの Iru プロファイル属性を埋めるのか、また場合によっては途中で値をどのように変形するのかを知る必要があります。これは**属性マッピング**で記述します。Iru の各プロファイル属性について、ソースのフィールドからその値を生成する**式**を記述します。

<Note>
  **属性マッピングが適用される場所。** 属性マッピングは、**ソースシステムを接続する**際に記述します ([Workday](/ja/identity/directory/hris-workday) および [BambooHR](/ja/identity/directory/hris-bamboohr) コネクタは、マッピング用に独自のフィールドを公開します)。[CSV インポート](/ja/identity/directory/importing-users)には**適用されません**。CSV は事前定義された固定の列セットを使用するため、記述する式はありません。
</Note>

<Info>
  マッピング式は **IQL** で記述します。これは、Iru が[アプリケーションのクレームと属性のマッピング](/ja/identity/getting-started/iql-expressions)、Auto Group ルール、リストフィルターに使用するのと同じ式言語です。ここでは、接続された**ソースシステム**のフィールドをディレクトリの[プロファイル属性](/ja/identity/directory/schema)にマッピングします。完全な構文については [IQL 式](/ja/identity/getting-started/iql-expressions)を参照してください。
</Info>

## マッピングの仕組み

マッピングの各行は、1 つの**ターゲット** (Iru プロファイル属性) と、**ソース**フィールドから値を取得する**式**を組み合わせたものです。

```mermaid theme={null}
flowchart LR
  subgraph source["ソースフィールド"]
    a["first_name"]
    b["email_work"]
  end
  expr["IQL 式"] --> target["Iru プロファイル属性"]
  a --> expr
  b --> expr
```

<Steps>
  <Step title="ソースフィールドを検出する">
    Iru は、ソースが提供するフィールドのセットを読み取ります。これらのフィールド名は、式で参照できる**識別子**になります。検出がセットアップにどのように組み込まれるかについては、[Directory Sync](/ja/identity/directory/directory-sync) を参照してください。
  </Step>

  <Step title="属性ごとに式を記述する">
    埋めたい Iru 属性ごとに IQL 式を記述します。有効なフィールド名は単独で使用できます。それ以外の名前は `__source` で検索されます。より長い式では、これらの値を組み合わせたり変換したりします。
  </Step>

  <Step title="Iru が検証する">
    式は入力中と保存時に再度チェックされるため、誤り (不明なフィールド、型エラー) は同期に到達する前に表示されます。
  </Step>

  <Step title="すべての同期で実行される">
    同期が実行されると、Iru は受信した行に対して各式を評価し、結果を属性に書き込みます。
  </Step>
</Steps>

<Tip>
  ソースレコードを Iru ユーザーに結び付ける識別子には、安定かつ一意のソースフィールドを 1 つ選択して、各同期が正確に 1 人のユーザーに解決されるようにしてください。
</Tip>

## 式の記述

式はソースのフィールドを参照し、変換できます。大文字/小文字の変換、分割、連結、リスト項目の選択などです。同じ言語がディレクトリマッピングとアプリケーションマッピングの両方を支えているため、完全なリファレンス (オブジェクト、関数、演算子、例) は [IQL 式](/ja/identity/getting-started/iql-expressions)ページにあります。

フィールド名が有効な IQL 識別子である場合は、単独で使用できます。有効な識別子は ASCII 文字またはアンダースコアで始まり、残りは ASCII 文字、数字、アンダースコアで構成されます。`prénom` のような名前はこのセットに含まれないため、`__source` から読み取られます。

```
// Use a field as-is
work_email

// Combine fields into a display name
first_name + " " + last_name

// The local part of an email, before the @
work_email.split("@")[0]
```

名前にスペース、ハイフン、コロン、その他の記号が含まれる場合、または `in`、`null`、`true`、`if` などの IQL キーワードである場合は、`__source` で正確な名前を指定して検索します。`__source` はソースのすべてのフィールドのマップです。有効な名前の間のドットは、`name.givenName` のようにネストされた値にアクセスします。ドットを含むフィールド名は 1 つのキーのままです: `__source["name.givenName"]`。そのまま記述すると、`Email - Work` は減算になり、`in` はメンバーシップ演算子になります。

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

マッピングエディターは、これらのフィールドを選択または入力すると `__source["…"]` に書き換えます。有効な名前はそのまま残ります。有効な名前でも `__source["…"]` と記述できます。名前に `"` または `\` が含まれる場合は、`__source["Title \"Legal\""]` のように、括弧内でそれぞれの前にバックスラッシュを付けます。エディターはフィールドを書き換える際にそのエスケープを追加します。Mapping タブでの動作については、[IQL で値を変換する](/ja/identity/directory/directory-sync#transform-values-with-iql)を参照してください。

## 空のマッピング値

空または null のマッピング値は、そのカスタム属性の既存の値をクリアします。同期は続行されます。

**Boolean**、**Date**、**Integer**、または **Decimal** のカスタム属性の場合、空または null のマッピング値で同期が失敗することはありません。メールアドレスの分割など、空になる可能性のあるテキストフィールドを変換する場合は、[Mapping タブ](/ja/identity/directory/directory-sync#transform-values-with-iql)で値をガードしてください。

## 次のステップ

<CardGroup cols={2}>
  <Card title="IQL 式" icon="brackets-curly" href="/ja/identity/getting-started/iql-expressions">
    IQL の完全なリファレンス: オブジェクト、関数、演算子、例。
  </Card>

  <Card title="ディレクトリ同期" icon="building-user" href="/ja/identity/directory/directory-sync">
    HR システムを接続し、これらの式が支えるマッピングを設定します。
  </Card>

  <Card title="プロファイル属性" icon="table-list" href="/ja/identity/directory/schema">
    式の書き込み先となるターゲット。
  </Card>

  <Card title="自動グループ" icon="wand-magic-sparkles" href="/ja/identity/directory/auto-groups">
    ディレクトリで属性が自動化を推進するもう 1 つの場所。
  </Card>
</CardGroup>
