Impersonate a User
7 min
Applies to: Versions 8.2.9+ and 8.3.4+
Overview
Impersonation in Activate allows authorised users to temporarily assume the identity of another user within the system. This is useful for:
- Support and administrative teams to troubleshoot issues, verify permissions, or replicate user experiences.
- Testing new functionality from the perspective of different user roles.
Unlike previous versions, impersonation is not enabled by default for administrators. All users, including administrators, must be explicitly granted impersonation access through role-based configuration.
Recommendations
- Use impersonation primarily in pre-production environments for testing.
- In production, use it sparingly and only for debugging specific issues.
- Grant access on a limited basis, scoped to the issue being investigated.
- Remove impersonation access once the issue is resolved to maintain security and compliance.
Understanding Roles
Impersonation requires two distinct system roles:
1. Impersonators Role
- Identifies users who can impersonate others.
- Users in this role can initiate impersonation sessions (if all configurations are complete).
- Examples: Support team, administrators, QA testers.
Configuration:
- Create or use an existing role called Impersonators.
- Assign relevant users to this role.
- Configure the AvailableImpersonateUsers parameter to reference the Impersonate Target Role.
2. Impersonate Target Role
- Defines which users can be impersonated.
- Only users assigned to this role can be selected as impersonation targets.
- Examples: Business users, power users, or any user whose experience needs to be replicated.
Configuration:
- Create a new role (e.g., Impersonate Target).
- Add users who can be impersonated to this role.
- Reference this role in the AvailableImpersonateUsers parameter within the Impersonators role.
Referencing broad roles such as System Roles/Users for UAT or QA environments is possible but not recommended due to excessive access.
Step-by-Step Configuration
1. Assign Users to the Impersonators Role
- Navigate to: System Roles > Impersonators
- If the role does not exist, create it.
- Assign all users who require impersonation access to this role.
2. Define Who Can Be Impersonated
- In the Impersonators role, configure AvailableImpersonateUsers parameter of type Reference or Role Reference.
- This parameter must reference a role containing impersonation targets.
Example:
- Create a new role: System Roles > Impersonate Target
- Add the target users to this role.
- Set AvailableImpersonateUsers = Impersonate Target.
This parameter is mandatory—no default access is provided.
3. Enable Impersonation System-Wide
- Go to: Resources > Configuration > Web
- Set: IsImpersonationEnabled to true
- If the parameter IsImpersonationEnabled does not exist create it, with a type of boolean.
- By default, this setting is disabled on all new installs and updates.
Auditing
All impersonation activity is logged for auditing purposes:
- Jobs submitted during impersonation include a log entry indicating impersonation.
- Users must provide a reason when submitting jobs as an impersonated user. This reason is recorded.
- All impersonation activity is recorded in web.log.
- The log file rotates when it reaches 100MB.