I’ve written about user licensing in D365FO in the past but because of the numerous changes Microsoft has made to licensing in the past six months I wanted to start doing periodic updates to give a current state of licensing.
There are currently two different licensing mechanisms currently in use for D365FO:
- Analysis being done at the entry point level – Determining User Licenses in Dynamics 365 for Finance & Operations
- Analysis being done at the privilege level – Current State of User Licensing in D365FO PU31
As you can probably guess, having two different licensing schemes in use at once causes some confusion and issues. So the question is how do you accurately determine which licenses you need?
The first thing to understand is that each licensing mechanism is used for a different reason. The entry point level licensing shows you how many Team Member, Activity, and Operations level licenses you need. The privilege level analysis is being used to determine which type of Operations level licenses (Finance, Supply Chain Management, Talent, Retail, Project) a user needs for the license enforcement which is a feature Microsoft will be enabling at some point in the future (this feature was supposed to be enabled in April 2020 but has been pushed back because of the licensing issues that have been raised).
Gaps in Privilege Level User Licensing
Why can’t Microsoft just move over to the privilege level licensing scheme? Because of the current gaps that exist in the licensing model, because the privilege to license association is hard coded it cannot be updated by changes users make to security. So the analysis cannot take into account:
- Custom privileges
- Modifications to out of box privileges (granting additional access or removing access)
Someone could theoretically modify an out of box privilege or create a custom privilege with full access to every object in the system and the privilege level licensing analysis would not be able to pick up the additional licensing requirements.
How to Determine User Licensing Requirements?
- Use the entry point level licensing analysis to determine the number of Operations, Activity, Team Member licensing required
- A report to help with this can be found at System Administration -> Inquiries -> License -> user License Counts
- Use the privilege level licensing analysis to determine the Operations level license the user actually needs to be assigned (Finance, Supply Chain Management, Talent, Retail, or Project)
- A report to help with this can be found at System Administration -> Inquiries -> License Reports -> User License Estimator
Resources
To help with this process I created an Excel file to show the association between privileges and their licenses: Privilege to License Association
This output is pulled from the LicensingServicePlansPrivilege table within D365FO. In this file you can see the privilege and the license required as well as a column called ‘Is Unique’. If this value is FALSE it means that the user needs to be assigned at least one of the licenses listed, if TRUE that user must be assigned that particular license as either a ‘base’ or ‘attach’ license. This is because some privileges access areas that are ‘shared’ across different modules/areas of D365FO and as such need to be access by multiple different license types.
Also in the next release of Fastpath, all of our licensing reports (User, Role, Duty, and Privilege) will take both entry point and privilege licensing into account.
Thank you Alex for this write up. I look forward to future publications!
Thanks for a great blog!
Have you ever come across problems with the valid dates in the counts report? I’m experiencing a problem with the User Counts Report, when ever I pull the report it comes back with a “Results valid date” which is several months in the past, always the same date. In AX 2012 R3 I could trigger a “named user license count report processing” batch job to resolve this issue, but how can this be done in F&O?
Martin,
Thanks for the kind words, from the Microsoft documentation on this report there is a batch job that needs to be executing for the User License Counts Report to contain the correct data. I would check to be sure that its enabled and executing successfully.
https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/sysadmin/stay-compliant-user-license-requirement#user-license-counts-report