I recently had a requirement to make security group members be members of a set in FIM. This is not as easy as it sounded. Our requirements were:
– Users should only be able to assign roles to other users that they themselves have.
– Roles translate to security group membership in AD based on criteria-based security groups.
We decided to change the thought process a bit and realized we were only using roles to create security groups. So, why not take roles out all together. The end result works something like this:
1. A new Reference multivalued attribute is on the user called SecurityGroups.
2. This attribute contains the groups the user belongs to.
3. A new Set of Users is created for each security group.
a. The set is a criteria based set where the SecurityGroup attribute of the user contains the security group.
4. A new Set of Groups is created for each security group.
a. This is a criteria based set where the display name is the name of the group.
5. A new MPR is created for each set of users created in step 3 to grant them permission to write to the SecurityGroup attribute on all users.
6. A new MPR is created for each set of groups created in step 4 to grant the set of users created in step 3 read permissions on the set of groups created in step 4.
It needs some workflow automation probably to be feasible, but in theory this allows us to have sets based on group membership.