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

# Roles y bundles de roles

> Declara un rol a una aplicación según la pertenencia a grupos en Iru Identity y controla la duración de la sesión y el riesgo por rol mediante bundles de roles.

Muchas aplicaciones esperan saber **qué rol** tiene un usuario (administrador,
miembro, lector, etc.), no solo quién es. Iru puede declarar un rol a una
aplicación en el inicio de sesión, según la pertenencia a grupos del usuario, y puede variar la
**duración de la sesión** y el **riesgo** según el rol.

Esto se configura en la pestaña **Roles** de una aplicación. Al igual que el resto de una aplicación,
lo editas en un borrador y lo publicas; consulta
[Descripción general de las aplicaciones](/es/identity/applications/applications-overview).

## Cómo llega un rol a la aplicación

```mermaid theme={null}
flowchart LR
  group["Pertenencia a grupos"] --> role["Rol"]
  role -->|"identificador del rol"| method["Método de declaración de roles"]
  method --> app["Aplicación"]
```

Un **rol** se concede a uno o varios [grupos](/es/identity/directory/groups). Cuando
alguien de esos grupos inicia sesión, Iru declara el **identificador** del rol a la
aplicación mediante el método que elijas.

## Método de declaración de roles

Determina cómo se envía el rol a la aplicación (o si se envía).

| Método | Qué hace |
| - | - |
| **Ninguno** | La aplicación no recibe ningún rol mediante el inicio de sesión único. Los bundles de roles se desactivan. En la pestaña **Asignaciones**, solo se puede asignar el rol **Default** a los grupos. |
| **Grupos** | Los identificadores de rol se envían como valores en los grupos que recibe la aplicación. |
| **Custom attribute** | Los identificadores de rol se envían en un atributo o claim personalizado con el nombre que indiques, como un único valor o como un array. Para las aplicaciones SAML también eliges el formato de nombre del atributo. |

## Bundles de roles

Los roles se encuentran dentro de **bundles de roles**, que agrupan roles relacionados y deciden si un
usuario puede tener más de uno a la vez.

| Configuración del bundle | Qué hace |
| - | - |
| **Display name** | El nombre del bundle en el panel. |
| **Bundle identifier** | Un identificador único que solo se usa para organizar roles relacionados. **No** se envía a la aplicación como valor de rol. |
| **Exclusivity mode** | **Include all** declara todos los roles del bundle para los que el usuario cumple los requisitos. **Priority** declara solo el rol de mayor prioridad, por lo que los roles son mutuamente excluyentes. |

En el modo **Priority**, cada rol tiene un número de **prioridad** único, y el
rol con la mejor prioridad prevalece cuando alguien cumple los requisitos para más de uno.

## Qué contiene un rol

<AccordionGroup>
  <Accordion title="Nombre para mostrar e identificador" icon="tag">
    El nombre del rol en el panel y el **identificador del rol** que se declara
    a la aplicación (el valor que recibe la aplicación para este rol).
  </Accordion>

  <Accordion title="Grupos" icon="users">
    Los [grupos](/es/identity/directory/groups) cuyos miembros reciben el rol.
    Basar los roles en grupos hace que la asignación de roles siga tu directorio.
  </Accordion>

  <Accordion title="Duración de la sesión" icon="clock">
    Cuánto dura, en minutos, una sesión concedida mediante este rol. Distintos
    roles pueden tener distintas duraciones de sesión. Establece este valor en **0** para usar
    el valor predeterminado de la aplicación (**60 minutos**, a menos que lo cambies en la aplicación).
  </Accordion>

  <Accordion title="Nivel de riesgo" icon="gauge-high">
    Una clasificación opcional de [nivel de riesgo](/es/identity/authentication/risk-based-access)
    para el rol, para que puedas etiquetar los roles más sensibles de forma
    coherente.
  </Accordion>
</AccordionGroup>

<Note>
  Cada aplicación empieza con un bundle y un rol **Default**, por lo que el acceso funciona
  desde el primer momento. Agrega bundles y roles solo cuando una aplicación necesite acceso
  basado en roles.
</Note>

## Configurar roles para una aplicación

<Steps>
  <Step title="Elegir el método de declaración de roles">
    En la pestaña **Roles** de la aplicación, establece cómo deben llegar los roles a la aplicación:
    **Grupos** o un **Custom attribute**, o **Ninguno** si la aplicación no acepta un
    rol mediante el inicio de sesión único.
  </Step>

  <Step title="Crear un bundle de roles">
    Agrega un bundle, asígnale un nombre y un identificador, y elige la exclusividad **Include all** o
    **Priority**.
  </Step>

  <Step title="Agregar roles">
    Para cada rol, establece su identificador, asigna los grupos que deben recibirlo
    y establece la duración de la sesión y (opcionalmente) un nivel de riesgo. En los bundles
    **Priority**, asigna a cada rol un número de prioridad.
  </Step>

  <Step title="Publicar">
    Establece el borrador como actual. A partir de ese momento, el inicio de sesión declara el rol de cada usuario
    según tus bundles.
  </Step>
</Steps>

## Próximos pasos

<CardGroup cols={2}>
  <Card title="Asignar acceso" icon="user-check" href="/es/identity/applications/assigning-access">
    Concede, en primer lugar, quién puede acceder a la aplicación.
  </Card>

  <Card title="Grupos" icon="users" href="/es/identity/directory/groups">
    Los roles se conceden a grupos; organiza la pertenencia allí.
  </Card>

  <Card title="Aplicaciones SAML" icon="file-signature" href="/es/identity/applications/saml-applications">
    Donde se establece el formato de nombre del atributo personalizado para la declaración de roles SAML.
  </Card>

  <Card title="Aplicaciones OIDC" icon="id-card" href="/es/identity/applications/oidc-applications">
    Donde los roles se incluyen como claim en las aplicaciones OIDC.
  </Card>
</CardGroup>
