TrueFoundry external system
See also: TrueFoundry SDK documentation
TrueFoundry uses two separate tokens for authentication: a native API token for all standard REST API operations, and a SCIM token for display name updates via the SCIM v2 endpoint. Both tokens are stored in the Grouper WsBearerToken external system's accessTokenPassword field as a JSON string.
Configuration
Create a new WsBearerToken external system in the Grouper UI and configure the following settings:
Setting | Value | Notes |
|---|---|---|
httpAuthnType | bearerToken | Default value, select from dropdown |
endpoint | The TrueFoundry API endpoint (always this URL regardless of vanity domain) | |
accessTokenPassword |
| JSON string containing both tokens (see "Getting your tokens" below). This value will be encrypted by Grouper. |
Note: The "test connection" button in the Grouper UI will not work for this external system because the accessTokenPassword is a JSON string, not a plain bearer token. Use the curl commands below to verify connectivity instead.
Token JSON format
The accessTokenPassword field must contain a JSON string with two keys:
{"apiToken": "your-native-api-token", "scimToken": "your-scim-bearer-token"}
Key | Required? | Description |
|---|---|---|
| Yes | Bearer token for all native REST API operations (users, teams, roles). Obtained from a virtual account credential. |
| Only if SCIM display name updates are enabled | Bearer token for the SCIM v2 endpoint. Obtained from Settings → SSO → SCIM configuration. If SCIM is not configured on the provisioner ( |
Example configuration properties
# External system config id: trueFoundryProd
grouper.wsBearerToken.trueFoundryProd.endpoint = https://app.truefoundry.com
grouper.wsBearerToken.trueFoundryProd.accessTokenPassword = {"apiToken": "abc123", "scimToken": "def456"}
Note: in practice the accessTokenPassword value would be encrypted. The above shows the plaintext for illustration.
Verifying connectivity
To verify the native API token, use curl to call the subjects endpoint:
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
"https://app.truefoundry.com/api/svc/v1/subjects?query=&limit=1&offset=0&showInvalidUsers=true"
A successful response (HTTP 200) with a JSON body containing a users key confirms that the API token and endpoint are valid.
To verify the SCIM token, use curl to call the SCIM Users endpoint:
curl -H "Authorization: Bearer YOUR_SCIM_TOKEN" \
"https://app.truefoundry.com/api/svc/v1/scim/v2/{tenantName}/{ssoId}/Users"
A successful response (HTTP 200) with a SCIM ListResponse confirms the SCIM token is valid.
Getting your tokens
Native API token
Create a virtual account and bearer token credential in the TrueFoundry dashboard:
Navigate to Access > Access management > Virtual accounts.
Create a new virtual account and assign it the tenant admin role. This is required so that the provisioner can manage teams and team memberships across the tenant.
On the virtual account, create a new credential (bearer token). Copy the token value — this is the
apiTokenvalue.
SCIM token
The SCIM token is obtained from the TrueFoundry SSO/SCIM configuration:
Navigate to Settings → SSO in the TrueFoundry UI.
Locate the SCIM configuration section. The SCIM URL has the form https://app.truefoundry.com/api/svc/v1/scim/v2/{tenantName}/{ssoId
}.Copy the SCIM bearer token — this is the
scimTokenvalue.The
{tenantName}and{ssoId}segments from the SCIM URL are configured on the provisioner astrueFoundryScimTenantNameandtrueFoundryScimSsoId.
See your TrueFoundry documentation for details on virtual accounts, credential management, and SCIM configuration.