Capabilities
| Resource | Sync | Provision |
|---|---|---|
| Account | ||
| Invitation | ||
| Role | ||
| Project | ||
| API key |
- Organization roles: Owner, Reader
- Project roles: Owner, Member, Viewer
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
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— requiresuser_idandrole(memberorowner) - 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}
What SCIM provides vs. what requires the Admin API
| Capability | SCIM | Admin 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.
- In the OpenAI platform, navigate to Settings > API keys in the Organization section.
- Click Create new admin key.
- When prompted to set permissions, select All. Do not select “Restricted”, as the connector requires access to all organization management endpoints.
- Copy and save the generated key.
Configure the OpenAI connector
- Cloud-hosted
- Self-hosted
Follow these instructions to use a built-in, no-code connector hosted by ConductorOne.That’s it! Your OpenAI connector is now pulling access data into ConductorOne.
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
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.