Salesforce Client Credentials Configuration
Customer Configuration Guide
Configure Salesforce Client Credentials for ARVault
Create and secure a Salesforce External Client App for server-to-server integration with ARVault.
Before you begin
Confirm that a dedicated Salesforce integration user is active and uses the Salesforce Integration license with the Salesforce API Only System Integrations profile.
Confirm that the ARVault Integration Access permission set uses the Salesforce API Integration license and is assigned to the integration user.
Use a monitored customer administrator mailbox for the External Client App contact email.
Confirm that My Domain is active for the Salesforce organization.
Configuration overview
Create the External Client App
Enter basic information
Field
Value
External Client App Name
ARVault Integration
API Name
ARVault_Integration (populated automatically)
Contact Email
A monitored customer administrator mailbox. Salesforce sends the credential verification code to this address.
Distribution State
Local for use with a single Salesforce organization.
Select OAuth scopes
OAuth scope
Guidance
Manage user data via APIs (api)
Required.
Access the identity URL service (id, profile, email, address, phone)
Required so that /services/oauth2/userinfo returns the username used by ARVault.
Access unique user identifiers (openid)
Optional.
Perform requests at any time (refresh_token, offline_access)
Do not select. Client Credentials does not use refresh tokens.
Full access (full)
Optional and broader than api. Select only when a specific endpoint requires it.
Critical setting: Scroll to OAuth Flow Enablement and select Enable Client Credentials Flow. Token requests fail when this option is not enabled.
Configure OAuth policies
From the saved External Client App, open OAuth Policies from the left navigation or the available tab.
Important: The Run As user is required. If it is blank, Salesforce returns invalid_grant: user hasn't approved this consumer.
Session and security settings
Setting
Guidance
Access-token lifetime
The default is approximately two hours. The Integration User profile session timeout can be reviewed under Setup > Profiles > Salesforce API Only System Integrations > Session Settings > Session Times Out After. The organization-wide setting is under Setup > Session Settings > Timeout Value.
High Assurance / MFA
Not applicable to Client Credentials because there is no interactive user session. Ensure the integration profile is exempt if the organization applies stepped-up authentication policies.
PKCE
Not applicable. PKCE applies to the Authorization Code flow.
Single Logout
Not applicable because Client Credentials does not establish an interactive user session.
Refresh Token Rotation
Leave disabled because Client Credentials does not use refresh tokens.
Pre-authorize the integration user
Because Permitted Users is set to Admin approved users are pre-authorized, access must be granted through a profile or permission set. Permission-set-based authorization is recommended because it limits access to the dedicated integration user.
Retrieve the application credentials
Security: Treat the Consumer Secret as confidential. Do not include it in tickets, email messages, screenshots, or shared documentation.
Record the My Domain URL
Environment
URL format
Production
https://.my.salesforce.com
Sandbox
https://--.sandbox.my.salesforce.com
Required endpoint: Use the My Domain URL for Client Credentials. Do not use login.salesforce.com or test.salesforce.com as the token endpoint.
Verification checklist
Ready for ARVault: When every item above is complete, use the Consumer Key, Consumer Secret, and My Domain URL to register the Salesforce organization in ARVault.
Troubleshooting
Symptom
Likely cause
Resolution
Permission-set assignment fails with The user license doesn't allow the permission
The permission set was created with License = --None-- or contains unsupported permissions.
Delete and recreate the permission set with License = Salesforce API Integration. The license cannot be changed after creation.
API Enabled is not visible
Expected behavior for the Salesforce API Integration permission-set license.
Continue without selecting API Enabled; the license grants API access automatically.
Metadata calls return INSUFFICIENT_ACCESS
Modify Metadata Through Metadata API Functions is missing or the active token predates the permission change.
Enable the permission and request a new Client Credentials token.
Apex metadata or Tooling API calls return INVALID_TYPE
Author Apex is missing.
Enable Author Apex and request a new token.
unsupported_grant_type
Enable Client Credentials Flow is not selected.
Open OAuth Flow Enablement, select Enable Client Credentials Flow, and save.
invalid_grant: user hasn't approved this consumer
Run As is blank or the permission set is not pre-authorized.
Select the integration user under Run As and add ARVault Integration Access to Selected Permission Sets.
Permission error remains after a permission change
The existing token contains the earlier permissions.
Request a new token from /services/oauth2/token.
404 or an HTML response from the token endpoint
The login.salesforce.com or test.salesforce.com endpoint is being used.
Use the organization's My Domain URL.
invalid_client
The Consumer Secret is incorrect, expired, or contains whitespace.
Retrieve the credential again and remove any unintended whitespace.
Salesforce resources
Was this helpful?

