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

# Applications overview

> Connect the services your users sign in to: how Iru acts as their identity provider over SAML or OIDC, and how you add and version an app.

An **application** is a service your users sign in to through Iru. For each
application, Iru is the **identity provider**: when someone opens the app, the
app trusts Iru to run the sign-on and vouch for who they are. Iru sends the app
a signed statement of identity using the single sign-on standard the app
supports.

You manage applications in two dashboard areas:

* **Apps:** the apps you have added, including custom apps and apps created
  from a template.
* **App Templates:** a catalog of ready-made app definitions you can start
  from. See [Application templates](/en/identity/applications/application-templates).

<Frame caption="The Applications list, showing each app's protocol, status, and Application ID.">
  <img src="https://mintcdn.com/iru/J9e4tdSSyFEuoQS_/en/identity/images/applications-list.webp?fit=max&auto=format&n=J9e4tdSSyFEuoQS_&q=85&s=c3cdae48fdecea15319a909b30e00a14" alt="The Applications list with a Zoom app of type SAML and status Active, plus columns for Created On, Last Updated, and a copyable Application ID." width="2000" height="1140" data-path="en/identity/images/applications-list.webp" />
</Frame>

## Choose a protocol: SAML or OIDC

Every application uses one **protocol type**, chosen when you add it: **SAML**
or **OIDC**. Pick whichever standard the app supports for single sign-on. Both
let Iru sign users in; they differ in the details Iru exchanges with the app.

<Tabs>
  <Tab title="SAML">
    Iru gives the app **service-provider-facing details** (an entity ID, an
    ACS URL, and downloadable metadata) and signs the response and assertion it
    sends. You choose the NameID format and map profile attributes into the
    assertion.

    Configure one in [SAML applications](/en/identity/applications/saml-applications).
  </Tab>

  <Tab title="OIDC">
    Iru issues the app a **client ID** and **client secret**, and sends an ID
    token after sign-on. You set redirect URIs, choose scopes, and map profile
    attributes into the token's claims.

    Configure one in [OIDC applications](/en/identity/applications/oidc-applications).
  </Tab>
</Tabs>

|                         | SAML                                                   | OIDC                                                    |
| ----------------------- | ------------------------------------------------------ | ------------------------------------------------------- |
| Iru gives the app       | Entity ID, ACS URL, metadata, signing certificate      | Client ID, client secret, discovery and token endpoints |
| Identity is sent as     | A signed assertion                                     | A signed ID token                                       |
| Identifier for the user | **NameID** (Subject)                                   | **Subject** (`sub` claim)                               |
| You configure           | NameID format, attribute mapping, signing certificates | Redirect URIs, scopes, claim mapping, key rotation      |

<Note>
  A protocol is chosen per application and cannot be switched afterward. If you
  need the other protocol, add a new application.
</Note>

## How an application maps identity

Each application maps **user-profile attributes** into the identity Iru sends,
so the app receives the fields it expects. Every app has a **subject**, the
primary identifier for the signed-in user, plus any additional attributes you
add.

* For **OIDC**, the default subject is the `sub` claim, mapped from the user's
  `user.id`.
* For **SAML**, the default Subject is mapped from the user's `user.username`.

You can add, rename, enable, and disable attributes, and a live preview shows
the assertion or token that will be produced. See
[Application mapping](/en/identity/applications/application-mapping) for how
mapping works and the IQL behind it, and each protocol's page for its specifics.

## How versioning works

Applications are **versioned** so you can change configuration safely without
disrupting users who are signing in.

```mermaid theme={null}
flowchart LR
  draft["Draft<br/>(editing)"] -->|"Set as current"| current["Current<br/>(live sign-on)"]
  current -->|"a new version<br/>is set current"| archived["Archived<br/>(kept for reference)"]
  current -->|"Clone &amp; edit"| draft2["New draft"]
  archived -.->|"can be restored"| current
```

<Steps>
  <Step title="Edit a draft">
    You make changes in a **draft** version. Drafts are not live, so editing one
    never affects the version users are signing in with.
  </Step>

  <Step title="Set it as current">
    Publishing a draft makes it the **current** version, the configuration Iru
    uses for live sign-on. There is one current version at a time.
  </Step>

  <Step title="Older versions are archived">
    When a new version becomes current, the previous current version becomes
    **archived**. Archived versions are kept for reference and can be restored
    at any time from the version selector.
  </Step>
</Steps>

To revise a published app, use **Clone & Edit** to copy the current version into
a new draft, make your changes, then set the draft as current.

## Active and inactive

Separately from versioning, an application is either **active** or **inactive**,
toggled from the app's header.

<CardGroup cols={2}>
  <Card title="Active" icon="circle-check">
    The current version is live. People who are assigned can sign in, and any
    configured provisioning runs.
  </Card>

  <Card title="Inactive" icon="circle-pause">
    Sign-on is stopped without deleting the app or its configuration. People can
    no longer reach it, and further provisioning actions pause. Deactivating is
    reversible; reactivate the app at any time.
  </Card>
</CardGroup>

<Note>
  An active application cannot be deleted. Deactivate it first if you intend to
  remove it.
</Note>

## Add an application

From **Apps**, choose to add an application and either start from a template or
build a custom app.

<Frame caption="Add an application from a template, or from scratch with OIDC or SAML.">
  <img src="https://mintcdn.com/iru/J9e4tdSSyFEuoQS_/en/identity/images/add-application.png?fit=max&auto=format&n=J9e4tdSSyFEuoQS_&q=85&s=c5d3fa6c85fba26085ba58611b1008eb" alt="The Add application panel with a search box, recommended templates (WorkRamp, Shopify Plus, Jenkins, Asana) and a View all templates link, plus OIDC and SAML options to create an app from scratch." width="1144" height="1330" data-path="en/identity/images/add-application.png" />
</Frame>

<Steps>
  <Step title="Start from a template (recommended)">
    Search the catalog for your service and create the app from a template. The
    standard configuration is filled in, so you only supply what is specific to
    your tenant. See
    [Application templates](/en/identity/applications/application-templates).
  </Step>

  <Step title="Or create a custom app">
    Enter a name and pick a protocol (**SAML** or **OIDC**) to build the app
    from scratch. Iru creates it as a draft for you to configure.
  </Step>

  <Step title="Configure the protocol details">
    Fill in the SAML or OIDC settings and the attribute mapping. See
    [SAML applications](/en/identity/applications/saml-applications) or
    [OIDC applications](/en/identity/applications/oidc-applications).
  </Step>

  <Step title="Assign access and activate">
    Assign the groups that should have the app, then activate it. See
    [Assigning access](/en/identity/applications/assigning-access).
  </Step>
</Steps>

## Where to go next

<CardGroup cols={2}>
  <Card title="Application templates" icon="layer-group" href="/en/identity/applications/application-templates">
    Start from a ready-made definition in the catalog.
  </Card>

  <Card title="SAML applications" icon="file-signature" href="/en/identity/applications/saml-applications">
    Configure a SAML app: provider details, NameID, and signing certificates.
  </Card>

  <Card title="OIDC applications" icon="key" href="/en/identity/applications/oidc-applications">
    Configure an OIDC app: credentials, redirect URIs, scopes, and claims.
  </Card>

  <Card title="Assigning access" icon="user-check" href="/en/identity/applications/assigning-access">
    Grant the app to users and groups, and review who has access.
  </Card>

  <Card title="Provisioning" icon="arrows-rotate" href="/en/identity/applications/provisioning">
    Create and remove accounts in the app automatically as access changes.
  </Card>

  <Card title="Authentication policies" icon="shield-halved" href="/en/identity/authentication/authentication-policies">
    Decide who can sign in to the app and what they must prove.
  </Card>
</CardGroup>
