Configure ChatGPT for UserLock Single Sign-On (SSO)
Enable ChatGPT Single Sign-On (SSO) with UserLock to centralize authentication, enforce corporate access policies, and simplify access to your ChatGPT workspace.
This guide explains how to integrate ChatGPT with UserLock Single Sign-On (SSO) using the SAML 2.0 protocol.
Once configured, ChatGPT logins are authenticated by UserLock against Active Directory, enabling administrators to enforce UserLock access policies (MFA, time, machine, or location restrictions) on ChatGPT sessions.
🚩️ Before starting:
You need a ChatGPT Business, Enterprise, or Edu workspace with access to the OpenAI Global Admin Console.
You must be a Global Admin in OpenAI.
You need access to the DNS configuration of the email domain used by your ChatGPT users.
UserLock SSO must already be installed and configured, and reachable publicly over HTTPS with a valid SSL certificate.
The account used to test SSO must already be a member of, or have an invitation to, the ChatGPT workspace.
⚠️ Important
Keep Admin portal SSO settings on Optional. This is the only way for a Global Admin to reach the OpenAI Admin Console if UserLock SSO becomes unavailable.
Do not set ChatGPT SSO to Required until the complete sign-in flow has been tested.
OpenAI requires at least one verified domain before you can configure SSO.
Open the OpenAI Identity page at
https://admin.openai.com/identityand sign in with a Global Admin account.In the domain management section, click + Add Domain.
Enter the email domain used by your ChatGPT users, for example
contoso.com. Enter only the domain, without@, without a protocol, and without an email address.Copy the TXT record name and value generated by OpenAI.
Add the TXT record to the DNS zone of your domain.
Once the DNS record is available, return to the OpenAI Identity page and click Check or Verify, depending on the label displayed in your portal.
The domain must appear with the status Verified before you continue.
Note
DNS propagation can take up to 24 hours. A domain can only be verified in one OpenAI Admin Portal: if it has already been verified for another OpenAI organization or workspace, contact OpenAI Support. Subdomains must be verified separately from their parent domain.
On the OpenAI Identity page, click Set up SSO.
On the identity provider selection page, select Custom SAML.
Enter a name for the identity provider, for example
UserLock SSO.Click Continue.
Copy the two values displayed by OpenAI:
Assertion consumer service (ACS) URL
Service provider entity ID
Keep this page open. You will enter both values in UserLock in the next step.
Note
The ACS URL and Service Provider Entity ID are unique to your OpenAI organization. Copy each value exactly as displayed. OpenAI also displays a Service provider metadata URL, which the UserLock OpenAI profile does not use.
In the UserLock console, go to ⚙️ Server settings ▸ Single Sign-On.
In the application list, select OpenAI.
Complete the application profile with the values from OpenAI:
Settings
Values
Email domain
The verified domain used by your ChatGPT users, without
@or a protocol. For examplecontoso.comIssuer
The Service provider entity ID provided by OpenAI
ACS URL
The Assertion consumer service (ACS) URL provided by OpenAI
Save the profile.
Your UserLock SSO URL is displayed in ⚙️ Server settings ▸ Single Sign-On. In this guide, <SSO_address> is that URL without the protocol. For https://sso.contoso.com, the SSO address is sso.contoso.com.
Return to the OpenAI SSO configuration wizard and continue to Set Identity Provider Metadata. Use one of the two methods below.
Select Dynamic configuration.
In Identity provider metadata URL, enter
https://<SSO_address>/metadata.Click Continue.
OpenAI retrieves the UserLock identity provider endpoints and signing certificate from the metadata, so no certificate has to be uploaded manually.
Use manual configuration if OpenAI cannot retrieve the UserLock metadata URL.
Select Manual configuration.
Complete the fields with the following values:
OpenAI field
Value
Identity provider Single Sign-On URL
https://<SSO_address>/saml/sso
Identity provider issuer
https://<SSO_address>
X.509 certificate
The UserLock SAML certificate
In the UserLock console, go to ⚙️ Server settings ▸ Single Sign-On, click Download ▸ SAML certificate and save the file.
Return to OpenAI and upload the file in X.509 certificate.
Click Continue.
With a UserLock SSO URL of https://sso.contoso.com, the Single Sign-On URL is https://sso.contoso.com/saml/sso and the issuer is https://sso.contoso.com.
The OpenAI wizard then prompts for SAML attributes and an application link. Keep the default attribute configuration, leave the application link unconfigured, and continue to Test Single Sign-On.
Click Continue to sign-in in an incognito or private browser window.
Authenticate through UserLock with a test account that uses the verified email domain, exists in Active Directory, and is already a member of, or has an invitation to, the ChatGPT workspace.
Confirm that authentication succeeds and that the user reaches the ChatGPT workspace. OpenAI then displays the connection as Connection activated.
From the activated connection page, click Test sign-in once more to confirm that the completed connection remains operational.
Creating the SAML connection does not disable password sign-in. Configure enforcement only after the connection has been tested successfully.
Open
https://admin.openai.com/identity.Go to Access ▸ Single Sign-On (SSO).
Click Manage SSO.
Configure the following settings:
Setting
Recommended configuration
ChatGPT SSO settings
Keep Optional while testing. Change to Required only after SSO has been validated with the relevant users
Admin portal SSO settings
Keep Optional so a Global Admin retains a recovery method if the identity provider becomes unavailable
When ChatGPT SSO settings is set to Required, users from the verified domain who belong to the workspace must authenticate through UserLock. Password and social sign-in methods are no longer available for that workspace.
Note
OpenAI shares domain verification and the underlying SAML connection between ChatGPT and the API Platform. SSO must still be enabled and enforced separately for each product. This guide covers ChatGPT.
When you renew the UserLock SAML certificate, handle OpenAI during the SaaS application update step of the Renew the SAML certificate procedure.
Connections created with Dynamic configuration retrieve the new certificate from the UserLock metadata, so no action is required. Confirm that the metadata URL is still https://<SSO_address>/metadata.
Connections created with Manual configuration must be updated:
In the UserLock console, go to ⚙️ Server settings ▸ Single Sign-On and click Download ▸ SAML certificate.
Open
https://admin.openai.com/identity, click Manage SSO and open the active connection.Replace the existing X.509 certificate.
Click Test sign-in and confirm that authentication succeeds.
Reset the connection when the existing SAML configuration cannot be edited and must be recreated.
⚠️ Important
Resetting the connection generates a new ACS URL and a new Service Provider Entity ID. The values stored in the UserLock OpenAI profile stop working immediately, and ChatGPT SSO fails until the profile has been updated.
Set ChatGPT SSO settings to Optional before you reset the connection.
Open
https://admin.openai.com/identity.Go to Access ▸ Single Sign-On (SSO) and click Manage SSO.
Open the existing connection, click Reset connection and confirm.
Create the Custom SAML connection again, then copy the newly generated Assertion consumer service (ACS) URL and Service provider entity ID.
In the UserLock console, go to ⚙️ Server settings ▸ Single Sign-On and open the OpenAI profile.
Replace the existing values:
UserLock setting
New OpenAI value
Issuer
New Service provider entity ID
ACS URL
New Assertion consumer service (ACS) URL
Save the UserLock profile.
Complete the OpenAI wizard and test the connection again before making SSO required.
For common issues, see Troubleshooting SSO.
If the problem persists, contact IS Decisions Support.
Confirm that you are signed in as an OpenAI Global Admin, that the TXT record name and value match the values provided by OpenAI, that the record is publicly available through a DNS lookup, and that the domain has not already been verified in another OpenAI Admin Portal. Allow up to 24 hours for DNS propagation.
If + Add Domain is unavailable, or OpenAI displays a message asking you to contact Support, contact OpenAI Support at https://help.openai.com.
Open https://<SSO_address>/metadata from a browser outside your internal network. It must be reachable over HTTPS and return the UserLock SAML metadata. If it is not, check the external DNS record for the UserLock SSO address, the HTTPS binding and SSL certificate, and any network rule blocking external access. Use Manual configuration in OpenAI while the metadata access issue is corrected.
The X.509 certificate configured in OpenAI does not match the certificate used by UserLock to sign the SAML response. This occurs after a SAML certificate renewal on a connection created with Manual configuration: connections using Dynamic configuration retrieve the new certificate from the metadata and need no update.
In the UserLock console, go to ⚙️ Server settings ▸ Single Sign-On.
Click Download ▸ SAML certificate.
Upload this certificate to the OpenAI SSO connection.
Click Test sign-in and confirm that authentication succeeds.
Use a Global Admin account, which can still reach the Admin Console as long as Admin portal SSO settings remains Optional.
Open
https://admin.openai.com/identity.Go to Access ▸ Single Sign-On (SSO) ▸ Manage SSO.
Change ChatGPT SSO settings from Required to Optional while the issue is investigated.
If no Global Admin can access the portal, contact OpenAI Support at https://help.openai.com.
You can extend the security of SSO sessions by applying UserLock access policies in addition to authentication.
Apply MFA on SaaS connections to require stronger authentication.
Hour restrictions: define when users are allowed to connect.
Geolocation rules: enforce access policies based on user location.
Session limits: allow or deny SaaS logins entirely for specific users.