Overview
The Baton-SCIM connector is a generic connector for applications compatible with SCIM (System for Cross-domain Identity Management). It communicates with the SCIM API to sync data about users, groups, and roles. Built-in service providers include:- Miro
- Postman
- Slack
- Zoom
Configuration options
The connector accepts the following command-line flags and environment variables:| Flag | Environment variable | Description |
|---|---|---|
--service-provider | BATON_SERVICE_PROVIDER | Name of the service provider (e.g., slack, zoom) |
--scim-config | BATON_SCIM_CONFIG | Path to custom YAML SCIM configuration file |
--token | BATON_TOKEN | OAuth2 token for authentication |
--api-key | BATON_API_KEY | API key for authentication |
--username | BATON_USERNAME | Username for basic authentication |
--password | BATON_PASSWORD | Password for basic authentication |
--scim-client-id | BATON_SCIM_CLIENT_ID | Client ID used to obtain access token |
--scim-client-secret | BATON_SCIM_CLIENT_SECRET | Client Secret used to obtain access token |
--account-id | BATON_ACCOUNT_ID | Account ID used to obtain access token |
-p, --provisioning | BATON_PROVISIONING | Enable provisioning actions |
-f, --file | BATON_FILE | Path to the output c1z file (default “sync.c1z”) |
Authentication methods
The SCIM connector supports several authentication methods.OAuth2 token authentication
Use this method when the SCIM provider requires OAuth2 token authentication:API key authentication
Use this method when the SCIM provider requires API key authentication:Basic authentication
Use this method when the SCIM provider requires username/password authentication:OAuth2 client credentials authentication flow
Use this method for services requiring OAuth token acquisition via client credentials:Custom SCIM configuration
For SCIM-enabled applications without built-in support, create a YAML configuration file to map the SCIM resources to the Baton connector.Configuration file structure
JSONPath expressions
The configuration uses JSONPath expressions to extract data from the SCIM API responses. Some common patterns:id- Direct access to a field named “id”name.givenName- Access “givenName” field inside a “name” objectemails[0].value- Access the “value” of the first item in the “emails” arrayemails[?(@.primary==true)].value- Access “value” of the item in “emails” where “primary” is true
Running the connector
After configuring your SCIM connector, you can run it with one of these methods:Using command line arguments
Providing your ConductorOne tenant client ID and client secret via flags automatically triggers Continuous Service Mode. This mode is recommended for production deployments.Using Docker
Provisioning
The SCIM connector supports provisioning actions like adding/removing users from groups and assigning/revoking user roles. To enable provisioning, use the--provisioning flag: