条件付き属性マッピング

構成ファイルにより、条件付き属性値マッピングで、無効とマークされた AD ユーザーをサポートできます。

このマッピングは、通常の “scim” ブロックをブロックに “cond-scim” 置き換えることで行われます。 例えば、以下のとおりです。
{  "ldap":"userAccountControl",
  "cond-scim":{
    "if":{"&":["{{value}}", "2"]},
    "then":{"active":false},
    "else":{"active":true}
  }
 }
上記のコード例では、0x00000002 に対する userAccountControl 属性値の算術ビット・テストを実行しています。 そのビットがセットされている場合(ビット単位の「AND」演算の結果が0以外になる場合)、は {“active”:false} 新しいユーザー概要エントリにマージされ、そうでない {"active":true} 場合はがマージされる。
いくつかのロジック演算子が実装されていますが、「&」(ビット単位の AND) 式のみがテストされています。
  • "&" (ビット単位の AND)
  • "!" (論理 NOT)
  • "&&"(論理 AND)
  • "||"(論理 OR)
  • "==" (ストリングの等価性)
また、「!」も実装されています (論理否定)、"&&"(論理積)、"||"(論理和)、"==" (文字列の等価比較)。
例えば、LDAP AD 属性値が 2 つのストリングのいずれかに等しいかどうかという条件に基づいて、結果の SCIM 属性値を決定することができます。 ストリングの比較では、大/小文字は区別されません。
"if":{
  "||":[
    {"==":["{{value}}", "Fred"]},
    {"==":["{{value}}", "Barney"]}
  ]
 },
 "then":...
 "else":...
Verifyこの例 IcbLdapSync.json には、ADの LDAP"userAccountControl" 属性とSCIM "active" 属性のマッピングをサポートするためのJSON設定が含まれています。