About CyberArk Privilege Cloud
The CyberArk Privilege Cloud integration connects Serval to your CyberArk Privilege Cloud tenant - the SaaS PAM on CyberArk’s Identity Security Platform Shared Services (ISPSS) - through the Privilege Cloud REST API. It powers privileged-access management workflows: listing safes and accounts, granting and revoking safe membership for just-in-time (JIT) access, triggering CPM credential rotation, and approving or rejecting dual-control access requests. Serval never retrieves or stores vaulted secret values. The curated API surface excludes all credential-retrieval endpoints - workflows can manage who has access to safes and when credentials rotate, but there is no path through Serval to read a vaulted password. Authentication: Username and password for a dedicated CyberArk Identity service user configured as an OAuth confidential client. Serval exchanges the credentials for a short-lived bearer token (POST /oauth2/platformtoken) and attaches it to every proxied request - workflow code never sees the password or the token.
ISPSS tenants only. Your tenant’s API host must be on *.privilegecloud.cyberark.cloud. Legacy “Privilege Cloud Standard” tenants on *.privilegecloud.cyberark.com authenticate through the vault Logon API instead and are not supported by this integration.
Data sync: On demand only. There is no background sync of safes or accounts - Serval calls your tenant only when a workflow or health check runs.
What the Privilege Cloud integration enables
Prerequisites
Before connecting, make sure your tenant meets these requirements:An ISPSS Privilege Cloud tenant
*.privilegecloud.cyberark.cloud (Shared Services). Legacy Privilege Cloud Standard tenants on *.cyberark.com are not supported.Find your Identity tenant host
abc1234.id.cyberark.cloud. This is the id.cyberark.cloud host, not the portal subdomain you type into a browser.Create a dedicated service user in CyberArk Identity
svc-serval@acme.cyberark.cloud) and, in its settings, enable “Is OAuth confidential client”. That flag blocks interactive login and exempts the account from MFA so the OAuth client-credentials exchange works. The username becomes the OAuth client_id and the password the client_secret.Grant the service user a Privilege Cloud role
Least-privilege guidance for the service user
Grant the service user only what the workflows you install actually need:- Membership on the safes Serval will manage, with
manageSafeMembers(for grant/revoke workflows),listAccounts(for account listing), andinitiateCPMAccountManagementOperations(for rotation workflows). - Authorizer permissions (
requestsAuthorizationLevel1) on safes where Serval should approve or reject dual-control access requests. - No “Retrieve accounts” permission anywhere. Serval’s API surface has no credential-retrieval endpoints, but the account should not hold that permission regardless - defense in depth.
Connect in Serval
Select CyberArk Privilege Cloud
Enter the API Host (required)
acme.privilegecloud.cyberark.cloud. You do not need to include https:// - Serval normalizes the value and always connects over HTTPS. The host must end with .cyberark.cloud.Enter the Identity Tenant Host (required)
abc1234.id.cyberark.cloud (from Identity Administration). This is where Serval sends the OAuth token request.Enter the Service User and Password (required)
Save and verify
POST https://{identityHost}/oauth2/platformtoken and caches the resulting bearer token for the lifetime the response reports (typically 15 minutes), refreshing shortly before expiry. No refresh token is involved - Serval simply repeats the exchange when needed.Verifying the connection
Four health checks run after you connect:- Test Connection - authenticates against CyberArk Identity and lists safes. Failure usually means the Identity tenant host is wrong, the service user is missing “Is OAuth confidential client”, or the username/password is incorrect.
- List Safes - confirms the service user can enumerate safes. Failure with a working Test Connection means the account has no safe memberships or lacks list rights.
- List Accounts - confirms the account can list accounts in its safes. Failure typically means the account is missing
listAccountson the managed safes. - List Platforms - confirms the account can read target platforms (needed to discover valid platform IDs for account workflows).
Installable workflows
The integration ships with installable workflows (names indicative):Gotchas and troubleshooting
Serval cannot read vaulted secrets - by design
Serval cannot read vaulted secrets - by design
Legacy Privilege Cloud Standard tenants are not supported
Legacy Privilege Cloud Standard tenants are not supported
*.privilegecloud.cyberark.com use the vault Logon API rather than Identity OAuth. Serval validates that both configured hosts end with .cyberark.cloud and rejects legacy hosts at install time. If you are on a Standard tenant, this integration will not connect.The service user must be an OAuth confidential client
The service user must be an OAuth confidential client
platformtoken exchange fails - the account is subject to interactive login policies and MFA that an API client cannot satisfy. Enable the flag on the dedicated service user, not on a human account.Use the Identity tenant host, not the portal subdomain
Use the Identity tenant host, not the portal subdomain
abc1234.id.cyberark.cloud, shown in Identity Administration). Entering the Privilege Cloud portal hostname or your company’s vanity login URL there will make authentication fail even with correct credentials.Service-user permissions drive every workflow
Service-user permissions drive every workflow
manageSafeMembers on the target safe; rotation fails without initiateCPMAccountManagementOperations. Grant per-safe permissions for exactly the workflows you install.Rotation is asynchronous
Rotation is asynchronous
Vault user management lives in CyberArk Identity
Vault user management lives in CyberArk Identity
Need help? Contact support@serval.com for assistance with your CyberArk Privilege Cloud integration.

