Skip to content

Session Revocation — Salesforce

Session Revocation — Salesforce

Challenge ends Salesforce UI and API sessions by deleting AuthSession records for the target user. Authentication uses a JWT Bearer Connected App (no simple API key).

Prerequisites

  • Salesforce admin access to create a Connected App
  • An integration user with Manage Users permission
  • RSA key pair (private key stays in Challenge; public certificate uploaded to Salesforce)

Connected App setup

  1. In Salesforce Setup, create a Connected App with OAuth enabled.
  2. Enable Use digital signatures and upload your public certificate.
  3. Enable OAuth scopes including Full access (full) or Access and manage your data (api).
  4. Pre-authorize the integration user for the Connected App (admin approved users).
  5. Note the Consumer Key (client ID).

Challenge configuration

Under Integrations → Session Revocation → Salesforce, provide:

FieldDescription
Login URLhttps://login.salesforce.com (or https://test.salesforce.com for sandbox)
Consumer keyConnected App consumer key
Integration user usernameSalesforce username used as JWT sub (must be pre-authorized)
JWT private key (PEM)RSA private key matching the uploaded certificate
API versionDefault v59.0

API calls Challenge makes

  1. Mint access token: POST {login_url}/services/oauth2/token (JWT bearer grant)
  2. Lookup: SOQL SELECT Id FROM User WHERE Email = '...'
  3. Query sessions: SELECT Id FROM AuthSession WHERE UsersId = '...'
  4. Revoke: DELETE /services/data/{version}/sobjects/AuthSession/{sessionId} for each session

Username format

Use the user’s Salesforce email address.

Troubleshooting

SymptomCheck
Authentication failedConsumer key, username, private key, certificate match, user pre-authorized
Zero sessions deletedUser may have no active sessions (still reported as success)
http_403 on AuthSessionIntegration user lacks Manage Users permission