> ## 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 が SAML または OIDC を介して ID プロバイダーとして機能する仕組みと、アプリを追加してバージョン管理する方法。

**アプリケーション**とは、ユーザーが Iru を通じてサインインするサービスです。各アプリケーションに
おいて、Iru は **ID プロバイダー**です。誰かがアプリを開くと、アプリは Iru にサインオンの実行と
本人確認を任せます。Iru は、アプリがサポートするシングルサインオンの標準を使用して、署名済みの
ID ステートメントをアプリに送信します。

アプリケーションはダッシュボードの 2 つの領域で管理します。

* **Apps：** 追加したアプリ（カスタムアプリやテンプレートから作成したアプリを含む）。
* **App Templates：** 作成の起点として使用できる既製のアプリ定義のカタログ。
  [アプリケーションテンプレート](/ja/identity/applications/application-templates)を参照してください。

<Frame caption="各アプリのプロトコル、ステータス、Application ID を表示する Applications リスト。">
  <img src="https://mintcdn.com/iru/Pd7a0-sHKi0jGjE6/assets/media/images/applications-list.webp?fit=max&auto=format&n=Pd7a0-sHKi0jGjE6&q=85&s=a6a2eef4f109f2148cfa582592a25983" alt="タイプ SAML、ステータス Active の Zoom アプリと、Created On、Last Updated、コピー可能な Application ID の列がある Applications リスト。" width="2000" height="1140" data-path="assets/media/images/applications-list.webp" />
</Frame>

## プロトコルを選択する：SAML または OIDC

すべてのアプリケーションは、追加時に選択する 1 つの**プロトコルタイプ**（**SAML** または
**OIDC**）を使用します。アプリがシングルサインオンでサポートしている標準を選択してください。
どちらでも Iru はユーザーをサインインさせることができ、違いは Iru がアプリとやり取りする詳細にあります。

<Tabs>
  <Tab title="SAML">
    Iru はアプリに**サービスプロバイダー向けの詳細**（エンティティ ID、ACS URL、
    ダウンロード可能なメタデータ）を提供し、送信するレスポンスとアサーションに署名します。
    NameID 形式を選択し、プロファイル属性をアサーションにマッピングします。

    [SAML アプリケーション](/ja/identity/applications/saml-applications)で設定します。
  </Tab>

  <Tab title="OIDC">
    Iru はアプリに**クライアント ID** と**クライアントシークレット**を発行し、サインオン後に
    ID トークンを送信します。リダイレクト URI を設定し、スコープを選択し、プロファイル属性を
    トークンのクレームにマッピングします。

    [OIDC アプリケーション](/ja/identity/applications/oidc-applications)で設定します。
  </Tab>
</Tabs>

| | SAML | OIDC |
| - | - | - |
| Iru がアプリに提供するもの | エンティティ ID、ACS URL、メタデータ、署名証明書 | クライアント ID、クライアントシークレット、ディスカバリーおよびトークンエンドポイント |
| ID の送信形式 | 署名済みアサーション | 署名済み ID トークン |
| ユーザーの識別子 | **NameID**（Subject） | **件名**（`sub` クレーム） |
| 設定する内容 | NameID 形式、属性マッピング、署名証明書 | リダイレクト URI、スコープ、クレームマッピング、キーローテーション |

<Note>
  プロトコルはアプリケーションごとに選択され、後から切り替えることはできません。
  もう一方のプロトコルが必要な場合は、新しいアプリケーションを追加してください。
</Note>

## アプリケーションによる ID のマッピング

各アプリケーションは、Iru が送信する ID に**ユーザープロファイル属性**をマッピングし、
アプリが想定するフィールドを受け取れるようにします。すべてのアプリには、サインインしたユーザーの
主要な識別子である**サブジェクト**と、追加した任意の属性があります。

* **OIDC** の場合、デフォルトのサブジェクトは `sub` クレームで、ユーザーの `user.id` からマッピングされます。
* **SAML** の場合、デフォルトの Subject はユーザーの `user.username` からマッピングされます。

属性の追加、名前変更、有効化、無効化ができ、ライブプレビューに生成されるアサーションまたは
トークンが表示されます。マッピングの仕組みとその背後にある IQL については
[アプリケーションマッピング](/ja/identity/applications/application-mapping)を、詳細については
各プロトコルのページを参照してください。

## バージョン管理の仕組み

アプリケーションは**バージョン管理**されるため、サインイン中のユーザーを妨げることなく
安全に設定を変更できます。

```mermaid theme={null}
flowchart LR
  draft["ドラフト<br/>（編集中）"] -->|"現在として設定"| current["現在<br/>（ライブサインオン）"]
  current -->|"新しいバージョンが<br/>現在に設定される"| archived["アーカイブ済み<br/>（参照用に保持）"]
  current -->|"複製して編集"| draft2["新しいドラフト"]
  archived -.->|"復元可能"| current
```

<Steps>
  <Step title="ドラフトを編集する">
    変更は**ドラフト**バージョンで行います。ドラフトはライブではないため、編集しても
    ユーザーがサインインに使用しているバージョンに影響することはありません。
  </Step>

  <Step title="現在のバージョンとして設定する">
    ドラフトを公開すると、Iru がライブサインオンに使用する設定である**現在**のバージョンになります。
    現在のバージョンは一度に 1 つだけです。
  </Step>

  <Step title="古いバージョンはアーカイブされる">
    新しいバージョンが現在のバージョンになると、以前の現在のバージョンは**アーカイブ済み**になります。
    アーカイブ済みのバージョンは参照用に保持され、バージョンセレクターからいつでも復元できます。
  </Step>
</Steps>

公開済みのアプリを修正するには、**Clone & Edit** を使用して現在のバージョンを新しいドラフトに
コピーし、変更を加えてから、ドラフトを現在のバージョンとして設定します。

## アクティブと非アクティブ

バージョン管理とは別に、アプリケーションは**アクティブ**または**非アクティブ**のいずれかであり、
アプリのヘッダーから切り替えます。

<CardGroup cols={2}>
  <Card title="アクティブ" icon="circle-check">
    現在のバージョンがライブです。割り当てられたユーザーはサインインでき、
    設定されたプロビジョニングが実行されます。
  </Card>

  <Card title="非アクティブ" icon="circle-pause">
    アプリやその設定を削除せずにサインオンが停止されます。ユーザーはアクセスできなくなり、
    以降のプロビジョニング操作は一時停止されます。無効化は元に戻すことができ、
    いつでもアプリを再度有効化できます。
  </Card>
</CardGroup>

<Note>
  アクティブなアプリケーションは削除できません。削除する場合は、まず無効化してください。
</Note>

## アプリケーションを追加する

**アプリ** からアプリケーションの追加を選択し、テンプレートから開始するか、カスタムアプリを構築します。

<Frame caption="テンプレートから、または OIDC か SAML を使用して一からアプリケーションを追加します。">
  <img src="https://mintcdn.com/iru/Pd7a0-sHKi0jGjE6/assets/media/images/add-application.png?fit=max&auto=format&n=Pd7a0-sHKi0jGjE6&q=85&s=16eb4f9ca75fdbebd17c49102ff826a0" alt="検索ボックス、推奨テンプレート（WorkRamp、Shopify Plus、Jenkins、Asana）、View all templates リンク、および一からアプリを作成するための OIDC と SAML のオプションがある Add application パネル。" width="1144" height="1330" data-path="assets/media/images/add-application.png" />
</Frame>

<Steps>
  <Step title="テンプレートから開始する（推奨）">
    カタログでサービスを検索し、テンプレートからアプリを作成します。標準の設定が入力されるため、
    テナント固有の情報のみを指定するだけで済みます。
    [アプリケーションテンプレート](/ja/identity/applications/application-templates)を参照してください。
  </Step>

  <Step title="またはカスタムアプリを作成する">
    名前を入力し、プロトコル（**SAML** または **OIDC**）を選択して、アプリを一から構築します。
    Iru はそれをドラフトとして作成し、設定できるようにします。
  </Step>

  <Step title="プロトコルの詳細を設定する">
    SAML または OIDC の設定と属性マッピングを入力します。
    [SAML アプリケーション](/ja/identity/applications/saml-applications)または
    [OIDC アプリケーション](/ja/identity/applications/oidc-applications)を参照してください。
  </Step>

  <Step title="アクセスを割り当てて有効化する">
    アプリを使用するグループを割り当て、有効化します。
    [アクセスの割り当て](/ja/identity/applications/assigning-access)を参照してください。
  </Step>
</Steps>

## 次のステップ

<CardGroup cols={2}>
  <Card title="アプリケーションテンプレート" icon="layer-group" href="/ja/identity/applications/application-templates">
    カタログの既製の定義から開始します。
  </Card>

  <Card title="SAML アプリケーション" icon="file-signature" href="/ja/identity/applications/saml-applications">
    SAML アプリを設定します：プロバイダーの詳細、NameID、署名証明書。
  </Card>

  <Card title="OIDC アプリケーション" icon="key" href="/ja/identity/applications/oidc-applications">
    OIDC アプリを設定します：資格情報、リダイレクト URI、スコープ、クレーム。
  </Card>

  <Card title="アクセスの割り当て" icon="user-check" href="/ja/identity/applications/assigning-access">
    ユーザーとグループにアプリへのアクセスを付与し、アクセス権を持つユーザーを確認します。
  </Card>

  <Card title="プロビジョニング" icon="arrows-rotate" href="/ja/identity/applications/provisioning">
    アクセスの変更に応じて、アプリのアカウントを自動的に作成および削除します。
  </Card>

  <Card title="認証ポリシー" icon="shield-halved" href="/ja/identity/authentication/authentication-policies">
    アプリにサインインできるユーザーと、証明する必要がある内容を決定します。
  </Card>
</CardGroup>
