iiqElevatedAccess

How to set iiqElevatedAccess to true in filter?

  QueryOptions qo = new QueryOptions();
  qo.addFilter(Filter.ignoreCase(Filter.eq("iiqElevatedAccess", true)));
  qo.addFilter(Filter.ignoreCase(Filter.eq("identity.name", "abcd")));
  qo.addFilter(Filter.eq("aggregationState", "Connected"));
   int count = context.countObjects(IdentityEntitlement.class, qo);
    return count;

when trying to set iiqElevatedAccess to true, i am getting below error message

Exception running rule: The application script threw an exception: sailpoint.tools.GeneralException: could not resolve property: iiqElevatedAccess of: sailpoint.object.IdentityEntitlement BSF info: testpolicy at line: 0 column: columnNo

Hi @guduru510

iiqElevatedAccess is for ManagedAttribute, not for IdentityEntitlement. Hence you are getting error of ‘Could not resolve property on iiqElevatedAccess’.

Try this code.

 QueryOptions qo = new QueryOptions();
  
  Filter filter1 = Filter.and(Filter.join("value", "ManagedAttribute.value"),
                              Filter.join("application", "ManagedAttribute.application"),
                              Filter.join("name", "ManagedAttribute.attribute"));

  qo.addFilter(filter1);
  qo.addFilter(Filter.eq("ManagedAttribute.iiqElevatedAccess", true));

  qo.addFilter(Filter.ignoreCase(Filter.eq("identity.name", "abcd")));
  qo.addFilter(Filter.eq("aggregationState", "Connected"));

  int count = context.countObjects(IdentityEntitlement.class, qo);
  return count;

Hi @Arpitha1
Will this not reduce the performance ? if we want to run this across all the identities ?

is there any better way of doing this ? to increase the performance ?

Hi @guduru510

If your requirement is to fetch elevated access assigned to all identities, then this is the way. You can do same thing in one more way too, where you need first fetch the all elevated ManagedAttributes, then iterate members of it.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.