Skip to main content

Best Practices Guide

Overview

This guide consolidates best practices from all User Management modules. Following these guidelines ensures a secure, maintainable, and scalable access control system that serves your organization's needs effectively.

1. Naming Conventions

Consistent naming makes the system navigable and maintainable.

Entity Naming Patterns

EntityPatternGood ExampleBad Example
User Group[Location] - [Team/Dept]France - Sales TeamGroup1
Role[Function] [Level]HR ManagerRole_Copy_2
Permission Scope[Boundary] - [Population]EMEA - Engineeringscope123

Naming Rules

DO:
├── Use clear, descriptive names
├── Include context (location, department)
├── Use consistent capitalization (Title Case)
├── Keep names reasonably short (< 50 chars)
├── Add localization (en + fr) when possible
└── Be specific about purpose

DON'T:
├── Use generic names ("Group1", "New Role")
├── Include temporary dates ("Q3 2024 Team")
├── Use cryptic abbreviations ("HRBP-ENG-FR-2")
├── Create names with "copy", "new", "test"
├── Use ALL CAPS or all lowercase
└── Mix naming conventions in same category

Localization Best Practices

// Good: Both languages provided
name: {
en: "HR Department",
fr: "Département RH"
}

// Acceptable: English only (if French not needed)
name: {
en: "Engineering Team"
}

// Bad: Missing required English
name: {
fr: "Équipe RH" // Missing English!
}

2. Principle of Least Privilege

Grant only the minimum permissions necessary for a job function.

Implementation Strategy

Step 1: Start with NO permissions
└── All toggles OFF by default

Step 2: Identify job function requirements
└── What actions does this role NEED to perform?

Step 3: Enable only required permissions
└── One by one, with justification

Step 4: Set appropriate scopes
└── N-1 (default) unless broader access is justified

Step 5: Expand scopes only when needed
└── Document business reason for expansion

Step 6: Review regularly
└── Quarterly permission audits

Example: Team Leader Role

Required for job:
├── View team member profiles → Read user information (N-1)
├── Manage team objectives → Read/Update objectives (N-1)
├── Review team performance → Read reviews (N-1)
├── View team skills → Read user skills (N-1)

NOT required (leave deactivated):
├── Create new users → HR Admin function
├── Delete users → Security risk
├── Company configuration → System Admin only
├── Finance permissions → Not in job scope
├── Access control → Admin only
└── Audit logs → Security team only

Permission Review Questions

Before enabling a permission, ask:

  1. Does this person's job require this action?
  2. What's the smallest scope that works?
  3. What could go wrong if misused?
  4. Is there an audit trail?
  5. Who approved this permission?
  6. When should we review this decision?

3. Scope Hierarchy Strategy

Organize scopes in logical hierarchies for scalability and maintainability.

Organization Scopes:
├── Global (use sparingly)

├── Region
│ ├── EMEA
│ ├── APAC
│ └── Americas

├── Country (within region)
│ ├── France
│ ├── Germany
│ └── United Kingdom

├── City/Office (within country)
│ ├── Paris
│ ├── Lyon
│ └── Marseille

└── Department (cross-geographic)
├── Engineering
│ ├── Frontend
│ ├── Backend
│ └── DevOps
├── HR
│ ├── Recruiting
│ └── Business Partners
└── Sales
├── Enterprise
└── SMB

When to Use Each Level

LevelUse CaseExample Role
GlobalC-level executives, Global ITCEO, CTO, Global IT Admin
RegionRegional leadership, Regional HREMEA VP, APAC HR Director
CountryCountry managers, Local HRFrance Country Manager
DepartmentHR Business Partners, Dept headsEngineering VP
TeamTeam leads, Project managersFrontend Team Lead

Scope Sizing Guidelines

Scope Size Recommendations:

1-5 users:
├── Consider direct permission assignment instead
├── Scope overhead may not be worth it
└── Easier to manage individually

5-50 users:
├── Ideal for team-level scopes
├── Easy to manage and audit
└── Clear ownership

50-200 users:
├── Good for department-level scopes
├── May need sub-scopes for specific functions
└── Assign clear scope owner

200-1000 users:
├── Regional or large department scopes
├── Ensure genuine business need
└── Regular usage audits required

1000+ users:
├── Use with extreme caution
├── Question if scope is too broad
├── Consider breaking into smaller scopes
└── May indicate over-permissioning

4. Role Design Patterns

Choose a design pattern based on your organization's needs.

Pattern 1: Function-Based Roles

Roles:
├── HR Manager
├── Recruiter
├── Finance Manager
├── Team Leader
└── Employee

Pros:
├── Clear job alignment
├── Easy to understand
├── Maps to org chart
└── Clear ownership per function

Cons:
├── May need many roles
├── Variations require new roles
└── Can lead to role explosion

Pattern 2: Access-Level Roles

Roles:
├── Administrator (full access)
├── Manager (read + write own team)
├── Employee (read own profile)
└── Viewer (read-only)

Pros:
├── Simple hierarchy
├── Few roles to manage
├── Clear access levels
└── Easy to explain

Cons:
├── May be too coarse
├── Doesn't capture job functions
└── Doesn't scale well with complexity
Base Role + Function Role + Scope:

User: Marie Dupont
├── Base: Employee (basic permissions everyone gets)
├── Function: HR Manager (HR-specific permissions)
└── Scope: France HR Department (visibility extension)

Result: Complete access profile in 3 components

Hybrid Implementation Steps

Step 1: Define base roles (everyone gets one)
├── Employee (basic access)
├── Manager (people managers)
└── Executive (leadership)

Step 2: Define function roles (job-specific)
├── HR (HR department functions)
├── Finance (finance functions)
├── Engineering (engineering functions)
└── Sales (sales functions)

Step 3: Use scopes for visibility (not new roles)
├── Assign scopes to permissions
├── Not to roles directly
├── Mix and match as needed
└── Document scope assignments

5. Audit and Review Schedule

Regular reviews ensure the system stays secure and current.

Review Frequency Matrix

FrequencyActionOwner
WeeklyReview new user role assignmentsTeam leads
MonthlyVerify group memberships, departed usersHR/IT
QuarterlyAudit role permissions, clean unusedSecurity team
AnnuallyFull access certificationCompliance

Weekly Review Checklist

□ New employees have correct roles assigned
□ Role assignments match job functions
□ No pending access requests
□ No obvious anomalies in recent assignments
□ Manager changes reflected in hierarchy

Monthly Review Checklist

□ Departed employees removed from all groups
□ Transferred employees in correct groups
□ Group memberships reflect current org structure
□ No empty or duplicate groups
□ Inactive users have no role/group assignments
□ Dynamic rule results are accurate

Quarterly Review Checklist

□ Role permissions still appropriate for function
□ Unused roles identified and removed
□ Over-privileged roles corrected
□ Permission scopes still relevant
□ Audit logs reviewed for anomalies
□ Scope populations are current
□ Documentation is up to date

Annual Review Checklist

□ All users recertify their access needs
□ All roles reviewed by business owners
□ All scopes validated for current use
□ Policy compliance verified
□ Access control documentation updated
□ Training provided to new administrators
□ System configuration reviewed

6. Change Management

Handle changes systematically to avoid security gaps.

Before Making Changes

1. Document current state
└── Screenshot or export existing configuration

2. Identify all affected users
└── Run impact analysis query

3. Communicate planned changes
└── Notify stakeholders in advance

4. Schedule change window
└── Avoid peak usage times

5. Prepare rollback plan
└── Know how to undo if needed

During Changes

1. Make changes in test environment first
└── Validate before production

2. Verify changes work as expected
└── Test with affected user profiles

3. Apply to production
└── Follow change management process

4. Document what was changed
└── Include timestamp and reason

5. Notify affected users
└── Clear communication about impact

After Changes

1. Verify access works correctly
└── Test critical workflows

2. Monitor for issues
└── Watch for access errors

3. Update documentation
└── Reflect new state

4. Close change request
└── Mark complete with notes

5. Review in next audit cycle
└── Confirm change is still appropriate

7. Documentation Standards

Maintain clear documentation for all access control decisions.

What to Document

ItemDocumentation Needed
RolePurpose, permissions enabled, typical users, scopes assigned
User GroupMembership criteria, associated roles, owner
Permission ScopePopulation criteria, which permissions use it, owner
PermissionBusiness justification for activation in each role

Role Documentation Template

## Role: [Name]

**Purpose:** [One sentence description]

**Typical Users:** [Job titles/functions that get this role]

**Permissions:**
| Permission | Scope | Justification |
|------------|-------|---------------|
| Read user information | N-1 | View direct reports |
| Read objectives | N-1 | Manage team goals |

**Population:** [X users as of date]

**Created:** [Date] by [Person]
**Last Reviewed:** [Date] by [Person]
**Owner:** [Person/Team responsible]

**Change History:**
- [Date]: [Change description]

User Group Documentation Template

## User Group: [Name]

**Purpose:** [What this group represents]

**Membership Criteria:**
- [How users join this group]
- Dynamic rule: [if applicable]

**Associated Roles:** [List of roles assigned to this group]

**Population:** [X members as of date]

**Created:** [Date]
**Owner:** [Person/Team]

**Review Schedule:** [Monthly/Quarterly]

Change Documentation Template

## Change Record: [ID]

**Date:** [Date]
**Requested By:** [Name]
**Approved By:** [Name]

**Change:**
[Description of what changed]

**Justification:**
[Why this change was needed]

**Affected Users:**
[Number and type of affected users]

**Rollback Plan:**
[How to undo if needed]

**Verification:**
[How to confirm change worked]

8. Security Best Practices

Admin Account Management

Admin Access Rules:
├── Maximum 2-3 system administrators
├── Separate admin and regular accounts
├── Regular access reviews (monthly)
├── Immediate revocation on role change
├── Activity logging and monitoring
├── No shared admin accounts
└── Strong authentication required

Sensitive Permissions

PermissionRisk LevelControls Required
Delete userHighLimited to senior admins only
Company configHighSystem admins only, approval required
Audit logsMediumSecurity team, read-only
Bulk operationsMediumRequire confirmation dialog
Create rolesMediumHR/IT admins with approval

Protecting Sensitive Populations

Sensitive Scope Examples:
├── "Executive Team" - C-suite visibility
├── "HR Confidential" - Salary, terminations
├── "Finance Leadership" - Financial data access
└── "Security Team" - Security operations access

Protection Measures:
├── Limit who can view scope members
├── Restrict which permissions use scope
├── Regular audit of scope usage
├── Immediate removal of departed members
├── Document all access grants
└── Quarterly access reviews

9. Performance Considerations

Dynamic Rule Optimization

Efficient Rules:
├── Use indexed fields (Department, Location, Status)
├── Minimize complex nested conditions
├── Combine related rules in single section
├── Test rule performance with large datasets
└── Prefer equality over LIKE when possible

Avoid:
├── Too many OR conditions (>10)
├── LIKE operators on large text fields
├── Rules that match 50%+ of users
├── Circular group references
└── Deeply nested conditions

Scope Population Sizing

Performance Considerations:
├── Large scopes (1000+) may slow permission checks
├── Many scopes per permission adds overhead
├── Deep nesting of group-based populations impacts query time
└── Excessive dynamic rule evaluations at login

Optimization:
├── Limit scopes per permission to 5-10 when possible
├── Prefer simple dynamic rules over complex ones
├── Regular cleanup of unused scopes
├── Monitor query performance in production
└── Consider caching for stable populations

Summary: Top 10 Best Practices

#PracticeImpact
1Apply Principle of Least PrivilegeSecurity
2Use consistent naming conventionsMaintainability
3Prefer dynamic groups over manualAutomation
4Use scopes instead of role variantsScalability
5Regular access reviewsCompliance
6Document all decisionsAuditability
7Clean up inactive/empty entitiesHygiene
8Verify manager hierarchy is completeN-1 functionality
9Test permissions before deploymentQuality
10Follow change management processStability