Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 59 additions & 14 deletions src/langsmith/self-host-sso.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ You must have administrator-level access to your organization's Google Cloud Pla
#### Configuration steps

For additional information, see Okta's [documentation](https://help.okta.com/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm).
If you have any questions or issues, please reach out to [support@langchain.dev](mailto:support@langchain.dev).

<div id="via-okta-integration-network">
<b>Via Okta Integration Network (recommended)</b>
Expand Down Expand Up @@ -175,14 +176,36 @@ This method of configuration is required in order to use SCIM with Okta.
* `Update application username on`: `Create and update`.
* `Allow users to securely see their password`: leave **unchecked**.
1. Click **Save**.
1. Configure LangSmith to use this OAuth application. As an example, here are the `config` values that would be used for Kubernetes configuration:
1. Configure LangSmith to use this OAuth application (see [general configuration section](#configuration) for details about `initialOrgAdminEmail`):

1. `oauthClientId`: `Client ID` (starts with `0o`)
2. `oauthClientSecret`: `Client secret`
3. `hostname`: the domain of your instance e.g. `https://langsmith.yourdomain.com` (no trailing slash)
4. `oauthIssuerUrl`: the URL of your Okta instance e.g. `https://company-7422949.okta.com`
5. `oauth.enabled`: `true`
6. `authType`: `mixed`

<CodeGroup>

```yaml Helm
config:
authType: mixed
hostname: https://langsmith.example.com # the domain of your instance (note no trailing slash)
initialOrgAdminEmail: test@email.com # Set this if required
oauth:
enabled: true
oauthClientId: "Client ID" # (starts with `0o`)
oauthClientSecret: "Client secret"
Comment on lines +191 to +192
Copy link
Preview

Copilot AI Sep 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The example values "Client ID" and "Client secret" are placeholder text that could be confusing. Consider using more obviously placeholder values like <your-client-id> or YOUR_CLIENT_ID_HERE to make it clear these need to be replaced with actual values.

Copilot uses AI. Check for mistakes.

oauthIssuerUrl: "https://company-7422949.okta.com" # the URL of your Okta instance
oauthScopes: "email,profile,openid"
```

```bash Docker
# In your .env file
AUTH_TYPE=mixed
INITIAL_ORG_ADMIN_EMAIL=test@email.com # Set this if required
LANGSMITH_URL=https://langsmith.example.com # the domain of your instance (note no trailing slash)
OAUTH_CLIENT_ID="Client ID" # (starts with `0o`)
OAUTH_CLIENT_SECRET="Client secret"
Comment on lines +202 to +203
Copy link
Preview

Copilot AI Sep 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same issue as the Helm example - the placeholder values "Client ID" and "Client secret" should use more obvious placeholder formatting to prevent users from literally copying these strings.

Copilot uses AI. Check for mistakes.

OAUTH_ISSUER_URL="https://company-7422949.okta.com" # the URL of your Okta instance
OAUTH_SCOPES=email,profile,openid
```

</CodeGroup>

<div id="via-okta-custom-app-integration">
<b>Via Custom App Integration</b>
Expand All @@ -208,14 +231,36 @@ SCIM is not compatible with this method of configuration. Refer to [**Via Okta I
1. Under **Sign On > OpenID Connect ID Token** set **Issuer** to **Okta URL**.
1. (Optional) Under **General > Login** set **Login initiated by** to `Either Okta or App` to enable IdP-initiated login.
1. (Recommended) Under **General > Login > Email verification experience** fill in the **Callback URI** with the LangSmith URL, e.g., `https://langsmith.yourdomain.com`.
1. Configure LangSmith to use this OAuth application. As an example, here are the `config` values that would be used for Kubernetes configuration:
1. Configure LangSmith to use this OAuth application (see [general configuration section](#configuration) for details about `initialOrgAdminEmail`):

1. `oauthClientId`: `Client ID` (starts with `0o`)
2. `oauthClientSecret`: `Client secret`
3. `hostname`: the domain of your LangSmith instance e.g. `https://langsmith.yourdomain.com` (no trailing slash)
4. `oauthIssuerUrl`: the URL of your Okta instance e.g. `https://company-7422949.okta.com`
5. `oauth.enabled`: `true`
6. `authType`: `mixed`

<CodeGroup>

```yaml Helm
config:
authType: mixed
hostname: https://langsmith.example.com # the domain of your instance (note no trailing slash)
initialOrgAdminEmail: test@email.com # Set this if required
oauth:
enabled: true
oauthClientId: "Client ID" # (starts with `0o`)
oauthClientSecret: "Client secret"
oauthIssuerUrl: "https://company-7422949.okta.com" # the URL of your Okta instance
oauthScopes: "email,profile,openid"
```

```bash Docker
# In your .env file
AUTH_TYPE=mixed
INITIAL_ORG_ADMIN_EMAIL=test@email.com # Set this if required
LANGSMITH_URL=https://langsmith.example.com # the domain of your instance (note no trailing slash)
OAUTH_CLIENT_ID="Client ID" # (starts with `0o`)
OAUTH_CLIENT_SECRET="Client secret"
OAUTH_ISSUER_URL="https://company-7422949.okta.com" # the URL of your Okta instance
OAUTH_SCOPES=email,profile,openid
```

</CodeGroup>

#### SP-initiated SSO

Expand Down