This guide is for customers whose identity provider is not natively supported by the Azure AD (OIDC) or Okta (OIDC) integrations. If your IdP is Azure AD or Okta, we recommend using the native integration instead, as it provides a more streamlined setup experience.
What You’ll Need
The following information is required to set up OIDC SSO for Devin. You will collect these during the setup steps below and send them to your Cognition account team in the final step.- Discovery URL - Your IdP’s OIDC Discovery endpoint (e.g.,
https://idp.example.com/.well-known/openid-configuration) - Client ID - The application Client ID from your IdP
- Client Secret - The application Client Secret from your IdP
- Identity Provider Domains - All company email domains that will authenticate through this IdP (e.g.,
example.com,subsidiary.example.com) - Scopes - The OIDC scopes to request (typically
openid profile email; addgroupsif using IdP groups)
Setup Instructions
Step 1: Register an Application in Your IdP
In your identity provider’s admin console, create a new OIDC / OAuth 2.0 application (sometimes called a “Web Application” or “Confidential Client”) with the following settings:| Setting | Value |
|---|---|
| Application Type | Web Application / Confidential Client |
| Sign-in Redirect URI (Callback URL) | https://auth.devin.ai/login/callback |
| Sign-out Redirect URI | Leave empty |
| Grant Type | Authorization Code |
| Token Endpoint Authentication | Client Secret (POST) |
Step 2: Locate Your Discovery URL
Most OIDC-compliant identity providers publish an OpenID Connect Discovery document. This URL allows Devin to automatically retrieve your IdP’s authorization, token, and userinfo endpoints. The Discovery URL typically follows this pattern:Common Discovery URL formats by provider:
- Keycloak:
https://<host>/realms/<realm>/.well-known/openid-configuration - Ping Identity:
https://<host>/<tenant-id>/as/.well-known/openid-configuration - OneLogin:
https://<subdomain>.onelogin.com/oidc/2/.well-known/openid-configuration - Auth0:
https://<domain>/.well-known/openid-configuration - Google Workspace:
https://accounts.google.com/.well-known/openid-configuration
authorization_endpoint, token_endpoint, and issuer.Step 3: Configure Scopes
OIDC scopes control what user information Devin receives during authentication. At minimum, request the following scopes:| Scope | Purpose | Required |
|---|---|---|
openid | Required for all OIDC flows | Yes |
profile | Returns the user’s display name | Yes |
email | Returns the user’s email address | Yes |
groups | Returns the user’s group memberships (for IdP groups) | Only if using IdP groups |
openid profile email (or openid profile email groups if using IdP groups).
Some IdPs use a different scope name for group claims (e.g.,
roles or a custom scope). Check your IdP’s documentation for the correct scope name that returns group membership information.Step 4: Configure Group Claims (Required for IdP Groups)
To enable IdP group syncing:- In your IdP, ensure the
groupsscope is available for the application - Configure your IdP to include a
groupsclaim in the ID token or userinfo response
If your IdP does not include group claims by default, you may need to create a custom scope or configure a claims mapping policy. Consult your IdP’s documentation for instructions on adding group claims to OIDC tokens.
Step 5: Send Configuration to Cognition
Send the following to your Cognition account team:- Discovery URL (e.g.,
https://idp.example.com/.well-known/openid-configuration) - Client ID
- Client Secret
- Identity Provider Domains (all email domains for this IdP)
- Scopes (e.g.,
openid profile email groups)
Verifying Your Setup
After your Cognition account team confirms the configuration is complete:- Navigate to your Devin Enterprise URL (e.g.,
https://<your_subdomain>.devinenterprise.com) - Click Sign in with OIDC (or the equivalent SSO button) to initiate the login flow
- You should be redirected to your IdP’s login page
- After authenticating, you should land in your Devin Enterprise organization
- Go to Settings > IdP Groups in the Devin webapp
- You should see your IdP groups listed after at least one group member has logged in
- Groups are synced on each login, so any membership changes in your IdP will take effect the next time a user signs in
IdP groups are fetched upon user login, so changes in group membership will require reauthentication. See IdP Group Integration for more details on configuring group-based access control.
