Skip to main content

Common Mistakes to Avoid

This guide covers the most frequent mistakes made when managing users, groups, roles, and permission scopes, along with practical solutions to fix and prevent them.


Mistake 1: Over-Permissioning

The Problem

Role: "Everyone Gets Everything"
├── Permissions: ALL 100+ enabled
├── Scopes: ALL attached to every permission
├── Members: 500+ users
└── Result: No access control at all

Why It's Bad

IssueImpact
Security riskUnauthorized access to sensitive data
Audit nightmareImpossible to track who did what
Compliance violationFails principle of least privilege
Privacy concernsEveryone sees everything about everyone
PerformanceLarge scopes slow down queries

How to Fix

Step 1: Identify actual job requirements
└── What does each role REALLY need?

Step 2: Create function-specific roles
└── HR Manager, Team Leader, Employee, etc.

Step 3: Enable only required permissions
└── Start with zero, add what's needed

Step 4: Assign appropriate scopes
└── Start with N-1 (default)

Step 5: Expand scopes only with justification
└── Document why broader access is needed

Step 6: Regular access reviews
└── Quarterly permission audits

Good Alternative

Instead of one "Super Admin" role:

├── HR Manager role (HR permissions only)
├── Finance Manager role (Finance permissions only)
├── System Admin role (limited to 2-3 users only)
└── Employee role (basic permissions for everyone)

Each role:
├── Has only necessary permissions
├── Uses N-1 scope by default
└── Is documented with justification

Mistake 2: Scope Proliferation

The Problem

Permission Scopes list:
├── HR Team
├── HR Team Paris
├── HR Team Paris Active
├── HR Team Paris Active 2024
├── HR Team Paris Q1
├── HR Team Copy
├── HR Team (New)
├── HR Team - Use This One
└── ... 100+ similar scopes

Why It's Bad

IssueImpact
ConfusionNo one knows which scope to use
InconsistencySame users in different scopes
Maintenance burdenCan't keep all scopes updated
ClutterList becomes unusable
Audit complexityHard to verify who has access

How to Fix

Step 1: Identify canonical scope per logical group
└── One "HR Department" scope, not 10 variants

Step 2: Merge duplicates into authoritative scope
└── Combine populations from all duplicates

Step 3: Update all permissions to use canonical scope
└── Review each role's scope assignments

Step 4: Delete redundant scopes
└── Clean up after migration

Step 5: Establish naming convention
└── Prevent recurrence with clear rules

Good Alternative

One scope per logical boundary:

├── HR Department (all HR globally)
├── HR - EMEA (regional HR)
├── HR - France (country HR)
└── HR - Paris Office (local HR)

Benefits:
├── Clear hierarchy
├── One authoritative source
├── Easy to maintain
└── Simple to understand

Mistake 3: Empty Groups and Scopes

The Problem

Group: "Project Alpha Team"
├── Members: 0 (project ended 2 years ago)
├── Roles: 3 assigned (still active!)
├── Last updated: Never
└── Status: Abandoned

Scope: "Temporary Contractors 2022"
├── Members: 0 (contracts ended)
├── Used by: 5 permissions (still linked!)
└── Status: Forgotten

Why It's Bad

IssueImpact
Cluttered listsHard to find active items
Stale role assignmentsRoles assigned to nothing
Audit confusionAppears active but isn't
Maintenance debtAccumulates over time
Misleading countsReports include dead entities

How to Fix

Immediate Actions:
├── Delete or archive empty groups/scopes
├── Remove role assignments from empty entities
├── Document reason for deletion
└── Update any references

Ongoing Prevention:
├── Set up quarterly cleanup process
├── Add "last reviewed" date tracking
├── Alert on groups with 0 members
├── Calendar reminders for temporary items
└── Assign cleanup owner for each entity

Prevention Strategy

When creating temporary groups/scopes:

1. Add end date to description
└── "Project Phoenix - expires December 2024"

2. Set calendar reminder to review
└── 2 weeks before expected end

3. Assign cleanup owner
└── Someone responsible for deletion

4. Use dynamic membership when possible
└── Auto-removes when criteria no longer match

Mistake 4: Role Duplication

The Problem

Role list:
├── HR Manager
├── HR Manager (Copy)
├── HR Manager - New
├── HR Manager - Fixed
├── HR Manager - Final
├── HR Manager - Final v2
├── HR Manager - USE THIS ONE
└── HR Manager - CURRENT

Why It's Bad

IssueImpact
ConfusionWhich role is correct?
InconsistencyDifferent permissions in "same" role
MaintenanceUpdates miss some copies
Audit failureCan't verify access accurately
User frustrationUsers assigned to wrong copy

How to Fix

Step 1: Identify the authoritative role
└── Which one has the correct permissions?

Step 2: Compare permissions across all copies
└── Document differences

Step 3: Merge all users to authoritative role
└── Move populations from duplicates

Step 4: Delete duplicate roles
└── Remove after migration complete

Step 5: Establish role creation governance
└── Approval required for new roles

Prevention Process

Role Creation Governance:

1. Check if role already exists
└── Search before creating

2. Check if existing role can be extended
└── Maybe just add a scope?

3. Get approval before creating new role
└── Security/HR review

4. Use standard naming convention
└── Follow established patterns

5. Document role purpose
└── Why does this role exist?

Mistake 5: Missing Manager Hierarchy

The Problem

User: John Doe
├── Job Title: Senior Developer
├── Department: Engineering
├── Status: Active
├── Manager: (empty) ← Problem!
├── Groups: Engineering Team
└── Effect: Invisible to everyone

Why It's Bad

IssueImpact
Broken N-1 scopeUser invisible to managers
Orphaned userNo one responsible for this person
Workflow issuesApproval chains don't work
Data integrityIncomplete organizational structure
Access gapsCan't be seen in team views

How to Fix

Immediate Fix:
├── Assign correct manager
├── If top-level, assign CEO as manager
├── Verify user appears in manager's N-1 view
└── Test access workflows

Systematic Prevention:
├── Run weekly report of users without managers
├── Make manager field required on creation
├── Alert when manager is removed or leaves
├── Review during monthly audits
└── Include in onboarding checklist

Manager Hierarchy Rules

Manager Assignment Requirements:

Every user MUST have a manager except:
├── CEO (optional: set as own manager or system)
└── System/service accounts (use admin as manager)

Manager changes must trigger:
├── Immediate update to user's manager field
├── Verification of N-1 visibility
├── Update of any direct role assignments
├── Notification to new manager
└── Transfer of pending approvals

Mistake 6: Incorrect Scope Assignment

The Problem

Role: "Finance Manager"
Permission: "Read financial reports"
Scope: "Engineering Department" ← Wrong scope!

Result:
├── Finance Manager CAN see Engineering team (wrong!)
├── Finance Manager CANNOT see Finance team (broken!)
└── Completely inverted access

Why It's Bad

IssueImpact
Permission doesn't workUsers can't do their job
Wrong visibilitySee data they shouldn't
User frustration"My permission doesn't work"
Security gapWrong people have access
Trust issuesUndermines access control

How to Fix

Step 1: Audit all scope assignments
└── Review each permission's scopes

Step 2: Verify scope matches permission purpose
└── Does the scope make sense?

Step 3: Correct misaligned scopes
└── Assign appropriate scopes

Step 4: Test with actual users
└── Verify access works correctly

Verification Checklist

For each permission with a scope:

□ Does scope match permission function?
Example: "Read user info" + "HR Dept" = HR can see HR ✓

□ Is scope population current?
└── Contains right people?
└── No departed employees?
└── Dynamic rules working?

□ Has scope been tested?
└── User with this role tested visibility?
└── Edge cases checked?

Mistake 7: Not Using Scopes When Needed

The Problem

Creating 50 role variants instead of using scopes:

├── HR Manager - Paris
├── HR Manager - London
├── HR Manager - Berlin
├── HR Manager - Madrid
├── HR Manager - Amsterdam
├── HR Manager - Rome
├── HR Manager - Stockholm
├── HR Manager - Dublin
└── ... 45 more city-specific roles

All with IDENTICAL permissions, just different visibility!

Why It's Bad

IssueImpact
Role explosion50 roles instead of 1
Maintenance nightmareUpdate 50 roles for any change
InconsistencyPermissions drift between copies
ComplexityHard to understand system
Audit burdenReview 50 roles, not 1

The Solution: Use Scopes

Correct approach:

1 Role: "HR Manager"
├── Permission: Read user information
│ └── Scope varies by user:
│ ├── Marie → "Paris Office" scope
│ ├── John → "London Office" scope
│ └── Hans → "Berlin Office" scope

Result:
├── 1 role instead of 50
├── Consistent permissions across all
├── Easy to update (change once, applies to all)
├── Clear scope assignments
└── Simple to audit

When to Use Scopes vs New Roles

Use SCOPE when:
├── Same permissions, different visibility
├── Geographic variations (Paris vs London)
├── Departmental variations (HR for Engineering vs Sales)
└── Team-level variations

Use NEW ROLE when:
├── Different permissions needed
├── Fundamentally different job function
├── Different access level (read vs write)
└── Security classification differs

Mistake 8: Ignoring Inactive Users

The Problem

User: Former Employee
├── Status: Inactive
├── Roles: Administrator, HR Manager, Finance Viewer
├── Groups: Executive Team, All Access, Finance Leadership
├── Scopes: Executive Compensation, Confidential HR
├── Last Login: 18 months ago
└── Still has access to everything!

Why It's Bad

IssueImpact
Security riskAccount could be compromised
Compliance failureFails access control audits
License costMay count toward user licenses
ClutterAppears in member lists
Misleading metricsPopulation counts include departed

How to Fix

Proper Offboarding Process:

1. Set status to Inactive
└── Immediately on departure

2. Remove ALL role assignments
└── No roles should remain

3. Remove from ALL user groups
└── Check every group membership

4. Remove from ALL permission scopes
└── Check every scope population

5. Document departure date and reason
└── Audit trail

6. Keep profile for historical records
└── Don't delete, just deactivate

Automated Monitoring

Weekly Reports to Generate:

├── Inactive users with roles assigned
│ └── Should be zero

├── Inactive users in groups
│ └── Should be zero

├── Users inactive > 90 days
│ └── Review for status change

├── Users who never logged in
│ └── Investigate and clean up

├── Active users with no manager
│ └── Fix hierarchy

Mistake 9: Circular Group References

The Problem

Group A: "Engineering Team"
├── Members include: Group B (via group-based membership)

Group B: "Product Team"
├── Members include: Group A (via group-based membership)

Result: Infinite loop!
├── System may crash
├── Performance degradation
├── Unexpected members
└── Impossible to audit

How to Fix

Prevention:
├── System should block circular references
├── Always check before adding group-based members
├── Document group relationships
└── Regular audit of group dependencies

If Detected:
├── Identify the circular chain
├── Remove one direction of reference
├── Consider manual membership instead
└── Re-evaluate group structure

Mistake 10: Bulk Scope Overwrite Without Checking

The Problem

Scenario:
├── Select 10 permissions
├── Click "Manage Permission Scopes"
├── Add "Engineering Department" scope
├── Click Confirm

What happened:
├── Previous scopes on ALL 10 permissions: DELETED
├── Only "Engineering Department" remains
├── Other scopes like "HR Team", "Finance" are GONE
└── Users lost access unexpectedly

Why It's Bad

IssueImpact
Data lossPrevious scope assignments gone
Access disruptionUsers lose permissions
Unexpected behavior"I didn't mean to delete those"
Recovery difficultyMust remember and re-add manually

How to Avoid

Before Bulk Scope Operations:

1. Document current scopes
└── Screenshot or note existing assignments

2. Select ONLY permissions that should change
└── Be precise in selection

3. Understand: Bulk = REPLACE, not ADD
└── This is how the system works

4. If adding to existing:
└── Do individual scope assignments instead

5. After bulk change:
└── Verify expected scopes are present
└── Re-add any that were removed unintentionally

Mistake Summary Table

#MistakeQuick FixPrevention
1Over-permissioningApply least privilegeRole design governance
2Scope proliferationConsolidate to canonicalNaming conventions
3Empty groups/scopesDelete unused entitiesQuarterly cleanup
4Role duplicationMerge to single roleApproval process
5Missing managerAssign correct managerRequired field validation
6Incorrect scopeVerify scope matches functionTesting before deploy
7Not using scopesUse scopes instead of rolesTraining on scope usage
8Ignoring inactiveRemove all access on departureOffboarding checklist
9Circular referencesRemove one directionSystem validation
10Bulk scope overwriteDocument before changesIndividual updates

Prevention Checklist

Before Creating a New Entity

User Group:
□ Does similar group already exist?
□ Is the name clear and descriptive?
□ Have you added localization (en + fr)?
□ Who will maintain this group?
□ Is it temporary or permanent?

Role:
□ Can existing role be used/extended?
□ Is role name descriptive and consistent?
□ Are permissions documented with justification?
□ Is principle of least privilege applied?
□ Who approved this new role?

Permission Scope:
□ Does similar scope already exist?
□ Is boundary clearly defined?
□ Who manages the population?
□ Is this temporary or permanent?
□ What permissions will use this scope?

Regular Maintenance Schedule

Weekly:
□ Review new access requests
□ Check for anomalies in assignments
□ Verify new user manager assignments

Monthly:
□ Audit group memberships
□ Remove departed employees
□ Check for empty entities
□ Verify dynamic rules are working

Quarterly:
□ Full role permission review
□ Scope usage audit
□ Clean up unused items
□ Documentation update

Annually:
□ Complete access certification
□ Policy review and update
□ Training refresher for admins
□ System configuration review