Skip to main content
アプリケーションがサインオン時に受け取る内容 (SAML アプリの場合は Subject (NameID)、OIDC アプリの場合は subject とクレーム) をマッピングする際、各値は IQL 式です。IQL を使用すると、ユーザーのプロファイルから値を取得し、送信前に値を整形できます。
IQL (Iru Query Language) は、マッピング用の Iru の式言語で、次のようないくつかの場所で使用されます。
  • アプリケーションがサインオン時に受け取る属性とクレーム。
  • 接続されたソースがディレクトリにマッピングするフィールド (属性マッピングを参照)。
  • Auto Group ルールとリストフィルター。
IQL が使用されるすべての場所で同じ構文が機能します。IQL はオープンな式言語標準である CEL (Common Expression Language) に基づいて構築されているため、CEL で有効な式は IQL でも有効です。
入力中、マッピングエディターは利用可能なフィールド、関数、演算子を提案し、結果のライブプレビューを表示します。式はエディター内と保存時に再度型チェックに合格する必要があるため、誤りはサインオンや同期に到達する前に表示されます。

データの参照

参照するものは、式が実行される場所によって異なります。
  • アプリケーションマッピングは user オブジェクトから始まります。そのフィールドはディレクトリのプロファイル属性です。
    デフォルトはこれを反映しています。OIDC アプリの subject のデフォルトは user.id で、SAML アプリの Subject のデフォルトは user.username です。
  • Directory Sync マッピングはソースのフィールド名を参照します。有効な IQL 識別子は、接続されたシステムから送られてくるとおりに直接記述します。有効な識別子は ASCII 文字またはアンダースコアで始まり、残りは ASCII 文字、数字、アンダースコアで構成されます。
    それ以外の名前は、正確な名前で __source から読み取られます。これには、スペース、記号、単一のフィールド名内のドット、ASCII 以外の文字、IQL キーワードが含まれます。たとえば、__source["Email - Work"] です。IQL で値を変換するを参照してください。
フィールド名は大文字と小文字が区別されます。ネストされた値にはドット (user.profile.team) でアクセスし、リストやマップには [...] でアクセスします (以下で説明)。

構成要素

リテラル

文字列は、\n、\t、\\、\"、\uXXXX などの一般的なエスケープをサポートしています。

演算子

優先順位

結合が最も強いものから最も弱いものの順です。迷った場合は括弧を追加してください。

文字列関数

文字列操作は、value.method(...) の形式で値に対するメソッドとして記述します。

条件式とデフォルト

条件演算子は、値が空である可能性がある場合にフォールバックを指定する最も簡単な方法です。
より高度な null 処理のために、IQL には以下の optional (null セーフ) ヘルパーもあります。

オプション値

オプションヘルパーを使用すると、エラーを発生させることなく、欠落している可能性のある値を扱うことができます。optional は値を保持するか、空です。
ofNonZeroValue は次のものを空として扱います: 空の文字列 ""、0、false、空のリスト []、空のマップ {}、null。

コメントと空白

空白は意味を持たず、// は行末まで続くコメントを開始します。

例

公開する前に、マッピングエディターのプレビューを使用して、式が期待どおりの結果を生成することを確認してください。プレビューには、Iru が送信または保存する正確な値が表示されます。

次のステップ

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

IQL の値を、アプリケーションが受け取るアサーションまたはトークンにマッピングします。

属性マッピング

同じ IQL を使用して、接続されたソースをディレクトリにマッピングします。

自動グループ

プロファイル属性に対する IQL ルールでグループメンバーシップを駆動します。

プロファイル属性

式が値を取得する user フィールド。