Thank you Franz and Sanjay for your detailed answers, much appreciated.
The problem with using an implicit allow like you mention Sanjay, is that an allow will always (to my understanding) have priority over an exclude property, regardless of the priority set on the policies. In our hybrid RBAC, we want behavior that removes the entitlement when the role is removed. The entitlement set is unfortunately not small/manageable enough to rely solely on RBAC.
I do like the idea, that you mention Franz, of using a prefix for all RBAC entitlements and using regex to manage the whitelisting and blacklisting. I will pursue this as a possible solution.
You are correct Franz, we are currently mixing request-based and RBAC. I can't access the RFE, I'm not authorized. Are there any other ways of accessing its content?
Does anyone know if the Null Exclude that I mention in the post is intended? The way it overrides the implicit exclude behavior in the provisioning policy. If that is indeed an intended feature, it can technically be used to allow me to manage the RBAC entitlements through explicit whitelisting and blacklisting. This would be an acceptable short-term solution, but lacking scalability.
The problem is that, if that is not intended or regarded as a bug, we may have a situation in the future where an ISIM fixpack removes the bug/feature :) and the implicit exclude kicks in for the majority of our users, causing a massive loss of entitlements when enforced.
------------------------------
Jonathan Andreasson
------------------------------
Original Message:
Sent: Tue February 25, 2020 02:18 AM
From: Franz Wolfhagen
Subject: ISIM Provisioning policy implicit exclude behavior
I agree on the observed behavior is how ISIM is expected to work (note: - that does not mean that this was the original intent of the designers - some of the finer details of ISIM provisioning policy behavior comes from misunderstanding requirements and wrong implementations according to some of the real old timer ISIM people - I will not go into deeper description here :-)). Also the functionality has been problematic due to problem with the join directive/priority not working in some scenarios (e.g. not being honored in policy preview, but working fine when submitted - I believe these bugs are all fixed in the latest fixpacks).
What is trying to be obtained here is what we historically call "hybrid provisioning" - and it is a somewhat difficult discipline with the current possibilities in ISIM.
Normally I recommend either using a naming scheme (e.g. a prefix on all entitlements (groups) that are governed through RBAC) or some attribute scheme (e.g. placement in AD OU structure). Naming schemes has the great advantage that you can then easily implement them using the regex mechanism - using attributes based schemes are more complex and requires some advanced JavaScripting.
Whether you implement the RBAC controlled entitlements using whitelisting (allows) or blacklisting is as such not important (I prefer blacklisting) - the real challenge is when you start mixing (and I sense that you may be in that area) RBAC and request based...
There is an RFE (https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=137408) that is considered adding policy enforcement to the provisioning policy level which should make this much easier - alas it is a relatively big change - but you may vote for this or create your own similar RFE (I do not know if you can actually see the RFE due to security restriction...).
I have planned for many years to document some of these details - maybe there is hope - it looks like I will get a little more time working on providing help developing materials to help the field in the future - but do not hold your breath :-)
HTH
------------------------------
Franz Wolfhagen
IAM Technical Architect for Europe - Certified Consulting IT Specialist
IBM Security Expert Labs
------------------------------
Original Message:
Sent: Mon February 24, 2020 10:59 AM
From: Sanjay Sutar
Subject: ISIM Provisioning policy implicit exclude behavior
I dont know how many groups you have to manage through RBAC policy, i am assuming they are in hundreds if not thousands.
The behavior you mentioned, ISIM is working as per designed (as you already found out). One way to make it work is allow * , which essentially means allow any group value (to be assigned manually in ISIM or on target). But then its quite open and there is no real RBAC. If your groups are manageable and you know what set of groups can be assigned based on person's role then you can limit the allowed list to specific set based on role membership. Something like this, role1 will have groups1 mandetory and some from optional list (allowed). Removing the role1 should remove group1 and any assigned from optional list (unless there is overlap with other policy).
------------------------------
Sanjay Sutar