Hi,
We have a requirement to get a list of all AD groups a user is member of, including transitive/nested group memberships. We would then like to filter these groups and put them in a token, or just make them available via the /userinfo endpoint. We have a setup where we work with basic users that are present in a federated AD.
What works wellI have successfully been able to get the groups that are present as 'memberOf' attribute in AD by configuring the following in the proxy configuration:
[TAM_CRED_ATTRS_SVC:eperson]
emailAddress = mail
mobileNumber = mobile
group = memberOf
Then the memberOf multi valued list is present in the STSUU and can easily be added to the ID token, as explained here:
https://www.ibm.com/support/pages/fine-tuning-id-tokens-isam-advanced-access-control-oidc-flows . A similar setup can be created for the access token or the /userinfo endpoint. However, this does not contain nested groups, so on to the next try.
What does not yet seem to workOur AD expert told us to use the 'tokenGroups' attribute, which is some kind of precalculated attribute containing ALL groups, including groups that are not linked directly to the user (meaning also transitive / nested groups). Fetching this information should be amazingly fast, since it is precalculated. This attribute is explained here:
https://docs.microsoft.com/en-us/windows/win32/adschema/a-tokengroups .
So I changed the proxy config to the following:
[TAM_CRED_ATTRS_SVC:eperson]
emailAddress = mail
mobileNumber = mobile
#group = memberOf
group = tokenGroups
However, debugging the STSUU object clearly showed that these groups were not added to the STSUU. I did a packet trace on the non-SSL enabled LDAP calls between ISAM and our AD during authentication, and ISAM does fetch the tokenGroups attributes as shown in the picture below:
------------------------------
Michael
------------------------------