From 2f64885c3db72fea64a53310716ab9e48f1f84be Mon Sep 17 00:00:00 2001 From: waleed Date: Mon, 20 Apr 2026 10:53:16 -0700 Subject: [PATCH 01/16] improvement(sso): fix provider lookup, migrate UI to emcn, add enterprise SSO docs --- .../docs/content/docs/en/enterprise/index.mdx | 21 +- .../docs/content/docs/en/enterprise/meta.json | 5 + apps/docs/content/docs/en/enterprise/sso.mdx | 330 +++++++++++ apps/docs/content/docs/en/meta.json | 2 +- .../public/static/enterprise/sso-form.png | Bin 0 -> 213229 bytes apps/sim/app/api/auth/sso/providers/route.ts | 25 +- apps/sim/app/api/auth/sso/register/route.ts | 8 +- apps/sim/ee/sso/components/sso-settings.tsx | 535 ++++++++---------- apps/sim/ee/sso/hooks/sso.ts | 37 +- apps/sim/lib/auth/auth.ts | 11 +- 10 files changed, 633 insertions(+), 341 deletions(-) create mode 100644 apps/docs/content/docs/en/enterprise/meta.json create mode 100644 apps/docs/content/docs/en/enterprise/sso.mdx create mode 100644 apps/docs/public/static/enterprise/sso-form.png diff --git a/apps/docs/content/docs/en/enterprise/index.mdx b/apps/docs/content/docs/en/enterprise/index.mdx index 0cd2aa9dbae..4484e719051 100644 --- a/apps/docs/content/docs/en/enterprise/index.mdx +++ b/apps/docs/content/docs/en/enterprise/index.mdx @@ -34,26 +34,9 @@ Define permission groups to control what features and integrations team members ## Single Sign-On (SSO) -Enterprise authentication with SAML 2.0 and OIDC support for centralized identity management. +Enterprise authentication with SAML 2.0 and OIDC support. Works with Okta, Azure AD (Entra ID), Google Workspace, ADFS, and any standard OIDC or SAML 2.0 provider. -### Supported Providers - -- Okta -- Azure AD / Entra ID -- Google Workspace -- OneLogin -- Any SAML 2.0 or OIDC provider - -### Setup - -1. Navigate to **Settings** → **SSO** in your workspace -2. Choose your identity provider -3. Configure the connection using your IdP's metadata -4. Enable SSO for your organization - - - Once SSO is enabled, team members authenticate through your identity provider instead of email/password. - +See the [SSO setup guide](/docs/enterprise/sso) for step-by-step instructions and provider-specific configuration. --- diff --git a/apps/docs/content/docs/en/enterprise/meta.json b/apps/docs/content/docs/en/enterprise/meta.json new file mode 100644 index 00000000000..86316a8d2f3 --- /dev/null +++ b/apps/docs/content/docs/en/enterprise/meta.json @@ -0,0 +1,5 @@ +{ + "title": "Enterprise", + "pages": ["index", "sso"], + "defaultOpen": false +} diff --git a/apps/docs/content/docs/en/enterprise/sso.mdx b/apps/docs/content/docs/en/enterprise/sso.mdx new file mode 100644 index 00000000000..0682382b71d --- /dev/null +++ b/apps/docs/content/docs/en/enterprise/sso.mdx @@ -0,0 +1,330 @@ +--- +title: Single Sign-On (SSO) +description: Configure SAML 2.0 or OIDC-based single sign-on for your organization +--- + +import { Callout } from 'fumadocs-ui/components/callout' +import { Tab, Tabs } from 'fumadocs-ui/components/tabs' +import { FAQ } from '@/components/ui/faq' + +Single Sign-On lets your team sign in to Sim through your company's identity provider instead of managing separate passwords. Sim supports both OIDC and SAML 2.0. + +--- + +## Requirements + +**Sim Cloud:** Enterprise plan. You must be a workspace owner or admin. + +**Self-hosted:** Set `SSO_ENABLED=true` and `NEXT_PUBLIC_SSO_ENABLED=true` in your environment. No plan requirement. + +--- + +## Setup + +### 1. Open SSO settings + +Go to **Settings → Enterprise → Single Sign-On** in your workspace. + +### 2. Choose a protocol + +| Protocol | Use when | +|----------|----------| +| **OIDC** | Your IdP supports OpenID Connect — Okta, Azure AD (Entra ID), Auth0, Google Workspace | +| **SAML 2.0** | Your IdP is SAML-only — ADFS, Shibboleth, or older enterprise IdPs | + +### 3. Fill in the form + +**Fields required for both protocols:** + +| Field | What to enter | +|-------|--------------| +| **Provider ID** | A short slug identifying this connection, e.g. `okta` or `azure-ad`. Letters, numbers, and dashes only. | +| **Issuer URL** | The identity provider's issuer URL. Must be HTTPS. | +| **Domain** | Your organization's email domain, e.g. `company.com`. Users with this domain will be routed through SSO at sign-in. | + +**OIDC additional fields:** + +| Field | What to enter | +|-------|--------------| +| **Client ID** | The application client ID from your IdP. | +| **Client Secret** | The client secret from your IdP. | +| **Scopes** | Comma-separated OIDC scopes. Default: `openid,profile,email`. | + + + For OIDC, Sim automatically fetches endpoints (`authorization_endpoint`, `token_endpoint`, `userinfo_endpoint`, `jwks_uri`) from your issuer's `/.well-known/openid-configuration` discovery document. You only need to provide the issuer URL. + + +**SAML additional fields:** + +| Field | What to enter | +|-------|--------------| +| **Entry Point URL** | The IdP's SSO service URL where Sim sends authentication requests. | +| **Identity Provider Certificate** | The PEM-format X.509 certificate from your IdP for verifying assertions. | + +### 4. Copy the Callback URL + +The **Callback URL** shown in the form is the endpoint your identity provider must redirect users back to after authentication. Copy it and register it in your IdP before saving. + +``` +https://simstudio.ai/api/auth/sso/callback/{provider-id} +``` + +For self-hosted: +``` +https://your-instance.com/api/auth/sso/callback/{provider-id} +``` + +### 5. Save and test + +Click **Save**. To test, sign out and use the **Sign in with SSO** button on the login page. Enter an email address at your configured domain — Sim will redirect you to your identity provider. + +--- + +## Provider Guides + + + + + +### Okta (OIDC) + +**In Okta:** + +1. Go to **Applications → Create App Integration** +2. Select **OIDC - OpenID Connect**, then **Web Application** +3. Set the **Sign-in redirect URI** to your Sim callback URL: + ``` + https://simstudio.ai/api/auth/sso/callback/okta + ``` +4. Under **Assignments**, grant access to the relevant users or groups +5. Copy the **Client ID** and **Client Secret** from the app's General tab +6. Copy the **Okta domain** from your account (e.g. `dev-1234567.okta.com`) + +**In Sim:** + +| Field | Value | +|-------|-------| +| Provider Type | OIDC | +| Provider ID | `okta` | +| Issuer URL | `https://dev-1234567.okta.com/oauth2/default` | +| Domain | `company.com` | +| Client ID | From Okta app | +| Client Secret | From Okta app | + + + + + +### Azure AD / Entra ID (OIDC) + +**In Azure:** + +1. Go to **Azure Active Directory → App registrations → New registration** +2. Set the **Redirect URI** (Web) to your Sim callback URL: + ``` + https://simstudio.ai/api/auth/sso/callback/azure-ad + ``` +3. After registration, go to **Certificates & secrets → New client secret** and copy the value +4. Go to **Overview** and copy the **Application (client) ID** and **Directory (tenant) ID** + +**In Sim:** + +| Field | Value | +|-------|-------| +| Provider Type | OIDC | +| Provider ID | `azure-ad` | +| Issuer URL | `https://login.microsoftonline.com/{tenant-id}/v2.0` | +| Domain | `company.com` | +| Client ID | Application (client) ID | +| Client Secret | Secret value | + + + Replace `{tenant-id}` with your Directory (tenant) ID from Azure AD. Sim will auto-discover the token and JWKS endpoints from the issuer. + + + + + + +### Google Workspace (OIDC) + +**In Google Cloud Console:** + +1. Go to **APIs & Services → Credentials → Create Credentials → OAuth 2.0 Client ID** +2. Set the application type to **Web application** +3. Add your Sim callback URL to **Authorized redirect URIs**: + ``` + https://simstudio.ai/api/auth/sso/callback/google-workspace + ``` +4. Copy the **Client ID** and **Client Secret** + +**In Sim:** + +| Field | Value | +|-------|-------| +| Provider Type | OIDC | +| Provider ID | `google-workspace` | +| Issuer URL | `https://accounts.google.com` | +| Domain | `company.com` | +| Client ID | From Google Cloud Console | +| Client Secret | From Google Cloud Console | + + + To restrict sign-in to your Google Workspace domain only, set **Authorized domains** in the OAuth consent screen to your organization's domain. + + + + + + +### ADFS (SAML 2.0) + +**In ADFS:** + +1. Open **AD FS Management → Relying Party Trusts → Add Relying Party Trust** +2. Choose **Claims aware**, then **Enter data about the relying party manually** +3. Set the **Relying party identifier** (Entity ID) to your Sim instance URL, e.g.: + ``` + https://simstudio.ai + ``` + For self-hosted: use your instance's base URL (e.g. `https://sim.company.com`). This value goes in the **Issuer URL** field in Sim. +4. Add an endpoint: **SAML Assertion Consumer Service** with the URL: + ``` + https://simstudio.ai/api/auth/sso/callback/adfs + ``` + For self-hosted: `https://sim.company.com/api/auth/sso/callback/adfs` +5. Export the **Token-signing certificate** in PEM format from **Certificates** +6. Note the **ADFS Federation Service endpoint URL** (e.g. `https://adfs.company.com/adfs/ls`) + +**In Sim:** + +| Field | Value | +|-------|-------| +| Provider Type | SAML | +| Provider ID | `adfs` | +| Issuer URL | `https://simstudio.ai` | +| Domain | `company.com` | +| Entry Point URL | `https://adfs.company.com/adfs/ls` | +| Certificate | PEM certificate from ADFS | + + + + + +--- + +## How sign-in works after setup + +Once SSO is configured, users with your domain (`company.com`) can sign in through your identity provider: + +1. User goes to `simstudio.ai` and clicks **Sign in with SSO** +2. They enter their work email (e.g. `alice@company.com`) +3. Sim redirects them to your identity provider +4. After authenticating, they are returned to Sim and added to your organization automatically +5. They land in the workspace + +Users who sign in via SSO for the first time are automatically provisioned and added to your organization — no manual invite required. + + + Password-based login remains available. Forcing all organization members to use SSO exclusively is not yet supported. + + + + **Self-hosted:** Automatic organization provisioning requires `ORGANIZATIONS_ENABLED=true` in addition to `SSO_ENABLED=true`. Without it, SSO authentication still works — users get a valid session — but they are not automatically added to an organization. + + +--- + +## Self-hosted setup + +Self-hosted deployments use environment variables instead of the billing/plan check. + +### Environment variables + +```bash +# Required +SSO_ENABLED=true +NEXT_PUBLIC_SSO_ENABLED=true + +# Required if you want users auto-added to your organization on first SSO sign-in +ORGANIZATIONS_ENABLED=true +NEXT_PUBLIC_ORGANIZATIONS_ENABLED=true +``` + +You can register providers through the **Settings UI** (same as cloud) or by running the registration script directly against your database. + +### Script-based registration + +Use this when you need to register an SSO provider without going through the UI — for example, during initial deployment or CI/CD automation. + +```bash +# OIDC example (Okta) +SSO_ENABLED=true \ +SSO_PROVIDER_TYPE=oidc \ +SSO_PROVIDER_ID=okta \ +SSO_ISSUER=https://dev-1234567.okta.com/oauth2/default \ +SSO_DOMAIN=company.com \ +SSO_USER_EMAIL=admin@company.com \ +SSO_OIDC_CLIENT_ID=your-client-id \ +SSO_OIDC_CLIENT_SECRET=your-client-secret \ +bun run packages/db/scripts/register-sso-provider.ts +``` + +```bash +# SAML example (ADFS) +SSO_ENABLED=true \ +SSO_PROVIDER_TYPE=saml \ +SSO_PROVIDER_ID=adfs \ +SSO_ISSUER=https://your-instance.com \ +SSO_DOMAIN=company.com \ +SSO_USER_EMAIL=admin@company.com \ +SSO_SAML_ENTRY_POINT=https://adfs.company.com/adfs/ls \ +SSO_SAML_CERT="-----BEGIN CERTIFICATE----- +... +-----END CERTIFICATE-----" \ +bun run packages/db/scripts/register-sso-provider.ts +``` + +The script outputs the callback URL to configure in your IdP once it completes. + +To remove a provider: + +```bash +SSO_USER_EMAIL=admin@company.com \ +bun run packages/db/scripts/deregister-sso-provider.ts +``` + + diff --git a/apps/docs/content/docs/en/meta.json b/apps/docs/content/docs/en/meta.json index 24eb6eba869..b0446caab8f 100644 --- a/apps/docs/content/docs/en/meta.json +++ b/apps/docs/content/docs/en/meta.json @@ -25,7 +25,7 @@ "execution", "permissions", "self-hosting", - "./enterprise/index", + "enterprise", "./keyboard-shortcuts/index" ], "defaultOpen": false diff --git a/apps/docs/public/static/enterprise/sso-form.png b/apps/docs/public/static/enterprise/sso-form.png new file mode 100644 index 0000000000000000000000000000000000000000..78c54bd9f7ed77edc19aee4796efbe0f9e18f9a8 GIT binary patch literal 213229 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�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 TBCh%);B{bMkT2suPyX^xGe*^i literal 0 HcmV?d00001 diff --git a/apps/sim/app/api/auth/sso/providers/route.ts b/apps/sim/app/api/auth/sso/providers/route.ts index d4bcfa35db2..d8e953f61ed 100644 --- a/apps/sim/app/api/auth/sso/providers/route.ts +++ b/apps/sim/app/api/auth/sso/providers/route.ts @@ -1,17 +1,25 @@ import { db, ssoProvider } from '@sim/db' import { createLogger } from '@sim/logger' -import { eq } from 'drizzle-orm' -import { NextResponse } from 'next/server' +import { eq, or } from 'drizzle-orm' +import { type NextRequest, NextResponse } from 'next/server' import { getSession } from '@/lib/auth' const logger = createLogger('SSOProvidersRoute') -export async function GET() { +export async function GET(request: NextRequest) { try { const session = await getSession() + const { searchParams } = new URL(request.url) + const organizationId = searchParams.get('organizationId') let providers if (session?.user?.id) { + const userId = session.user.id + + const whereClause = organizationId + ? or(eq(ssoProvider.userId, userId), eq(ssoProvider.organizationId, organizationId)) + : eq(ssoProvider.userId, userId) + const results = await db .select({ id: ssoProvider.id, @@ -24,18 +32,11 @@ export async function GET() { organizationId: ssoProvider.organizationId, }) .from(ssoProvider) - .where(eq(ssoProvider.userId, session.user.id)) + .where(whereClause) providers = results.map((provider) => ({ ...provider, - providerType: - provider.oidcConfig && provider.samlConfig - ? 'oidc' - : provider.oidcConfig - ? 'oidc' - : provider.samlConfig - ? 'saml' - : ('oidc' as 'oidc' | 'saml'), + providerType: (provider.samlConfig ? 'saml' : 'oidc') as 'oidc' | 'saml', })) } else { const results = await db diff --git a/apps/sim/app/api/auth/sso/register/route.ts b/apps/sim/app/api/auth/sso/register/route.ts index 809a921655c..3dfe37ad574 100644 --- a/apps/sim/app/api/auth/sso/register/route.ts +++ b/apps/sim/app/api/auth/sso/register/route.ts @@ -9,6 +9,7 @@ import { validateUrlWithDNS, } from '@/lib/core/security/input-validation.server' import { REDACTED_MARKER } from '@/lib/core/security/redaction' +import { getBaseUrl } from '@/lib/core/utils/urls' const logger = createLogger('SSORegisterRoute') @@ -32,6 +33,7 @@ const ssoRegistrationSchema = z.discriminatedUnion('providerType', [ providerId: z.string().min(1, 'Provider ID is required'), issuer: z.string().url('Issuer must be a valid URL'), domain: z.string().min(1, 'Domain is required'), + orgId: z.string().optional(), mapping: mappingSchema, clientId: z.string().min(1, 'Client ID is required for OIDC'), clientSecret: z.string().min(1, 'Client Secret is required for OIDC'), @@ -57,6 +59,7 @@ const ssoRegistrationSchema = z.discriminatedUnion('providerType', [ providerId: z.string().min(1, 'Provider ID is required'), issuer: z.string().url('Issuer must be a valid URL'), domain: z.string().min(1, 'Domain is required'), + orgId: z.string().optional(), mapping: mappingSchema, entryPoint: z.string().url('Entry point must be a valid URL for SAML'), cert: z.string().min(1, 'Certificate is required for SAML'), @@ -107,7 +110,7 @@ export async function POST(request: NextRequest) { } const body = parseResult.data - const { providerId, issuer, domain, providerType, mapping } = body + const { providerId, issuer, domain, providerType, mapping, orgId } = body const headers: Record = {} request.headers.forEach((value, key) => { @@ -119,6 +122,7 @@ export async function POST(request: NextRequest) { issuer, domain, mapping, + ...(orgId ? { organizationId: orgId } : {}), } if (providerType === 'oidc') { @@ -324,7 +328,7 @@ export async function POST(request: NextRequest) { } = body const computedCallbackUrl = - callbackUrl || `${issuer.replace('/metadata', '')}/callback/${providerId}` + callbackUrl || `${getBaseUrl()}/api/auth/sso/callback/${providerId}` const escapeXml = (str: string) => str.replace(/[<>&"']/g, (c) => { diff --git a/apps/sim/ee/sso/components/sso-settings.tsx b/apps/sim/ee/sso/components/sso-settings.tsx index 7c1eec013ea..078b67f2961 100644 --- a/apps/sim/ee/sso/components/sso-settings.tsx +++ b/apps/sim/ee/sso/components/sso-settings.tsx @@ -3,7 +3,18 @@ import { useState } from 'react' import { createLogger } from '@sim/logger' import { Check, ChevronDown, Clipboard, Eye, EyeOff } from 'lucide-react' -import { Button, Combobox, Input, Skeleton, Switch, Textarea } from '@/components/emcn' +import { + Button, + Combobox, + Expandable, + ExpandableContent, + FormField, + Input, + Skeleton, + Switch, + Textarea, + toast, +} from '@/components/emcn' import { useSession } from '@/lib/auth/auth-client' import { getSubscriptionAccessState } from '@/lib/billing/client/utils' import { isBillingEnabled } from '@/lib/core/config/feature-flags' @@ -43,7 +54,6 @@ const DEFAULT_FORM_DATA = { audience: '', wantAssertionsSigned: true, idpMetadata: '', - showAdvanced: false, } const DEFAULT_ERRORS = { @@ -64,9 +74,13 @@ export function SSO() { const { data: session } = useSession() const { data: orgsData } = useOrganizations() const { data: subscriptionData } = useSubscriptionData() - const { data: providersData, isLoading: isLoadingProviders } = useSSOProviders() const activeOrganization = orgsData?.activeOrganization + + const { data: providersData, isLoading: isLoadingProviders } = useSSOProviders({ + organizationId: activeOrganization?.id, + }) + const providers = providersData?.providers || [] const existingProvider = providers[0] as SSOProvider | undefined @@ -84,19 +98,20 @@ export function SSO() { const configureSSOMutation = useConfigureSSO() - const [error, setError] = useState(null) const [showClientSecret, setShowClientSecret] = useState(false) const [copied, setCopied] = useState(false) const [isEditing, setIsEditing] = useState(false) + const [showAdvanced, setShowAdvanced] = useState(false) const [formData, setFormData] = useState(DEFAULT_FORM_DATA) + const [originalFormData, setOriginalFormData] = useState(DEFAULT_FORM_DATA) const [errors, setErrors] = useState>(DEFAULT_ERRORS) const [showErrors, setShowErrors] = useState(false) if (isBillingEnabled) { if (!activeOrganization) { return ( -

+
You must be part of an organization to configure Single Sign-On.
) @@ -104,7 +119,7 @@ export function SSO() { if (!hasEnterprisePlan) { return ( -
+
Single Sign-On is available on Enterprise plans only.
) @@ -112,7 +127,7 @@ export function SSO() { if (!canManageSSO) { return ( -
+
Only organization owners and admins can configure Single Sign-On settings.
) @@ -120,7 +135,7 @@ export function SSO() { } else { if (!isLoadingProviders && isSSOProviderOwner === false && providers.length > 0) { return ( -
+
Only the user who configured SSO can manage these settings.
) @@ -153,7 +168,7 @@ export function SSO() { if (!value || !value.trim()) return ['Domain is required.'] if (/^https?:\/\//i.test(value.trim())) out.push('Do not include protocol (https://).') if (!/^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(value.trim())) - out.push('Enter a valid domain like your-domain.identityprovider.com') + out.push('Enter a valid domain like company.com') return out } @@ -201,6 +216,11 @@ export function SSO() { const hasAnyErrors = (errs: Record) => Object.values(errs).some((l) => l.length > 0) + const hasChanges = () => + (Object.keys(formData) as (keyof typeof formData)[]).some( + (k) => formData[k] !== originalFormData[k] + ) + const isFormValid = () => { const requiredFields = ['providerId', 'issuerUrl', 'domain'] const hasRequiredFields = requiredFields.every((field) => { @@ -227,7 +247,6 @@ export function SSO() { const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() - setError(null) setShowErrors(true) const validation = validateAll(formData) @@ -274,27 +293,22 @@ export function SSO() { await configureSSOMutation.mutateAsync(requestBody) logger.info('SSO provider configured', { providerId: formData.providerId }) + toast.success(isEditing ? 'SSO provider updated' : 'SSO provider configured') setFormData(DEFAULT_FORM_DATA) setErrors(DEFAULT_ERRORS) setShowErrors(false) setIsEditing(false) - setError(null) + setShowAdvanced(false) } catch (err) { const message = err instanceof Error ? err.message : 'Unknown error occurred' - setError(message) + toast.error(message) logger.error('Failed to configure SSO provider', { error: err }) } } - const handleInputChange = (field: keyof typeof formData, value: string) => { + const handleInputChange = (field: keyof typeof formData, value: string | boolean) => { setFormData((prev) => { - let processedValue: any = value - - if (field === 'wantAssertionsSigned' || field === 'showAdvanced') { - processedValue = value === 'true' - } - - const next = { ...prev, [field]: processedValue } + const next = { ...prev, [field]: value } if (field === 'providerType') { setShowErrors(false) @@ -345,7 +359,7 @@ export function SSO() { idpMetadata = config.idpMetadata || '' } - setFormData({ + const snapshot = { providerType: existingProvider.providerType, providerId: existingProvider.providerId, issuerUrl: existingProvider.issuer, @@ -359,14 +373,15 @@ export function SSO() { audience, wantAssertionsSigned, idpMetadata, - showAdvanced: false, - }) + } + setFormData(snapshot) + setOriginalFormData(snapshot) setIsEditing(true) - setError(null) setShowErrors(false) + setShowAdvanced(false) } catch (err) { logger.error('Failed to parse provider config', { error: err }) - setError('Failed to load provider configuration') + toast.error('Failed to load provider configuration') } } @@ -379,65 +394,52 @@ export function SSO() { return (
- {/* Scrollable Content */}
- {/* Provider Info */} -
- Provider ID -

{existingProvider.providerId}

-
+ +

{existingProvider.providerId}

+
-
- - Provider Type - -

+ +

{existingProvider.providerType.toUpperCase()}

-
+ -
- Domain -

{existingProvider.domain}

-
+ +

{existingProvider.domain}

+
-
- Issuer URL -

+ +

{existingProvider.issuer}

-
+ - {/* Callback URL */} -
-
- - Callback URL - + +
+
- -

+

Configure this in your identity provider

-
+
- {/* Footer */}
- {showErrors && errors.clientSecret.length > 0 && ( -

- {errors.clientSecret.join(' ')} -

- )} -
+ -
- Scopes + {/* Scopes */} + 0 ? errors.scopes.join(' ') : undefined} + > handleInputChange('scopes', e.target.value)} className={cn( 'h-9', - showErrors && - errors.scopes.length > 0 && - 'border-[var(--text-error)] focus:border-[var(--text-error)]' + showErrors && errors.scopes.length > 0 && 'border-[var(--text-error)]' )} /> - {showErrors && errors.scopes.length > 0 && ( -

- {errors.scopes.join(' ')} -

- )} -

+

Comma-separated list of OIDC scopes to request

-
+ ) : ( <> -
- - Entry Point URL - + {/* Entry Point URL */} + 0 + ? errors.entryPoint.join(' ') + : undefined + } + > handleInputChange('entryPoint', e.target.value)} className={cn( 'h-9', - showErrors && - errors.entryPoint.length > 0 && - 'border-[var(--text-error)] focus:border-[var(--text-error)]' + showErrors && errors.entryPoint.length > 0 && 'border-[var(--text-error)]' )} /> - {showErrors && errors.entryPoint.length > 0 && ( -

- {errors.entryPoint.join(' ')} -

- )} -
+ -
- - Identity Provider Certificate - + {/* Identity Provider Certificate */} + 0 ? errors.cert.join(' ') : undefined} + >