Defect #1250
closedEnd of contract didn't remove roles from the system
0%
Description
Version 8.1.6, AD connector 1.3.4.25 (newest)
This problem occurred only in 2 out of 5 attempts to simulate it, but the result is a security problem.
Sorry about the complicated use-case :-(
- System "AD user" has the multivalued attribute "ldapGroups" with the strategy "Merge"
- System "AD user" has the attribute "__ENABLED__", which is filled by a script, which returns false, if the identity is disabled or if the account is in protection.
- One role "AD uživatel" which grants account on the system "AD user"
- Second role "AD group" which adds one group in the system "AD users" = it fills the attribute "ldapGroups" with its value
- These two roles are automatic by organization structure for a position P
- A user has an active contract on the position P (so he has an active AD account with 1 group)
- The password for the AD account was changed by IdM
- The contract of the user is ended in HR and set to excluded
- The synchronization of the contracts sets the contract "valid till"="31.12.2016", "state"="EXCLUDED" and automatically sets the validity of both roles to the past (see contracted_position.png, assigned_roles.png)
- IdM disables the AD account (it correctly sends "__ENABLED__" = false), but it doesn't clear the groups (even though the provisioning operation contains empty ldapGroups in the left table - see provisioning_log.png)
- After some minutes, HrEndContractProcess (started at the end of sync) removes both roles from the identity, but sends no other AD operation (because it's in protection)
I attached also audit_log.png and entity_events.png which correspond to my use case.
I set the category to provisioning, because it looks like a problem in computing the attributes (IdM knew that ldapGroups should be empty, but didn't send them, even though they were not empty on the system).
Please note that if the user has some manually assigned roles, everything worked well (I tried it several times). These roles were removed as late as HrEndContractProcess.
Files
Related issues
Updated by Alena Peterová over 6 years ago
- File assigned_roles.png assigned_roles.png added
- File audit_log.png audit_log.png added
- File contracted_position.png contracted_position.png added
- File entity_events.png entity_events.png added
- File provisioning_log.png provisioning_log.png added
Updated by Vít Švanda over 6 years ago
- Status changed from New to Needs feedback
- Assignee changed from Vít Švanda to Alena Peterová
We tried to simulation of this problem. After three hours we found only one usecase how can be this simulated.
First question: Did you delete the provisioning archive for this account (or truncate on DB)? If yes, that is the cause of this problem.
Updated by Alena Peterová over 6 years ago
Vít Švanda wrote:
We tried to simulation of this problem. After three hours we found only one usecase how can be this simulated.
First question: Did you delete the provisioning archive for this account (or truncate on DB)? If yes, that is the cause of this problem.
I'm sure I cancelled provisioning queue - active operations for this account were cancelled repeatedly. I don't remember truncating the archive.
I simulated the bug on the same identity and account - 1st attempt had the bug, 2nd, 3rd and 4th didn't, 5th had the bug. The active operations were cancelled before the first attempt. During the testing, I didn't cancel anymore.
Updated by Alena Peterová over 6 years ago
- Assignee changed from Alena Peterová to Vít Švanda
Updated by Vít Švanda over 6 years ago
- Assignee changed from Vít Švanda to Radek Tomiška
Updated by Radek Tomiška over 6 years ago
- Status changed from Needs feedback to In Progress
- Target version set to Morganite (9.2.0)
Updated by Alena Peterová about 6 years ago
- Assignee changed from Radek Tomiška to Alena Peterová
I will try it synchronously again and then write result.
Also check that ldapGroups was retrieved from the system.
Updated by Vít Švanda about 6 years ago
- Target version changed from Morganite (9.2.0) to Onyx (9.3.0)
Updated by Petr Michal about 6 years ago
- Related to Task #1298: Merge strategy does not support change of value for system added
Updated by Vít Švanda about 6 years ago
- Status changed from In Progress to Needs feedback
- Target version changed from Onyx (9.3.0) to Opal (9.4.0-rc.1)
Updated by Vít Švanda about 6 years ago
- Target version deleted (
Opal (9.4.0-rc.1))
Updated by Radek Tomiška over 5 years ago
- Status changed from Needs feedback to Closed
- Assignee changed from Alena Peterová to Vít Švanda
I'm closing this obsolete ticket. Merge mechanism was rewritten from scratch, provisioning archive is not used any more.
We can open this ticket, if issue occurs again.