You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* enhances existing SCIM documentation for Okta
* adds sections to SAML and OAuth2.0 docs for Okta
---------
Co-authored-by: Kathryn May <[email protected]>
Copy file name to clipboardExpand all lines: docs/administration/how_to_guides/organization_management/set_up_saml_sso.mdx
+28-2Lines changed: 28 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -111,7 +111,9 @@ These are instructions for setting up LangSmith SAML SSO with Entra ID (formerly
111
111
112
112
For additional information, see Microsoft's [documentation](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/add-application-portal-setup-sso).
113
113
114
-
**Step 1: Create a new Entra ID application integration**
114
+
<spanid="create-application-entra-id">
115
+
<b>Step 1: Create a new Entra ID application integration</b>
116
+
</span>
115
117
116
118
1. Log in to the [Azure portal](https://portal.azure.com/#home) with a privileged role (e.g. Global Administrator). On the left navigation pane, select the `Entra ID` service.
117
119
1. Navigate to Enterprise Applications and then select All Applications.
@@ -199,14 +201,38 @@ For additional information, see Okta's [documentation](https://help.okta.com/en-
199
201
200
202
**Step 1: Create and configure the Okta SAML application**
201
203
204
+
**Via Okta Integration Network (recommended)**
205
+
206
+
1. Sign in to [Okta](https://login.okta.com/).
207
+
1. In the upper-right corner, select Admin. The button is not visible from the Admin area.
208
+
1. Select `Browse App Integration Catalog`.
209
+
1. Find and select the LangSmith application.
210
+
1. On the application overview page, select Add Integration.
211
+
1. Fill in `ApiUrlBase`:
212
+
- US: `api.smith.langchain.com`
213
+
- EU: `eu.api.smith.langchain.com`
214
+
1. Fill in `AuthHost`:
215
+
- US: `auth.langchain.com`
216
+
- EU: `eu.auth.langchain.com`
217
+
1. Fill in `LangSmithUrl`: Same as `ApiUrlBase`
218
+
1. Under Application Visibility, keep the box unchecked.
219
+
1. Select Next.
220
+
1. Select `SAML 2.0`.
221
+
1. Fill in `Sign-On Options`:
222
+
-`Application username format`: `Email`
223
+
-`Update application username on`: `Create and update`
224
+
-`Allow users to securely see their password`: leave **unchecked**.
225
+
226
+
**Via Custom App Integration**
227
+
202
228
1. Log in to Okta as an administrator, and go to the `Okta Admin console`.
203
229
1. Under `Applications > Applications` click `Create App Integration`
204
230
1. Select `SAML 2.0`
205
231
1. Enter an `App name` (e.g. `LangSmith`) and optionally an `App logo`, then click `Next`
206
232
1. Enter the following information in the `Configure SAML` page:
207
233
1.`Single sign-on URL` a.k.a. `ACS URL`: <RegionalUrltype='auth'suffix='/auth/v1/sso/saml/acs'/>. Keep `Use this for Recipient URL and Destination URL` checked.
208
234
1.`Audience URI (SP Entity ID)`: <RegionalUrltype='auth'suffix='/auth/v1/sso/saml/metadata'/>
209
-
1.`Name ID format`: `EmailAddress`
235
+
1.`Name ID format`: **Persistent**
210
236
1.`Application username`: `email`
211
237
1. Leave the rest of the fields empty or set to their default.
System for Cross-domain Identity Management (SCIM) is an open standard that allows for the automation of user provisioning. Using SCIM, you can automatically provision and deprovision users in your LangSmith organization and workspaces, keeping user access synchronized with your organization's identity provider.
6
6
@@ -9,7 +9,7 @@ SCIM is available for organizations on the [Enterprise plan](https://www.langcha
9
9
10
10
SCIM is available on Helm chart versions 0.10.41 (application version 0.10.108) and later.
11
11
12
-
While in Beta, SCIM support is API-only (see instructions below).
12
+
SCIM support is API-only (see instructions below).
13
13
:::
14
14
15
15
## What is SCIM?
@@ -24,15 +24,7 @@ SCIM enables automatic user provisioning and deprovisioning between your identit
24
24
-**Consistent access control**: User attributes and group memberships are synchronized between systems
25
25
-**Scalable**: Efficiently manage large teams with many workspaces and custom roles
26
26
27
-
## Prerequisites
28
-
29
-
- Your organization must be on an Enterprise plan
30
-
- Your Identity Provider (IdP) must support SCIM 2.0
31
-
- Only [Organization Admins](../../concepts#organization-roles) can configure SCIM
32
-
- For cloud customers: [SAML SSO](./set_up_saml_sso.mdx) must be configured for your organization
33
-
- For self-hosted customers: [OAuth with Client Secret](../../../self_hosting/configuration/sso#with-secret) authentication mode must be enabled
34
-
35
-
## Capabilities
27
+
## Supported Features
36
28
37
29
SCIM enables the following capabilities:
38
30
@@ -42,7 +34,27 @@ SCIM enables the following capabilities:
42
34
-**Group-based access**: Sync membership from IdP user groups to LangSmith workspaces
43
35
-**Role assignment**: Select specific [Organization Roles](../../concepts#organization-roles) and [Workspace Roles](../../concepts#workspace-roles) for groups of users
44
36
45
-
## Role Precedence
37
+
SCIM is supported for these authentication methods:
38
+
39
+
- Cloud: [SAML SSO](./set_up_saml_sso.mdx)
40
+
- Self-hosted: [OAuth2.0 with Client Secret](../../../self_hosting/configuration/sso#with-secret)
41
+
42
+
## Requirements
43
+
44
+
### Prerequisites
45
+
46
+
- Your organization must be on an Enterprise plan.
47
+
- Your Identity Provider (IdP) must support SCIM 2.0.
48
+
- Only [Organization Admins](../../concepts#organization-roles) can configure SCIM.
49
+
- For cloud customers: [SAML SSO](./set_up_saml_sso.mdx) must be configurable for your organization.
50
+
- For self-hosted customers: [OAuth with Client Secret](../../../self_hosting/configuration/sso#with-secret) authentication mode must be enabled.
51
+
- For self-hosted customers, network traffic must be allowed from the identity provider to LangSmith:
52
+
- Microsoft Entra ID supports allowlisting IP ranges or an agent-based solution to provide connectivity.
- Okta supports allow-listing IPs or domains ([details](https://help.okta.com/en-us/content/topics/security/ip-address-allow-listing.htm))
55
+
or an agent-based solution ([details](https://help.okta.com/en-us/content/topics/provisioning/opp/opp-main.htm)) to provide connectivity.
56
+
57
+
### Role Precedence
46
58
47
59
When a user belongs to multiple groups for the same workspace, the following precedence applies:
48
60
@@ -55,11 +67,19 @@ When a group is deleted or a user is removed from a group, their access is updat
55
67
SCIM group membership will override manually-assigned roles or roles assigned via Just-in-Time (JIT) provisioning. We recommend disabling JIT provisioning to avoid conflicts.
56
68
:::
57
69
58
-
## Group Naming Convention
70
+
### Email Verification
71
+
72
+
In cloud only, creating a new user with SCIM triggers an email to the user.
73
+
They must verify their email address by clicking the link in this email.
74
+
The link expires in 24 hours, and can be resent if needed by removing and re-adding the user via SCIM.
75
+
76
+
## Attributes and Mapping
77
+
78
+
### Group Naming Convention
59
79
60
80
Group membership maps to LangSmith Workspace membership and workspace roles with a specific naming convention:
61
81
62
-
### Organization Admin Groups
82
+
####Organization Admin Groups
63
83
64
84
Format: `<optional_prefix>Organization Admin` or `<optional_prefix>Organization Admins`
1. Groups must follow the naming convention described in the [Group Naming Convention](#group-naming-convention) section.
132
+
If your company has a group naming policy, you should instead map from the `description` identity provider attribute and
133
+
set the description based on the [Group Naming Convention](#group-naming-convention) section.
134
+
135
+
## Configuration Steps
89
136
90
137
### Step 1: Configure SAML SSO (Cloud only)
91
138
92
-
If you're using LangSmith Cloud, ensure [SAML SSO](./set_up_saml_sso.mdx) is configured for your organization.
139
+
There are two scenarios for [SAML SSO](./set_up_saml_sso.mdx) configuration:
140
+
141
+
1. If SAML SSO is already configured for your organization, you should skip the steps to initially add the application ([Add application from Okta Integration Network](#add-application-okta-oin) or [Create a new Entra ID application integration](./set_up_saml_sso#create-application-entra-id)), as you already have an application configured and just need to enable provisioning.
142
+
1. If you are configuring SAML SSO for the first time alongside SCIM, first follow the instructions to [set up SAML SSO](./set_up_saml_sso.mdx), _then_ follow the instructions here to enable SCIM.
In self-hosted environments, the full URL below may look like `https://langsmith.internal.corp.dev/api/v1/platform/orgs/current/scim/tokens` (without subdomain, note the `/api/v1` path prefix) or `https://langsmith.internal.corp.dev/subdomain/api/v1/platform/orgs/current/scim/tokens` (with subdomain) - see the [ingress docs](../../../self_hosting/configuration/ingress.mdx) for more details.
177
+
:::
178
+
125
179
Generate a SCIM Bearer Token for your organization. This token will be used by your IdP to authenticate SCIM API requests.
126
180
Ensure env vars are set appropriately, for example:
127
181
@@ -143,9 +197,9 @@ These additional endpoints are present:
143
197
144
198
### Step 4: Configure your Identity Provider
145
199
146
-
Follow the IdP-specific instructions below to configure SCIM integration.
147
-
148
-
## Identity Provider (IdP) Setup
200
+
:::note
201
+
If you use Azure Entra ID (formerly Azure AD) or Okta, there are specific instructions below for identity provider setup ([Azure Entra ID](#azure-entra-id), [Okta](#okta)). The requirements and steps above are applicable for all identity providers.
202
+
:::
149
203
150
204
### Azure Entra ID
151
205
@@ -196,11 +250,13 @@ Set `Target Object Actions` to `Create` and `Update` only (start with `Delete` d
196
250
197
251
|**LangSmith App Attribute**|**Microsoft Entra ID Attribute**|**Matching Precedence**|
1. Groups must follow the naming convention described in the [Azure Group Naming Convention](#group-naming-convention) section
257
+
1. Groups must follow the naming convention described in the [Group Naming Convention](#group-naming-convention) section.
258
+
If your company has a group naming policy, you should instead map from the `description` Microsoft Entra ID Attribute and
259
+
set the description based on the [Group Naming Convention](#group-naming-convention) section.
204
260
205
261
**Step 4: Assign Users and Groups**
206
262
@@ -216,13 +272,63 @@ Set `Target Object Actions` to `Create` and `Update` only (start with `Delete` d
216
272
217
273
### Okta
218
274
219
-
Support for Okta is not yet released. If you are interested in using Okta with SCIM, please let us know at [[email protected]](mailto:[email protected]).
275
+
:::note
276
+
You must use the [Okta Lifecycle Management](https://www.okta.com/products/lifecycle-management/) product. This product tier is required to use SCIM on Okta.
277
+
:::
278
+
279
+
<spanid="add-application-okta-oin">
280
+
<b>Step 1: Add application from Okta Integration Network</b>
281
+
</span>
282
+
283
+
:::note
284
+
If you have already configured SSO login via SAML (cloud) or OAuth2.0 with OIDC (self-hosted), you may skip this step.
285
+
:::
286
+
287
+
See [SAML SSO setup](./set_up_saml_sso#okta) for cloud or [OAuth2.0 setup](../../../self_hosting/configuration/sso#identity-provider-setup-okta) for self-hosted.
288
+
289
+
**Step 2: Configure API Integration**
290
+
291
+
1. In the Provisioning tab, select Configure API integration.
- Self-hosted: `<langsmith_url>/scim/v2` (note there is no `/api/v1` path prefix) or if subdomain is configured `<langsmith_url>/subdomain/scim/v2`
298
+
299
+
4. For API Token, paste the SCIM token you [generated above](#step-3-generate-scim-bearer-token)
300
+
1. Keep `Import Groups` checked.
301
+
1. To verify the configuration, select Test API Credentials.
302
+
1. Select Save.
303
+
1. After saving the API integration details, new settings tabs appear on the left. Select `To App`.
304
+
1. Select Edit.
305
+
1. Select the Enable checkbox for Create Users, Update Users, and Deactivate Users.
306
+
1. Select Save.
307
+
1. Assign users and/or groups in the Assignments tab. Assigned users are created and managed in your LangSmith group.
308
+
309
+
**Step 3: Configure User Provisioning Settings**
310
+
311
+
1. Configure provisioning: under `Provisioning > To App > Provisioning to App`, click `Edit` then
312
+
check `Create Users`, `Update User Attributes`, and `Deactivate Users`
313
+
1. Under `<application_name> Attribute Mappings`, set the user attribute mappings as shown below, and delete the rest:
314
+
315
+

316
+
317
+
**Step 4: Push Groups**
318
+
319
+
:::note
320
+
Okta does not support group attributes besides the group name itself, so group name _must_ follow the naming convention described in the [Group Naming Convention](#group-naming-convention) section.
321
+
:::
322
+
323
+
Follow Okta's instructions [here](https://help.okta.com/en-us/content/topics/users-groups-profiles/usgp-enable-group-push.htm) to configure groups to push by name or by rule.
220
324
221
325
### Other Identity Providers
222
326
223
327
Other identity providers have not been tested but may function depending on their SCIM implementation.
@@ -247,4 +353,8 @@ The user will be deprovisioned from your LangSmith organization according to you
247
353
248
354
#### _Can I use custom group names?_
249
355
250
-
No, groups must follow the specific naming convention described in the [Group Naming Convention](#group-naming-convention) section to properly map to LangSmith roles and workspaces.
356
+
Yes. If your identity provider supports syncing alternate fields to the `displayName` group attribute, you may use an alternate attribute (like `description`) as the `displayName` in LangSmith and retain full customizability of the identity provider group name. Otherwise, groups must follow the specific naming convention described in the [Group Naming Convention](#group-naming-convention) section to properly map to LangSmith roles and workspaces.
357
+
358
+
#### _Why is my Okta integration not working?_
359
+
360
+
See Okta's troubleshooting guide here: https://help.okta.com/en-us/content/topics/users-groups-profiles/usgp-group-push-troubleshoot.htm.
0 commit comments