> ## Documentation Index
> Fetch the complete documentation index at: https://conductorone-docs-google-workspace-action-examples.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up a SAP SuccessFactors connector

> C1 provides identity governance and just-in-time provisioning for SAP SuccessFactors. Integrate your SuccessFactors instance with C1 to run user access reviews (UARs) and enable just-in-time access requests.

<Tip>
  **A newer version of this connector is available.** This version of the connector is no longer available for installation. If you're setting up a SAP SuccessFactors connector with C1 for the first time, use the [SCIM version](/baton/successfactors-scim).
</Tip>

## Capabilities

| Resource | Sync                                                          | Provision |
| -------- | ------------------------------------------------------------- | --------- |
| Accounts | <Icon icon="square-check" iconType="solid" color="#c937ae" /> |           |
| Groups   | <Icon icon="square-check" iconType="solid" color="#c937ae" /> |           |

## Gather SuccessFactors credentials

Configuring the connector requires you to pass in credentials generated in SuccessFactors. Gather these credentials before you move on.

<Warning>
  An **administrator** with the ability to **Manage OAuth2 Client Applications** in SuccessFactors must perform this task.
</Warning>

### Grant the admin user the necessary permissions

Give the admin user who will configure the connector the necessary **Manage Identity Account and Group** permissions.

<Steps>
  <Step>
    Navigate to **Admin Center** > **Manage Permission Groups**.
  </Step>

  <Step>
    Create a new permission group that includes the admin user.
  </Step>

  <Step>
    Next, navigate to **Manage Permission Roles** and create a new permission role.
  </Step>

  <Step>
    Give the permission role the following **Manage Identity Account and Group** permissions:

    * Read Access to SCIM User API
    * Read Access to SCIM Group API
    * Edit Access to SCIM Group API for Membership Assignment
  </Step>

  <Step>
    Assign the newly created permission role to the permission group you created.
  </Step>
</Steps>

You'll also need the **User ID** of the admin user when configuring the connector.

### Look up your company ID

<Steps>
  <Step>
    Navigate to your profile menu and select **Show version information**.
  </Step>

  <Step>
    Carefully copy and save the Company ID.
  </Step>
</Steps>

### Look up your instance URL

<Steps>
  <Step>
    Refer to the SAP SuccessFactors documentation and look up your [API server](https://help.sap.com/docs/successfactors-platform/sap-successfactors-api-reference-guide-odata-v2/list-of-sap-successfactors-api-servers).
  </Step>

  <Step>
    Carefully copy and save the API server URL.
  </Step>
</Steps>

### Register an OAuth2 client application and generate an API key

<Steps>
  <Step>
    In SuccessFactors, navigate to **Admin Tools** > **Manage OAuth2 Client Applications** and click **Register Client Application**.
  </Step>

  <Step>
    Fill out the form, providing:

    * Application name, such as "C1 Connector".

    * Application URL, such as `https://www.conductorone.com/`. Carefully copy and save this URL, it will be used later as the **Issuer URL** when setting up the connector.

    * X.509 Certificate. Make sure to **create, sign, and upload your own certificate**, as certificates generated by SAP SuccessFactors cannot be used by the connector. When uploading a self-generated certificate, remove the lines `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`.
  </Step>

  <Step>
    Click **Register**.
  </Step>

  <Step>
    Click **Edit** in the list of registered applications to view the new application's API key.
  </Step>

  <Step>
    Carefully copy and save the API key. When setting up the connector, you'll use this API key as both the **Client ID** and the **SAML API key**.
  </Step>
</Steps>

**That's it!** Next, move on to the connector configuration instructions.

## Configure the SuccessFactors connector

<Warning>
  To complete this task, you'll need:

  * The **Connector Administrator** or **Super Administrator** role in C1
  * Access to the set of SuccessFactors credentials generated by following the instructions above
</Warning>

<Tabs>
  <Tab title="Cloud-hosted">
    **Follow these instructions to use a built-in, no-code connector hosted by C1.**

    <Steps>
      <Step>
        In C1, navigate to **Admin** > **Connectors** and click **Add connector**.
      </Step>

      <Step>
        Search for **SuccessFactors** and click **Add**.
      </Step>

      <Step>
        Choose how to set up the new SuccessFactors connector:

        * Add the connector to a currently unmanaged app (select from the list of apps that were discovered in your identity, SSO, or federation provider that aren't yet managed with C1)

        * Add the connector to a managed app (select from the list of existing managed apps)

        * Create a new managed app
      </Step>

      <Step>
        Set the owner for this connector. You can manage the connector yourself, or choose someone else from the list of C1 users. Setting multiple owners is allowed.

        If you choose someone else, C1 will notify the new connector owner by email that their help is needed to complete the setup process.
      </Step>

      <Step>
        Click **Next**.
      </Step>

      <Step>
        Find the **Settings** area of the page and click **Edit**.
      </Step>

      <Step>
        In the **Company ID** field, enter your SuccessFactors company ID.
      </Step>

      <Step>
        In the **Client ID** field, enter the API key.
      </Step>

      <Step>
        In the **Public key** and **Private key** fields, enter these credentials.
      </Step>

      <Step>
        In the **Instance URL** field, enter your API server URL.
      </Step>

      <Step>
        In the **Issuer URL** field, enter the application URL used to set up the OAuth2 application.
      </Step>

      <Step>
        In the **Subject name ID** field, enter the user ID of the admin user that will be added to the SAML subject.
      </Step>

      <Step>
        In the **SAML API key** field, enter the API key a second time.
      </Step>

      <Step>
        Click **Save**.
      </Step>

      <Step>
        The connector's label changes to **Syncing**, followed by **Connected**. You can view the logs to ensure that information is syncing.
      </Step>
    </Steps>

    **That's it!** Your SuccessFactors connector is now pulling access data into C1.
  </Tab>

  <Tab title="Self-hosted">
    **Follow these instructions to use the [SuccessFactors](https://github.com/conductorone/baton-successfactors) connector, hosted and run in your own environment.**

    When running in service mode on Kubernetes, a self-hosted connector maintains an ongoing connection with C1, automatically syncing and uploading data at regular intervals. This data is immediately available in the C1 UI for access reviews and access requests.

    ### Step 1: Set up a new SuccessFactors connector

    <Steps>
      <Step>
        In C1, navigate to **Connectors** > **Add connector**.
      </Step>

      <Step>
        Search for **Baton** and click **Add**.
      </Step>

      <Step>
        * Add the connector to a currently unmanaged app (select from the list of apps that were discovered in your identity, SSO, or federation provider that aren't yet managed with C1)

        * Add the connector to a managed app (select from the list of existing managed apps)

        * Create a new managed app
      </Step>

      <Step>
        Set the owner for this connector. You can manage the connector yourself, or choose someone else from the list of C1 users. Setting multiple owners is allowed.

        If you choose someone else, C1 will notify the new connector owner by email that their help is needed to complete the setup process.
      </Step>

      <Step>
        Click **Next**.
      </Step>

      <Step>
        In the **Settings** area of the page, click **Edit**.
      </Step>

      <Step>
        Click **Rotate** to generate a new Client ID and Secret.

        Carefully copy and save these credentials. We'll use them in Step 2.
      </Step>
    </Steps>

    ### Step 2: Create Kubernetes configuration files

    Create two Kubernetes manifest files for your SuccessFactors connector deployment:

    #### Secrets configuration

    ```yaml theme={null}
    # baton-successfactors-secrets.yaml
    apiVersion: v1
    kind: Secret
    metadata:
      name: baton-successfactors-secrets
    type: Opaque
    stringData:
      # C1 credentials
      BATON_CLIENT_ID: <C1 client ID>
      BATON_CLIENT_SECRET: <C1 client secret>
      
      # SuccessFactors credentials
      BATON_CID: <SuccessFactors client ID (use the SAML API key for this value)> 
      BATON_COMPANY_ID: <SuccessFactors company ID> 
      BATON_SUBJECT_NAME_ID: <SuccessFactors subject name ID>
      BATON_PRIVATE_KEY: <SuccessFactors private key>
      BATON_PUBLIC_KEY: <SuccessFactors public key>
      BATON_SAML_API_KEY: <SuccessFactors SAML API key> 
      BATON_INSTANCE_URL: <SuccessFactors domain, such as https://successfactorsserver.com>
      BATON_ISSUER_URL: <SuccessFactors SAML Issuer URL, such as https://www.conductorone.com/> 
    ```

    See the connector's README or run `--help` to see all available configuration flags and environment variables.

    #### Deployment configuration

    ```yaml expandable theme={null}
    # baton-successfactors.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: baton-successfactors
      labels:
        app: baton-successfactors
    spec:
      selector:
        matchLabels:
          app: baton-successfactors
      template:
        metadata:
          labels:
            app: baton-successfactors
            baton: true
            baton-app: successfactors
        spec:
          containers:
          - name: baton-successfactors
            image: ghcr.io/conductorone/baton-successfactors:latest
            imagePullPolicy: IfNotPresent
            env:
            - name: BATON_HOST_ID
              value: baton-successfactors
            envFrom:
            - secretRef:
                name: baton-successfactors-secrets
    ```

    ### Step 3: Deploy the connector

    <Steps>
      <Step>
        Create a namespace in which to run C1 connectors (if desired), then apply the secret config and deployment config files.
      </Step>

      <Step>
        Check that the connector data uploaded correctly. In C1, click **Applications**. On the **Managed apps** tab, locate and click the name of the application you added the SuccessFactors connector to. SuccessFactors data should be found on the **Entitlements** and **Accounts** tabs.
      </Step>
    </Steps>

    **That's it!** Your SuccessFactors connector is now pulling access data into C1.
  </Tab>
</Tabs>
