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

# アプリケーションマッピング

> IQL を使用してプロファイル属性をマッピングし、アプリケーションが受け取る ID ステートメント（SAML アサーションまたは OIDC トークン）を形成します。

誰かが Iru を通じてアプリケーションにサインインすると、アプリはその人が誰であるかを示す
署名済みの **ID ステートメント**（**SAML アサーション**または **OIDC ID トークン**）を受け取ります。
**アプリケーションマッピング**は、そのステートメントに何を含めるかを決定する方法です。
アプリが想定する各フィールドに対して、ユーザーの[プロファイル](/ja/identity/directory/schema)から
取得した値をマッピングします。

<Info>
  マッピングされるすべての値は、**[IQL](/ja/identity/getting-started/iql-expressions)**
  （Iru Query Language）で記述されます。これは、
  [Directory Sync の属性マッピング](/ja/identity/directory/attribute-mapping)や
  [Auto Group](/ja/identity/directory/auto-groups) のルールで使用されるのと同じ式言語です。
  値は単一のプロファイルフィールド（`user.email`）にすることも、フィールドを加工する式
  （`user.email.lowerAscii()`）にすることもできます。
</Info>

<Frame caption="マッピングエディタ：IQL 式で Subject と各属性を設定し、利用可能なフィールドと関数は IQL エクスプローラーで確認できます。">
  <img src="https://mintcdn.com/iru/Pd7a0-sHKi0jGjE6/assets/media/images/application-mapping.webp?fit=max&auto=format&n=Pd7a0-sHKi0jGjE6&q=85&s=deb4226eee66af9bb5dbd89dcbbd1342" alt="SAML アプリのアプリケーション Mapping エディタ：名前形式 Unspecified で IQL 式 user.id からマッピングされた Subject と、名前形式 Basic で user.primaryEmail.email からマッピングされた Email 属性。" width="1130" height="1136" data-path="assets/media/images/application-mapping.webp" />
</Frame>

## マッピングの内容

すべてのアプリケーションは、送信するステートメントに次の 2 つをマッピングします。

* **サブジェクト：** サインインしたユーザーの主要な識別子。
* **属性またはクレーム：** アプリが想定するその他のフィールド。

```mermaid theme={null}
flowchart LR
  profile["ユーザープロファイル<br/>属性"] --> expr["IQL 式"]
  expr --> subject["サブジェクト"]
  expr --> attrs["属性 / クレーム"]
  subject --> stmt["署名済みアサーション / トークン"]
  attrs --> stmt
  stmt --> app["アプリケーション"]
```

### サブジェクト

サブジェクトは、サインインしたユーザーを識別します。デフォルトはプロトコルによって異なります。

| プロトコル | サブジェクト | デフォルト値 |
| - | - | - |
| **SAML** | **NameID** | `user.username` |
| **OIDC** | **`sub`** クレーム | `user.id` |

取得元の値を変更でき、SAML の場合は **NameID 形式**を選択できます。
プロトコル固有のオプションについては、[SAML アプリケーション](/ja/identity/applications/saml-applications)と
[OIDC アプリケーション](/ja/identity/applications/oidc-applications)を参照してください。

### 属性とクレーム

サブジェクト以外に、アプリが必要とする各フィールドを追加します。それぞれについて、
**名前**（アプリが想定するもの）、**値**（それを生成する IQL 式）、プロトコルの詳細
（SAML の場合は**属性名の形式**、OIDC の場合は**スコープ**）、および**有効**かどうかを設定します。

## マッピングの作成方法

<Steps>
  <Step title="アプリのマッピングを開く">
    マッピングは、プロトコル設定とともにアプリケーションの**ドラフト**にあります。
  </Step>

  <Step title="フィールドごとに IQL 式を記述する">
    サブジェクトと各属性またはクレームについて、
    [IQL](/ja/identity/getting-started/iql-expressions) 式を記述します。エディタは入力中に
    利用可能な `user` フィールドと関数を提案し、式をチェックするため、公開前に誤りが明らかになります。
  </Step>

  <Step title="結果をプレビューする">
    ライブ**プレビュー**に Iru が送信する正確なアサーションまたはトークンが表示されるため、
    本番稼働前にその形式を確認できます。
  </Step>

  <Step title="公開する">
    ドラフトを**現在**のバージョンとして設定し、マッピングを有効にします。バージョンモデルについては
    [アプリケーションの概要](/ja/identity/applications/applications-overview)を参照してください。
  </Step>
</Steps>

<Tip>
  アプリが必要とするものだけをマッピングしてください。各アプリはマッピングした属性のみを
  正確に受け取るため、特定のサービスにはユーザーの識別に必要なプロファイルの詳細のみが表示されます。
</Tip>

## プロビジョニングのためのマッピング

マッピングはサインオン以外にも影響します。[プロビジョニング](/ja/identity/applications/provisioning)を
使用するアプリの場合、マッピングには**プロビジョニングビュー**もあり、アプリでアカウントを
作成または更新する際に Iru が送信するプロファイル属性を制御します。

## 次のステップ

<CardGroup cols={2}>
  <Card title="Iruクエリ言語" icon="brackets-curly" href="/ja/identity/getting-started/iql-expressions">
    IQL の完全なリファレンス：フィールド、演算子、関数、例。
  </Card>

  <Card title="SAML アプリケーション" icon="file-signature" href="/ja/identity/applications/saml-applications">
    SAML アプリの NameID 形式と属性マッピング。
  </Card>

  <Card title="OIDC アプリケーション" icon="id-card" href="/ja/identity/applications/oidc-applications">
    OIDC アプリのサブジェクトとクレームのマッピング。
  </Card>

  <Card title="プロビジョニング" icon="arrows-rotate" href="/ja/identity/applications/provisioning">
    アプリでアカウントを作成および更新する際に Iru が送信する属性をマッピングします。
  </Card>
</CardGroup>
