IBM Verify

IBM Verify

Join this online user group to communicate across Security product users and IBM experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
Expand all | Collapse all

Mysterious role behaviour

  • 1.  Mysterious role behaviour

    Posted 02/24/26 12:04 PM

    A "curious" behavior that I can't seem to figure out…

    I have a static org role with several members.
    From the member list, I try to remove one of them.
    The process is submitted (userdatachange, as expected), BUT I can see that no changes are applied to the person, so the role remains associated with the person.

    So I go to the person object and remove the role from there.
    A userdatachange request is generated, and this time the change is applied correctly.

    Then I try something very simple: I create a new test role.
    I go to the same person and assign the test role → everything works fine.
    I then go to the test role, open the member list, and remove the person from there.
    This time everything works as expected.

    Now, I'm not necessarily asking you to solve the mystery (although I wouldn't mind 😊).
    I would just like to understand which logs I should increase/analyze to figure out what is happening.

    Looking at LDAP, the "problematic" role and the test role do not show any substantial differences.

    Any ideas?

    Thanks in advance for your time.



    ------------------------------
    Andrea Gatto
    ------------------------------


  • 2.  RE: Mysterious role behaviour

    Posted 02/24/26 12:42 PM

    Hi,

    You may want to check if there is some logic inside operational workflow of person modify where actual extension is skipped under some circumstances.

    Other than that - trace.log, msg.log 

    Hope this helps.

    Mita



    ------------------------------
    Mita Mitic
    ------------------------------



  • 3.  RE: Mysterious role behaviour

    Posted 02/25/26 03:43 AM

    Ciao Mita,

    In fact, that was my first thought as well.
    But the invoked operation is always the same (modify person).
    What changes is that if it's invoked from the role members list, no changes to the person's erroles attribute are detected.
    If, on the other hand, the role is removed directly from the person, then the removal works.

    And I still can't understand why this anomalous behavior occurs for a certain "bad" role, while for another role everything works as expected.

    Okay regarding the logs to monitor, but which packages should be set to a higher level in order to try to catch some clues?

    Thanks, as always.
    And if I find out anything, of course I'll post it here.



    ------------------------------
    Andrea Gatto
    ------------------------------



  • 4.  RE: Mysterious role behaviour

    Posted 02/25/26 06:20 AM

    What you would like to check is the data services person - put that to DEBUG level in your logging properties.

    The real problem here is whether you can provoke the error consistently - my theory is that the Role Composition UI is handling this wrong - maybe because of shadowing some data to rdbms tables and loosing synch somehow. 

    I have not debugged the Role Composition yet so I have to guess right now - but the best advice I can give you is to get a case out of the door...

    HTH 



    ------------------------------
    Franz Wolfhagen
    WW IAM Solution Architect - Certified Consulting IT Specialist
    IBM Expert Labs
    ------------------------------



  • 5.  RE: Mysterious role behaviour

    Posted 02/25/26 06:40 AM

    I've found a way to make the error reproducible, and I guess it may be a bug.

    I'll shortly post something more



    ------------------------------
    Andrea Gatto
    ------------------------------



  • 6.  RE: Mysterious role behaviour

    Posted 02/25/26 06:49 AM

    That would be great - then I can debug it in my own systems.



    ------------------------------
    Franz Wolfhagen
    WW IAM Solution Architect - Certified Consulting IT Specialist
    IBM Expert Labs
    ------------------------------



  • 7.  RE: Mysterious role behaviour

    Posted 02/25/26 07:47 AM

    Here we are:

    It seems there is an "incorrect" reading of data from LDAP.
    First of all:

    • I am using Apache Directory Studio

    • ISIM is 10.0.0.3

    • SDS is 6.4 fp24   (in the coming months we will migrate to IVIG 11)

    First, look at all the orgRole entries as I see them in LDAP (allRoles.png).
    All roles have a DN ending with "DC=COM" (uppercase).

    Now look at the erroles attribute of a person (personErroles.png).
    Only one role ends with "DC=COM", while all the others end with "dc=com".

    Well, the uppercase role is the one that shows the issue.
    If edited directly in LDAP, it behaves correctly.

    Now I need to run some additional checks (I'll keep you posted), because these problematic roles show a very similar (in my opinion identical) issue when the removal is requested via Java API as well.
    In particular, this method:

    com.ibm.itim.dataservices.model.domain.Person.removeRole(DistinguishedName roleDN)

    seems to suffer from the same problem.

    I still need to complete a few more checks and I will be sure to update you.



    ------------------------------
    Andrea Gatto
    ------------------------------



  • 8.  RE: Mysterious role behaviour

    Posted 02/25/26 07:58 AM

    Good catch !

    That I believe is a problem that has been fixed several places - when ITIM was migrated to version 5 this started as some places in the core did not ensure that Java being case sensitive was aligned with ldap be in case insensitive....

    I believe this is a problem when your tenant/ldap data in enRole.properties are defined with uppercase - these are the properties from one of my test systems : 

    ###########################################################
    ## Default tenant information
    ###########################################################
    enrole.defaulttenant.id=org
    enrole.defaultadmin.id=ITIM Manager
    enrole.organization.name=Organization
    
    ###########################################################
    ## LDAP server information
    ###########################################################
    enrole.ldapserver.root=dc=com
    enrole.ldapserver.home=ou=itim
    enrole.ldapserver.agelimit=62
    enrole.ldapserver.ditlayout=com.ibm.itim.dataservices.dit.itim.FlatHashedLayout
    enrole.ldap.provider=IBM

      If you could provide your setup I will try to see if I can get this verified on the latest IVIG level - but please raise a case 



    ------------------------------
    Franz Wolfhagen
    WW IAM Solution Architect - Certified Consulting IT Specialist
    IBM Expert Labs
    ------------------------------



  • 9.  RE: Mysterious role behaviour

    Posted 02/25/26 08:10 AM

    I will open a case of course.

    Just an information: is enRole.properties enough for you to check?



    ------------------------------
    Andrea Gatto
    ------------------------------



  • 10.  RE: Mysterious role behaviour

    Posted 02/25/26 08:20 AM

    For me yes - but the support case will need basically all the data provided here.

    Just let me see the values for those properties I showed :-) 



    ------------------------------
    Franz Wolfhagen
    WW IAM Solution Architect - Certified Consulting IT Specialist
    IBM Expert Labs
    ------------------------------



  • 11.  RE: Mysterious role behaviour

    Posted 02/25/26 08:28 AM

    ...eeehmmmmm...

    I don't know how to get the enrole.properties file from the virtual appliance (I thought it was given along with the support file...)

    No problem anyway

    The keys you showed are lowercase:



    ------------------------------
    Andrea Gatto
    ------------------------------



  • 12.  RE: Mysterious role behaviour

    Posted 02/25/26 08:52 AM

    Okay, case TS021539008 has been opened.
    I'm not expecting a solution; the intention is to highlight and track down the issue.

    In the meantime, I will proceed with verifying whether the problem also affects the API.

    For now, I can only thank you for your help.

    I'll keep you updated.



    ------------------------------
    Andrea Gatto
    ------------------------------



  • 13.  RE: Mysterious role behaviour

    Posted 02/25/26 09:19 AM

    I can say with certainty that the Java method

    com.ibm.itim.dataservices.model.domain.Person.removeRole(DistinguishedName roleDN)

    shows the same behavior as well.

    Thanks again!



    ------------------------------
    Andrea Gatto
    ------------------------------



  • 14.  RE: Mysterious role behaviour

    Posted 02/25/26 10:37 AM

    So, as not to waste your time on the LDAP domain names in enrole.props…
    Fortunately, I discovered the cause of the presence of the DC=COM roles.

    1. In their container ou=roles, it's a "messed up" display in Directory Studio: if I export them, the resulting file correctly shows dc=com.

    2. On the person entries: it's due to an old loading assembly that used to write DC=COM (which I'm not sure whether to thank, for bringing the bug to light).

    Many thanks again.



    ------------------------------
    Andrea Gatto
    ------------------------------



  • 15.  RE: Mysterious role behaviour

    Posted 02/27/26 02:07 AM

    Thanks for letting me know 😀

    But debugging is seldom a waste of time - I almost always learns a little bit more about how things works :-)

    But I still think that IVIG does not handle ldap case insensitive data correct is still a bug - yes I know you should not do stuff in ldap directly - but it should not really matter....



    ------------------------------
    Franz Wolfhagen
    WW IAM Solution Architect - Certified Consulting IT Specialist
    IBM Expert Labs
    ------------------------------



  • 16.  RE: Mysterious role behaviour

    Posted 02/27/26 03:08 AM

    The number of times we have worked directly in LDAP is beyond counting (I deliberately wrote "we" 😁).

    In any case, the ticket is open (even though I mentioned that I resolved it on my side), and I hope it will be taken as a starting point for further investigation.

    Many thanks again.

    That's all for now.



    ------------------------------
    Andrea Gatto
    ------------------------------



  • 17.  RE: Mysterious role behaviour

    Posted 02/27/26 10:04 AM

    Just an FYI.  If you want to "fix" Apache Studio to show the base dn in lowercase, just specify it manually in the connection settings as lowercase.  We use o=ou for our ldap.



    ------------------------------
    Mikio Olin
    ------------------------------



  • 18.  RE: Mysterious role behaviour

    Posted 02/27/26 10:04 AM

    FYI - If you want to "fix" Apache Directory Studio, you can manually change the base dn to be all lowercase in the connection settings.  Below is a screenshot of my config.  We use o=ou for our LDAP.



    ------------------------------
    Mikio Olin
    ------------------------------



  • 19.  RE: Mysterious role behaviour

    Posted 02/28/26 06:16 AM
    Edited by Rudy Santos 02/28/26 06:16 AM

    I had a similar case-sensitivity issue. I used this approach to tell LDAP to ignore case sensitivity. Maybe you can apply the same approach to the enroles attribute.
    https://www.ibm.com/support/pages/making-policy-checking-case-insensitive



    ------------------------------
    Rudy Santos
    ------------------------------



  • 20.  RE: Mysterious role behaviour

    Posted 03/02/26 03:42 AM

    @Mikio: Thanks. I tried it and it works just as you said. Apparently ADS displays the base DN exactly as it is entered in the configuration. Fortunately, it's only a display issue: if you export the data (LDIF or CSV), the case is correct.

    @Rudy: Just from reading the title, it doesn't seem to apply to my case. However, I'm interested in it, but I was only able to read the title - it seems I'm not authorized to view the page you linked (even though I log in). Could you paste the text here?

    Ciao & thank you



    ------------------------------
    Andrea Gatto
    ------------------------------



  • 21.  RE: Mysterious role behaviour

    Posted 03/02/26 06:46 AM

    Set the enroles attribute to be case ignore string. I had similar problem with other "DN attribute" and this approach solved my issue.

    To ignore the case when checking compliance, set the equality matching rule on the attribute in the ITIM LDAP Server schema to "EQUALITY 2.5.13.2" (caseIgnoreMatch)". ITIM checks the equality matching rule during compliance checking and compares the values based on this setting.

    To change the behavior, using the IDS Web Admin Console, modify the erLdapGroupName and erLdapContainerName attributes to an equality matching rule of "EQUALITY 2.5.13.2" (caseIgnoreMatch)".

    Even thought ITIM caches the ITIM LDAP Server schema and periodically refreshes it, it would be best to restart the ITIM Application Server(s).



    ------------------------------
    Rudy Santos
    ------------------------------



  • 22.  RE: Mysterious role behaviour

    Posted 03/03/26 02:22 AM

    I am not sure this will fix the problem. As I understand the problem it is rooted in the ISIM/ISVG/IVIG Java code being case insensitive. When there is done a comparison on the role DN inside the code (.... role.equals(another role) ) then any change of ldap case sensitivity will not help. Only a change of the of to (.... role.equalsIgnoreCase(another role) ) will fix the problem...



    ------------------------------
    Franz Wolfhagen
    WW IAM Solution Architect - Certified Consulting IT Specialist
    IBM Expert Labs
    ------------------------------