Avihu Turzion
12/23/2025, 10:44 AMRahul Rijhwani
12/23/2025, 10:48 AMImpersonate permission can impersonate other users. This permission can be assigned at two levels:
• Project-level: Allows impersonating any user in the project
• Tenant-level: Restricts impersonation to users within a specific tenant
For your scenario, you'd assign the project-level Impersonate permission to your admin users.
Check this doc: https://docs.descope.com/user-impersonationAvihu Turzion
12/23/2025, 10:49 AMAvihu Turzion
12/23/2025, 10:53 AMRahul Rijhwani
12/23/2025, 11:14 AMRahul Rijhwani
12/23/2025, 11:38 AMImpersonate permission assigned at the project level
3. When they need to access a specific tenant, they impersonate an existing client user who belongs to that tenant
The impersonation flow requires an input field for the Impersonated User login ID. Your admin would enter the login ID of any actual client user in the target tenant.
Example flow:
• Admin logs in as themselves
• Admin enters a client user's login ID (e.g., <mailto:client@tenant-a.com|client@tenant-a.com>)
• The User / Impersonate action validates the admin has the Impersonate permission
• Admin now has a session as that client user, with full access to that tenant's context
The session JWT will show the impersonated user's ID in the sub claim and the impersonator's ID in the act.sub claim.
You're not creating dummy/service users - you're impersonating real client users to see exactly what they see and troubleshoot in their context.