OIDC SSO
OpenID Connect (OIDC) is a modern authentication protocol built on OAuth 2.0. This guide walks you through configuring OIDC SSO for your Opik organization.
Prerequisites
Section titled “Prerequisites”Before you begin, ensure you have:
- Organization admin access to Opik
- Admin access to your identity provider that supports OIDC
- Enterprise plan enabled for your organization
- Email domain you want to use for SSO (e.g.,
company.com)
OIDC vs. SAML
Section titled “OIDC vs. SAML”OIDC offers several advantages over SAML:
| Feature | OIDC | SAML |
|---|---|---|
| Protocol | REST/JSON-based | XML-based |
| Token format | JWT | XML assertions |
| Setup complexity | Simpler | More complex |
| Mobile/API friendly | Yes | Limited |
| Workspace sync | Via default workspace | Via attribute mapping |
Choose OIDC when:
- Your IdP supports OIDC (most modern IdPs do)
- You prefer simpler configuration
- You don't need attribute-based workspace sync
Choose SAML when:
- You need automatic workspace assignment based on user attributes
- Your organization requires SAML specifically
Configuration overview
Section titled “Configuration overview”Setting up OIDC SSO involves:
- Register Opik in your identity provider as an OIDC application.
- Configure Opik with your IdP's OIDC endpoints and credentials.
Step 1: Register Opik in your IdP
Section titled “Step 1: Register Opik in your IdP”Create a new OIDC/OAuth application in your identity provider:
Application settings
Section titled “Application settings”| Setting | Value |
|---|---|
| Application type | Web application |
| Grant type | Authorization Code |
| Redirect/Callback URL | https://www.comet.com/opik/oauth/callback/<organization-id> |
Required scopes
Section titled “Required scopes”Ensure your OIDC application requests these scopes:
openid- Required for OIDCprofile- User profile informationemail- User's email address
Step 2: Gather IdP information
Section titled “Step 2: Gather IdP information”After registering the application, collect the following from your IdP:
| Information | Description | Where to find |
|---|---|---|
| Client ID | Unique identifier for your application | IdP application settings |
| Client Secret | Secret key for authentication | IdP application settings |
| Authorization URL | Endpoint for authorization requests | IdP documentation or well-known endpoint |
| Token URL | Endpoint to exchange codes for tokens | IdP documentation or well-known endpoint |
| User Info URL | Endpoint to fetch user profile | IdP documentation or well-known endpoint |
Step 3: Configure Opik
Section titled “Step 3: Configure Opik”- Navigate to Admin Dashboard > SSO Configuration.
- Select OIDC as the SSO protocol.
- Enter the following settings:
Required OIDC settings
Section titled “Required OIDC settings”| Field | Description | Example |
|---|---|---|
| Domain | Email domain for SSO users | company.com |
| Client ID | Application identifier from your IdP | abc123xyz |
| Client Secret | Secret key from your IdP | secret_... |
| Authorization URL | IdP's authorization endpoint | https://idp.company.com/oauth/authorize |
| Token URL | IdP's token endpoint | https://idp.company.com/oauth/token |
| Callback URL | Opik's callback URL | https://www.comet.com/opik/oauth/callback/... |
| User Info URL | IdP's user info endpoint | https://idp.company.com/oauth/userinfo |
Optional OIDC settings
Section titled “Optional OIDC settings”| Field | Description | Default |
|---|---|---|
| Default Workspace | Workspace for new SSO users | Organization default |
| Application Resource ID | Custom resource identifier | Not set |
Field reference
Section titled “Field reference”Client ID
Section titled “Client ID”The unique identifier assigned to Opik when you registered it with your IdP:
- Created when you register the application
- Used in authorization requests to identify Opik
- Should be treated as public (not secret)
Client Secret
Section titled “Client Secret”The secret key used to authenticate Opik with your IdP:
- Created when you register the application
- Used when exchanging authorization codes for tokens
- Must be kept secret - never expose in client-side code
Authorization URL (Auth Base URL)
Section titled “Authorization URL (Auth Base URL)”The endpoint where users are redirected to authenticate:
https://idp.company.com/oauth/authorizeThis URL receives authorization requests with:
client_id- Your application's client IDredirect_uri- The callback URLscope- Requested permissionsresponse_type- Alwayscodefor authorization code flowstate- Security parameter to prevent CSRF
Token URL (Access Token URL)
Section titled “Token URL (Access Token URL)”The endpoint where Opik exchanges authorization codes for access tokens:
https://idp.company.com/oauth/tokenOpik sends a POST request with:
grant_type- Alwaysauthorization_codecode- The authorization code receivedredirect_uri- The callback URLclient_idandclient_secret- For authentication
Callback URL
Section titled “Callback URL”The URL where your IdP redirects users after authentication:
https://www.comet.com/opik/oauth/callback/<organization-id>- Must be registered in your IdP's allowed redirect URIs
- Must match exactly (including trailing slashes)
- Opik generates this URL based on your organization ID
Protected Resource URL (User Info URL)
Section titled “Protected Resource URL (User Info URL)”The endpoint where Opik fetches user profile information:
https://idp.company.com/oauth/userinfoOpik uses the access token to request:
sub- User's unique identifieremail- User's email addressname- User's display name
Default Workspace
Section titled “Default Workspace”When users authenticate via OIDC for the first time:
- They are added to the default workspace specified in SSO settings.
- If not specified, they are added to the organization's default workspace.
- Workspace assignment can be managed manually after initial login.
IdP-specific configuration guides
Section titled “IdP-specific configuration guides”Configuring Okta
- In Okta Admin Console, go to Applications > Create App Integration.
- Select OIDC - OpenID Connect and Web Application.
- Configure settings:
- Sign-in redirect URI: Your callback URL from Opik
- Sign-out redirect URI:
https://www.comet.com/opik - Controlled access: Assign users/groups as needed
- Note the Client ID and Client Secret.
- Find endpoints in Okta's OpenID Connect Metadata or use:
- Authorization:
https://<your-domain>.okta.com/oauth2/v1/authorize - Token:
https://<your-domain>.okta.com/oauth2/v1/token - User Info:
https://<your-domain>.okta.com/oauth2/v1/userinfo
- Authorization:
Configuring Azure AD
- In Azure Portal, go to Azure Active Directory > App registrations.
- Click New registration:
- Name: Opik
- Supported account types: Choose based on your needs
- Redirect URI: Web, your callback URL from Opik
- After creation, note the Application (client) ID.
- Go to Certificates & secrets > New client secret and note the value.
- Use these endpoints (replace
<tenant-id>):- Authorization:
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize - Token:
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token - User Info:
https://graph.microsoft.com/oidc/userinfo
- Authorization:
Configuring Google Workspace
- Go to Google Cloud Console.
- Create or select a project.
- Go to APIs & Services > Credentials.
- Click Create Credentials > OAuth client ID.
- Configure:
- Application type: Web application
- Authorized redirect URIs: Your callback URL from Opik
- Note the Client ID and Client Secret.
- Use these endpoints:
- Authorization:
https://accounts.google.com/o/oauth2/v2/auth - Token:
https://oauth2.googleapis.com/token - User Info:
https://openidconnect.googleapis.com/v1/userinfo
- Authorization:
Configuring Auth0
- In Auth0 Dashboard, go to Applications > Create Application.
- Select Regular Web Applications.
- Configure settings:
- Allowed Callback URLs: Your callback URL from Opik
- Allowed Logout URLs:
https://www.comet.com/opik
- Note the Domain, Client ID, and Client Secret.
- Use these endpoints (replace
<your-domain>):- Authorization:
https://<your-domain>.auth0.com/authorize - Token:
https://<your-domain>.auth0.com/oauth/token - User Info:
https://<your-domain>.auth0.com/userinfo
- Authorization:
Testing the configuration
Section titled “Testing the configuration”After configuring both Opik and your IdP:
- Open an incognito/private browser window (to avoid cached sessions).
- Navigate to Opik's login page.
- Enter an email address with your configured domain.
- You should be redirected to your IdP for authentication.
- After authenticating, you should be redirected back to Opik and logged in.
Troubleshooting
Section titled “Troubleshooting”Common issues
Section titled “Common issues”| Issue | Possible cause | Solution |
|---|---|---|
| "Invalid redirect URI" | Callback URL mismatch | Verify callback URL matches exactly in both Opik and IdP |
| "Invalid client" | Wrong client ID | Verify client ID is copied correctly |
| "Invalid client credentials" | Wrong client secret | Verify client secret, regenerate if needed |
| "Scope not allowed" | IdP scope restrictions | Ensure openid, profile, email scopes are allowed |
| User not created | Missing email claim | Verify IdP returns email in user info response |
Troubleshooting checklist
Section titled “Troubleshooting checklist”- Verify client credentials: Double-check client ID and secret.
- Check callback URL: Must match exactly (including protocol, trailing slashes).
- Validate endpoint URLs: Ensure all URLs are correct and accessible.
- Review IdP logs: Check your identity provider's logs for errors.
- Test well-known endpoint: Verify
/.well-known/openid-configurationreturns valid JSON. - Check scopes: Ensure required scopes are configured and allowed.
Debugging with browser tools
Section titled “Debugging with browser tools”Use browser developer tools to inspect the authentication flow:
- Open Network tab before starting login.
- Look for requests to your IdP's authorization endpoint.
- Check for error parameters in the callback URL.
- Review any error responses from the token endpoint.
Security considerations
Section titled “Security considerations”Client secret protection
Section titled “Client secret protection”- Store the client secret securely in Opik's configuration.
- Never expose the client secret in logs or client-side code.
- Rotate the secret periodically per your security policies.
Callback URL validation
Section titled “Callback URL validation”- Only configure the exact callback URL provided by Opik.
- Do not add additional redirect URIs unless necessary.
- Review registered redirect URIs periodically.
Token handling
Section titled “Token handling”Opik handles tokens securely:
- Access tokens are used server-side only.
- Tokens are not exposed to the browser.
- Sessions are managed securely after authentication.
Next steps
Section titled “Next steps”- Configure SAML if you need workspace sync features.
- Set up JWT authentication for programmatic access.
- Manage users and workspace assignments.