Skip to main content
Cuando asignas lo que recibe una aplicación al iniciar sesión (el Subject (NameID) de una aplicación SAML, o el sujeto y los claims de una aplicación OIDC), cada valor es una expresión IQL. IQL te permite obtener datos del perfil de un usuario y transformar el valor antes de enviarlo.
IQL (Iru Query Language) es el lenguaje de expresiones de Iru para la asignación, y se usa en varios lugares:
  • Los atributos y claims que recibe una aplicación al iniciar sesión.
  • Los campos que una fuente conectada asigna a tu directorio (consulta Asignación de atributos).
  • Las reglas de Auto Groups y los filtros de listas.
La misma sintaxis funciona en todos los lugares donde aparece IQL.IQL se basa en CEL (Common Expression Language), el estándar abierto de lenguaje de expresiones, por lo que cualquier expresión válida en CEL es válida en IQL.
Mientras escribes, el editor de asignaciones sugiere los campos, funciones y operadores disponibles, y muestra una vista previa en tiempo real del resultado. Una expresión debe superar la comprobación de tipos en el editor y de nuevo al guardar, de modo que los errores aparecen antes de llegar a un inicio de sesión o a una sincronización.

Hacer referencia a tus datos

A qué haces referencia depende de dónde se ejecute la expresión:
  • La asignación de aplicaciones parte del objeto user, cuyos campos son los atributos de perfil de tu directorio:
    Los valores predeterminados lo reflejan: el sujeto de una aplicación OIDC es por defecto user.id, y el Subject de una aplicación SAML es por defecto user.username.
  • La asignación de Directory Sync hace referencia a los nombres de campo de la fuente. Un identificador IQL válido se escribe directamente, tal como llega del sistema conectado. Empieza con una letra ASCII o un guion bajo, y el resto son letras ASCII, números y guiones bajos:
    Cualquier otro nombre se lee desde __source por su nombre exacto. Eso incluye espacios, símbolos, un punto dentro de un único nombre de campo, caracteres no ASCII y palabras clave de IQL. Por ejemplo, __source["Email - Work"]. Consulta Transformar valores con IQL.
Los nombres de campo distinguen entre mayúsculas y minúsculas. Accede a valores anidados con un punto (user.profile.team), y a una lista o un mapa con [...] (se explica más abajo).

Elementos básicos

Literales

Las cadenas admiten las secuencias de escape habituales, como \n, \t, \\, \" y \uXXXX.

Operadores

Precedencia

De mayor a menor prioridad. En caso de duda, añade paréntesis.

Funciones de cadena

Las operaciones con cadenas se escriben como métodos sobre un valor, con la forma value.method(...):

Condicionales y valores predeterminados

El operador condicional es la forma más sencilla de proporcionar un valor alternativo cuando un valor puede estar vacío:
Para un manejo más completo de los nulos, IQL también tiene funciones auxiliares optional (seguras frente a nulos), que se describen a continuación.

Valores opcionales

Las funciones auxiliares de optional te permiten trabajar con valores que pueden faltar sin provocar un error. Un optional contiene un valor o está vacío.
ofNonZeroValue trata como vacíos los siguientes valores: una cadena vacía "", 0, false, una lista vacía [], un mapa vacío {} y null.

Comentarios y espacios en blanco

Los espacios en blanco no son significativos, y // inicia un comentario que llega hasta el final de la línea:

Ejemplos

Usa la vista previa del editor de asignaciones para confirmar que una expresión produce lo que esperas antes de publicarla; muestra el valor exacto que Iru enviará o almacenará.

Próximos pasos

Asignación de aplicaciones

Asigna valores IQL a la aserción o al token que recibe una aplicación.

Asignación de atributos

Usa el mismo IQL para asignar una fuente conectada a tu directorio.

Grupos automáticos

Impulsa la pertenencia a grupos con reglas IQL sobre atributos de perfil.

Atributos de perfil

Los campos de user de los que obtienen datos tus expresiones.