With Platform Update 8, Microsoft has added some more data entities surrounding security.
SecuritySubRoles – shows the relationship between role -> subroles
SecurityDuties – shows relationship between role -> duties, this could be used if using the out of box Segregation of Duties functionality from D365FO
SecurityPrivileges – shows relationship between role -> privileges
SecurityPermissions – shows role -> resource (name and type) -> access, this is essentially a role access report
All of these data entities are available by going to <BaseD365URL>/data/<NameOfDataEntity>.
So for example, if your base URL is https://D365Update8 then the calls would be as follows:
- https://D365Update8/data/SecuritySubRoles
- https://D365Update8/data/SecurityDuties
- https://D365Update8/data/SecurityPrivileges
- https://D365Update8/data/SecurityPermissions
Having these data entities exposed, makes it very easy to programmatically consume these and generate reports off of them. I would point out there there are still some glaring data entities currently missing from the out of box ones generated by Microsoft, specifically:
- There is no data entity to return all of the roles, duties, or privileges in the system, just the associations between them
- There is no data entity to return the role -> duty -> privilege hierarchy (missing the duty -> privilege association currently)
I would also be cautious about writing to or deleting from these data entities to change security, as by doing this you have no real control over how this security is implemented (won’t be in version control via AOT change and don’t really know in what layer the security will be modified).
FYI, these entries can be accessed via Microsoft Excel with an appropriate D365FFOE login via Data > Get Data > From Online Services > From Dynamics 365 (online) using the URL’s process described here.