Skip to main content

Capabilities

ResourceSyncProvision
Account
Invitation
Organization
Organization role
Project
Service account(delete only)
Group
API key
Predefined roles supported:
  • Organization roles: Owner, Reader
  • Project roles: Owner, Member, Viewer
Custom roles supported:
  • Organization custom roles (dynamic, fetched per organization)
  • Project custom roles (dynamic, fetched per project)
Group member listing requires a paid plan. Listing group members and syncing group-inherited role grants requires a Business, Enterprise, or higher OpenAI plan. Free plan accounts will not have group membership grants synced.
Custom project roles require project membership. To assign a custom project role to a user or group, they must already have a predefined project role (Owner, Member, or Viewer). If they don’t, the connector automatically adds them as a Member first.
Custom project roles cannot be assigned to service accounts via the API. The OpenAI API does not support assigning custom project roles to service accounts programmatically. The connector syncs existing custom project role assignments for service accounts, but provisioning (granting) a custom project role to a service account will fail. Use the OpenAI platform to manage custom project role assignments for service accounts.
Service account provisioning is deprovision-only. The connector can delete (deprovision) service accounts from a project, but cannot create new service accounts. Use the OpenAI platform to create service accounts.
Organization owners are implicit project owners. OpenAI enforces that organization owners are automatically project owners for all projects. This grant is shown as inherited from the organization owner role and cannot be modified through the connector or the OpenAI API.
Additional functionality: Supports automatic account provisioning and deprovisioning

SCIM provisioning notes

OpenAI supports SCIM-based directory sync for automating user provisioning and deprovisioning. However, there are important limitations to be aware of when planning your provisioning strategy.

Availability

SCIM is only available on certain OpenAI plans:
  • API Platform: Custom or Unlimited billing plans
  • ChatGPT: Enterprise or EDU plans
SCIM is not available on the Business plan. If you are on a plan that does not support SCIM, you must manage users manually or through the OpenAI Admin API.

Configuring SCIM

SCIM is not configured through the OpenAI API. Instead, organization owners enable directory sync through the Identity settings in the OpenAI Platform dashboard. This opens a setup flow through the WorkOS portal, where you connect your identity provider (IdP). Supported identity providers include Okta, Entra ID (Azure AD), Google Workspace, PingFederate, OneLogin, and Rippling, among others.

Limitation: no SCIM Groups support on the API Platform

OpenAI’s SCIM integration on the API Platform does not currently support SCIM Groups. This means:
  • Users provisioned via SCIM are automatically invited to the organization, but they are not assigned to any project.
  • There is no way to use SCIM to automatically map IdP groups to OpenAI projects or roles.
  • Each user provisioned via SCIM must be separately assigned to projects after they join the organization.
SCIM Groups are supported for ChatGPT Enterprise workspaces but not for the API Platform. If you use both products, be aware that group sync behavior differs between them.

Workaround: use the Admin API for project assignments

Because SCIM cannot assign users to projects, you can use the OpenAI Admin API’s Project Users endpoints to manage project membership after a user is provisioned via SCIM. The key endpoints are:
  • Add user to project: POST /v1/organization/projects/{project_id}/users — requires user_id and role (member or owner)
  • Modify project user role: POST /v1/organization/projects/{project_id}/users/{user_id} — update a user’s project role
  • Remove user from project: DELETE /v1/organization/projects/{project_id}/users/{user_id}
The ConductorOne OpenAI connector uses the Admin API to manage project memberships. When you configure ConductorOne to provision access to OpenAI projects, ConductorOne handles these API calls for you, filling the gap that SCIM leaves for project-level access.

What SCIM provides vs. what requires the Admin API

CapabilitySCIMAdmin API (via ConductorOne)
Provision user into organization
Deprovision user from organization
Assign user to project
Assign project role
Assign organization role
Map IdP groups to projects
Neither SCIM nor the Admin API currently supports automatically mapping IdP groups to OpenAI projects. To assign users to projects, use ConductorOne’s provisioning capabilities with the OpenAI connector, which calls the Admin API on your behalf.

Gather OpenAI configuration information

Configuring the connector requires you to pass in information from OpenAI. Gather these configuration details before you move on. Here’s the information you’ll need:
  • OpenAI Admin API Key — This must be an Admin API key created with All permissions selected. The connector requires full admin permissions to manage users, projects, and invitations. Keys created with “Restricted” permissions will cause the connector to error.
To create the Admin API key:
  1. In the OpenAI platform, navigate to Settings > API keys in the Organization section.
  2. Click Create new admin key.
  3. When prompted to set permissions, select All. Do not select “Restricted”, as the connector requires access to all organization management endpoints.
  4. Copy and save the generated key.
See the OpenAI docs for more information: Admin API Keys documentation

Configure the OpenAI connector

To complete this task, you’ll need:
  • The Connector Administrator or Super Administrator role in ConductorOne
  • Access to the set of OpenAI configuration information gathered by following the instructions above
Follow these instructions to use a built-in, no-code connector hosted by ConductorOne.
1
In ConductorOne, navigate to Integrations > Connectors and click Add connector.
2
Search for OpenAI and click Add.
3
Choose how to set up the new OpenAI 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 ConductorOne)
  • Add the connector to a managed app (select from the list of existing managed apps)
  • Create a new managed app
4
Set the owner for this connector. You can manage the connector yourself, or choose someone else from the list of ConductorOne users. Setting multiple owners is allowed. If you choose someone else, ConductorOne will notify the new connector owner by email that their help is needed to complete the setup process.
5
Click Next.
6
Find the Settings area of the page and click Edit.
7
Enter the configuration information from the previous section.
8
Click Save.
9
The connector’s label changes to Syncing, followed by Connected. You can view the logs to ensure that information is syncing.
That’s it! Your OpenAI connector is now pulling access data into ConductorOne.