Today, I worked on creating a Security configuration in Dynamics 365 Finance and Operations. Let’s talk about best practices — because honestly, I see them ignored more often than not.
🔐 Start with Duties — Don’t Skip Them!
Most developers tend to skip duties and go straight to privileges. But best practice is to always create Duties, and then assign those Duties to Roles. This creates a clear, layered security structure.
🔧 Create Two Sets of Privileges
You should design two separate privileges — one for maintaining data and one for reviewing it.
🛠️ Maintain Privilege:
This should include full access, including delete rights.

👁️ Review Privilege:
This one only needs read-only access to tables, forms, and menus.

🏷️ Use Labels, Not Hardcoded Captions
Always use labels instead of writing static text directly in captions. This ensures easier localization and consistent UI across environments.

🚫 Avoid Bad Practices
What I often see: consultants creating privileges and directly assigning them to Roles — skipping Duties entirely. That’s not ideal and goes against best practice.
Today, I made sure to follow the right process:
- Created duties ✔️
- Made separate maintain/review privileges ✔️
- Used labels ✔️
- Assigned Duties to Roles, not privileges directly ✔️
✅ Summary
If you’re working with D365 Security:
- Don’t skip Duties.
- Separate maintain and review access.
- Use labels, not hardcoded captions.
- Always assign Duties to Roles, not privileges directly.
Let’s keep it clean, maintainable, and easy for others to follow.
End of story.