[midPoint] Automatic Assignment of Business Roles
Bao Tran
bao.tran at csit.fi
Thu Apr 16 13:17:03 CEST 2026
Hi all,
We are implementing MidPoint with HR source. Workday exports job codes
(selected from a predefined list) and job titles (free text). Multiple job
codes can share the same application entitlement collection.
*Name | JobCode | JobCodeName | Title |
OrgName | IsManager*
John | job01 | General Practitioner (GP) | Junior Doctor
| ER | True
Jack | job02 | Surgeon |
Doctor | Surgery Department | True
Jill | job03 | Radiologist |
Radiologist | ER | false
Bob | job01 | General Practitioner (GP) | Junior Doctor
| ER | True
JobCode is selected from list in HR system
title is freeText
In traditional IGA, we fall into role explosion due to the role-condition :
Job01-ER; Job02-ER ; job03-ER ,... And we manage via a flat file
(RoleLookup.csv)
*Firstly*, as documents recommend, we create businessrole , eg:
Doctor
condition: jobcode is in (job01, job02, job03)
Nurse:
condition: jobcode is in (job11, job12, job13)
.....
However, once conditions grown (both number of roles and complexity of
conditions) as below :
Doctor:
*condition*:
jobcode in (job01, job02)
OR
Org in (Org001, Org003)
OR
( jobcode = job01 AND Org = Org001)
Surgeon doctor:
*condition*: jobcode in (job02) and org(Surgery Department)
Secondly, then our question is how to effectively manage the
role-logic-conditions ? We are evaluating two modeling approaches to
centralize the mangement the auto-assign rules logic but we are confused
how to implement in Midpoint
*Option 1:* Import one jobcode as a role (job01 -> RoleType)
NameofRole ; assignmentsOrder2
job01 ; Doctor
job02 ; Doctor, Surgery
- Pro: Role catalog is fully visible and manageable via a flat CSV via
generic import
- Con: Potential we will fall into role explosion again (hundreds of job
codes to hundred of roles).
*Option 2*: put the logic inside the user objectTemplate condition
Condition: jobcode in ("job01","job02", "job03")
Target: Doctor
- Pro: Fewer roles, cleaner hierarchy
- Con: Assignment logic is hidden inside object templates, rules are not
really easy to read and analyzed (like in flat file)
Question: What is the recommended MidPoint pattern for this scenario? Is
there a third option we are missing,
Thanks
--
Bao Tran
Software developer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20260416/609210ee/attachment.htm>
More information about the midPoint
mailing list