Configura el inicio de sesión único (SSO) y el aprovisionamiento mediante SCIM (Sistema para la Gestión de Identidades entre Dominios) para tu organización usando Google Workspace, Microsoft Azure AD, Okta u otros proveedores de identidad SAML.
Esta función solo está disponible para usuarios de Teams y Enterprise.
SSO de Google
Microsoft Entra ID
Okta SSO (inicio de sesión único)
Azure SCIM (Sistema para la Gestión de Identidades entre Dominios)
Okta SCIM (Sistema para la Gestión de Identidades entre Dominios)
API de SCIM (Sistema para la Gestión de Identidades entre Dominios)
Duo
PingID
Windsurf ahora admite iniciar sesión con SSO (inicio de sesión único) mediante SAML. Si tu organización usa Microsoft Entra, Okta, Google Workspace u otro proveedor de identidad que admita SAML, podrás usar SSO con Windsurf.
Windsurf solo admite SSO iniciado por el SP; el SSO iniciado por el IdP NO es compatible actualmente.
Configurar la aplicación del IdP
En la consola de administración de Google (admin.google.com), haz clic en Apps -> Web and mobile apps en el menú de la izquierda.
Haz clic en Add app y luego en Add custom SAML app.
Completa App name con Windsurf y haz clic en Next.La siguiente pantalla (Google Identity Provider details) en la consola de Google contiene datos que deberás copiar en la configuración de SSO de Windsurf en https://windsurf.com/team/settings.
Copia SSO URL desde la consola de Google a la configuración de Windsurf en SSO URL
Copia Entity ID desde la consola de Google a la configuración de Windsurf en IdP Entity ID
Copia Certificate desde la consola de Google a la configuración de Windsurf en X509 Certificate
Haz clic en Continue en la consola de Google
La pantalla siguiente en la consola de Google requiere que copies datos desde la página de configuración de Codeium
Copia Callback URL desde la página de configuración de Codeium a la consola de Google en ACS URL
Copia SP Entity ID desde la página de configuración de Codeium a la consola de Google en SP Entity ID
Cambia el formato de Name ID a EMAIL
Haz clic en Continue en la consola de Google
La pantalla siguiente en la consola de Google requiere cierta configuración
Haz clic en Add Mapping, selecciona First name y establece App attributes en firstName
Haz clic en Add Mapping, selecciona Last name y establece App attributes en lastName
Haz clic en Finish
En la página de configuración de Codeium, haz clic en Enable Login with SAML y luego en Save. Asegúrate de hacer clic en Test Login para verificar que el inicio de sesión funcione como se espera. A partir de ahora, todos los usuarios tendrán el inicio de sesión con SSO aplicado.
Windsurf Enterprise ahora admite el inicio de sesión con SSO (inicio de sesión único) mediante SAML. Si tu organización usa Microsoft Entra ID (antes Azure AD), podrás usar SSO con Windsurf.
Windsurf solo admite SSO iniciado por el SP; actualmente NO se admite SSO iniciado por el IdP.
Parte 1: Crear la aplicación Enterprise en Microsoft Entra ID
Todos los pasos de esta sección se realizan en el centro de administración de Microsoft Entra ID.
En Microsoft Entra ID, haz clic en Add y luego en Enterprise Application.
Haz clic en Create your own application.
Nombra tu aplicación Windsurf, selecciona Integrate any other application you don’t find in the gallery y luego haz clic en Create.
Parte 2: Configurar SAML y atributos de usuario en Microsoft Entra ID
Todos los pasos de esta sección se realizan en el centro de administración de Microsoft Entra ID.
En tu nueva aplicación Windsurf, haz clic en Set up single sign on y luego en SAML.
Haz clic en Edit en Basic SAML Configuration.
Mantén abierta esta pestaña de Entra ID y abre una nueva pestaña para ir a la configuración de SSO de Windsurf Teams en https://windsurf.com/team/settings.
En el formulario de configuración SAML de Microsoft Entra ID:
Identifier (Entity ID): Copia el valor de SP Entity ID desde la página de configuración de SSO de Windsurf
Reply URL (Assertion Consumer Service URL): Copia el valor de Callback URL desde la página de configuración de SSO de Windsurf
Haz clic en Save en la parte superior
Configura los atributos de usuario para mostrar correctamente el nombre. En Microsoft Entra ID, en Attributes & Claims, haz clic en Edit.
Crea 2 nuevos claims haciendo clic en Add new claim para cada uno:
Primer claim: Name = firstName, Source attribute = user.givenname
Segundo claim: Name = lastName, Source attribute = user.surname
Parte 3: Configurar los ajustes de SSO en el portal de Windsurf
Pick your SSO ID: Elige un identificador único para el portal de inicio de sesión de tu equipo (esto no se puede cambiar después)
IdP Entity ID: Copia el valor de Microsoft Entra ID en Set up Windsurf → Microsoft Entra Identifier
SSO URL: Copia el valor de Login URL desde Microsoft Entra ID
X509 Certificate: Descarga el SAML certificate (Base64) desde Microsoft Entra ID, abre el archivo y pega aquí el contenido de texto
En el portal de Windsurf, haz clic en Enable Login with SAML y luego en Save.
Prueba la configuración: Haz clic en Test Login para verificar que la configuración de SSO funciona como se espera.
Importante: No cierres sesión ni cierres la página de configuración de Windsurf hasta que hayas probado el inicio de sesión correctamente. Si la prueba falla, puede que necesites solucionar la configuración antes de continuar.
Windsurf Enterprise ahora admite el inicio de sesión con Single Sign-On (SSO) vía SAML. Si tu organización usa Microsoft Entra, Okta, Google Workspaces u otro proveedor de identidad que admita SAML, podrás usar SSO con Windsurf.
Windsurf solo admite SSO iniciado por SP; actualmente NO se admite SSO iniciado por IdP.
Configurar la aplicación del IdP
Haz clic en Applications en la barra lateral izquierda y luego en Create App Integration
Selecciona SAML 2.0 como método de inicio de sesión
Establece el nombre de la app como Windsurf (o cualquier otro nombre) y haz clic en NextConfigura los ajustes de SAML como:
Configura las declaraciones de atributos como se indica a continuación y luego haz clic en Next.
En la sección de comentarios, selecciona “This is an internal app that we have created” y haz clic en Finish.
Registrar Okta como proveedor SAML
Deberías ser redirigido a la pestaña Sign on de tu aplicación SAML personalizada. Ahora toma la información de esa página y complétala en la configuración de SSO de Windsurf.
Copia el texto después de ‘Issuer’ en la página de la aplicación de Okta y pégalo en IdP Entity ID
Copia el texto después de ‘Sign on URL’ en la página de la aplicación de Okta y pégalo en SSO URL
Descarga el Signing Certificate y pégalo en X509 certificate
Marca Enable Login with SAML y luego haz clic en Save
Prueba el inicio de sesión con el botón Test Login. Deberías ver un mensaje de éxito:
En este punto, todo debería estar configurado y ya puedes agregar usuarios a la nueva aplicación de Okta para Windsurf.Comparte la URL personalizada del Login Portal de tu organización con tus usuarios y pídeles que inicien sesión mediante ese enlace.
Los usuarios que inicien sesión en Windsurf mediante SSO serán aprobados automáticamente en el equipo.
Advertencias
Ten en cuenta que Windsurf actualmente no admite flujos de inicio de sesión iniciados por IdP.Tampoco admitimos OIDC por el momento.
Solución de problemas
Login with SAML config failed: Firebase: Error (auth/operation-not-allowed)
Esto apunta a un ID de SSO no válido o a que tu SSO URL es incorrecta; asegúrate de que sea alfanumérica y no tenga espacios adicionales ni caracteres no válidos. Vuelve a repasar los pasos de la guía y verifica que uses los valores correctos.
Esto indica que tu IdP Entity ID es inválido; asegúrate de copiarlo correctamente desde el portal de Okta, sin caracteres adicionales ni espacios antes o después de la cadena.
Failed to verify the signature in samlresponse
Esto indica un valor incorrecto en tu X509 certificate; asegúrate de copiar la clave correcta y de que esté formateada como:-----BEGIN CERTIFICATE-----
valor
-----END CERTIFICATE-----
Windsurf admite la sincronización SCIM para usuarios y grupos con Microsoft Entra ID / Azure AD. No es necesario configurar SSO (inicio de sesión único) para usar la sincronización SCIM, pero es muy recomendable.Necesitarás:
Acceso de administrador a Microsoft Entra ID / Azure AD
Acceso de administrador a Windsurf
Una aplicación de Windsurf existente en Entra ID (normalmente de tu aplicación de SSO existente)
Paso 1: Ve a la aplicación de Windsurf existente
Ve a Microsoft Entra ID en Azure, haz clic en Enterprise applications en la barra lateral izquierda y luego haz clic en la aplicación de Windsurf existente en la lista.
Paso 2: Configura el aprovisionamiento SCIM
Haz clic en Get started en la sección Provision User Accounts en el centro (paso 3) y luego vuelve a hacer clic en Get started.
En la página de configuración de Provisioning, selecciona las siguientes opciones.Provisioning Mode: AutomaticAdmin Credentials > Tenant URL: https://server.codeium.com/scim/v2Deja abierta la página de aprovisionamiento de Azure, ahora ve al portal web de Windsurf y haz clic en el ícono de perfil en la barra de navegación en la parte superior de la página. En Team Settings, selecciona Clave de servicio y haz clic en Add Service Key. Ingresa cualquier nombre para la clave (por ejemplo, “Azure Provisioning Key”) y haz clic en Create Service Key. Copia la clave generada, vuelve a la página de Azure y pégala en Secret Token.
(Lo que deberías ver después de crear la clave en Windsurf)En la página Provisioning, haz clic en Test Connection; con esto deberías verificar la conexión SCIM.Ahora, arriba del formulario de Provisioning, haz clic en Save.
Paso 3: Configura el aprovisionamiento SCIM
Después de hacer clic en Save, debería aparecer una nueva opción Mappings en la página de Provisioning. Expande Mappings y haz clic en Provision Microsoft Entra ID Users
En attribute Mappings, elimina todos los campos bajo displayName, dejando solo los campos userName, active y displayName.
Para active, haz clic en Edit. En Expression, modifica el campo a
NOT([IsSoftDeleted])
Luego, haz clic en OK.Tus atributos de usuario deberían verse así:
En la página Attribute Mapping, haz clic en Save en la parte superior y regresa a la página Provisioning.Ahora, en esa misma página, bajo Mappings, haz clic en Provision Microsoft Entra ID Groups. Luego, elimina únicamente externalId con la opción delete y vuelve a hacer clic en Save en la parte superior. Regresa a la página Provisioning.
En la página Provisioning, en la parte inferior, también debería haber un interruptor llamado Provisioning Status. Ponlo en On para habilitar la sincronización SCIM (Sistema para la Gestión de Identidades entre Dominios). A partir de ahora, cada 40 minutos los usuarios y grupos de la aplicación Entra ID se sincronizarán con Windsurf.
Haz clic en Save para finalizar; ya has habilitado la sincronización de usuarios y grupos mediante SCIM. Solo los usuarios y grupos asignados a la aplicación se sincronizarán con Windsurf. Ten en cuenta que eliminar usuarios solo les deshabilita el acceso a Windsurf (y evita que ocupen una plaza) en lugar de borrarlos, debido al diseño de SCIM en Azure.
Windsurf admite la sincronización SCIM para usuarios y grupos con Okta. No es necesario configurar SSO (inicio de sesión único) para usar la sincronización SCIM, pero es muy recomendable.Necesitarás:
Acceso de administrador a Okta
Acceso de administrador a Windsurf
Una aplicación de Windsurf existente en Okta (normalmente a partir de tu aplicación de SSO existente)
Paso 1: Navega a la aplicación de Windsurf existente
Ve a Okta, haz clic en Applications, Applications en la barra lateral izquierda y luego haz clic en la aplicación de Windsurf existente en la lista de aplicaciones.
Paso 2: Habilita el aprovisionamiento SCIM
En la pestaña General, App Settings, haz clic en Edit en la esquina superior derecha. Luego marca la casilla “Enable SCIM Provisioning” y haz clic en Save. Debería haber aparecido una nueva pestaña de aprovisionamiento en la parte superior.Ahora ve a Provisioning, haz clic en Edit e introduce la siguiente información en los campos:SCIM connector base URL: https://server.codeium.com/scim/v2Unique identifier field for users: emailSupported provisioning actions: Push New Users, Push Profile Updates, Push GroupsAuthentication Mode: HTTP HeaderPara HTTP Header - Authorization, puedes generar el token desde
Haz clic en Add Service Key y asígnale un nombre a tu clave
Copia la clave de API, vuelve a Okta y pégala en HTTP Header - Authorization
Haz clic en Save después de completar Provisioning Integration.
Paso 3: Configura el aprovisionamiento
En la pestaña Provisioning, a la izquierda deberían aparecer dos nuevas secciones. Haz clic en To App y en Edit Provisioning to App. Marca las casillas para Create Users, Update User Attributes y Deactivate Users, y haz clic en Save.Después de este paso, todos los usuarios asignados al grupo se sincronizarán con Windsurf.
Paso 4: Configura el aprovisionamiento de grupos (opcional)
Para sincronizar grupos con Windsurf, tendrás que especificar qué grupos enviar. En la aplicación, haz clic en la pestaña Push Groups en la parte superior. Ahora haz clic en + Push Groups -> Find Groups by name. Filtra el grupo que deseas agregar, asegúrate de que Push group memberships immediately esté marcado y luego haz clic en Save. El grupo se creará y los miembros del grupo se sincronizarán con Windsurf. Luego se podrán usar los grupos para filtrar la analítica de grupos en la página de Analytics.
Esta guía muestra cómo crear y mantener grupos en Windsurf con la API de SCIM (Sistema para la Gestión de Identidades entre Dominios).Existen razones por las que se podría querer aprovisionar grupos manualmente en lugar de hacerlo con el Proveedor de Identidad (Azure/Okta). Las empresas pueden querer que los grupos se aprovisionen desde una fuente interna diferente (sitio web de RRHH, herramienta de gestión de código fuente, etc.) a la que Windsurf no tiene acceso, o las empresas pueden necesitar un control más granular sobre los grupos del que proporciona su Proveedor de Identidad. Por lo tanto, los grupos se pueden crear mediante una API a través de solicitudes HTTP. A continuación se proporcionan ejemplos de solicitudes HTTP usando CURL.Hay 5 APIs principales aquí: Crear Grupo, Agregar miembros al grupo, Reemplazar miembros del grupo, Eliminar Grupo y Listar Usuarios de un Grupo.
Crear Grupo
curl -k -X POST https://server.codeium.com/scim/v2/Groups -d '{"displayName": "<nombre del grupo>","schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"]}' -H "Authorization: Bearer <clave secreta de API>" -H "Content-Type: application/scim+json"
curl -X DELETE https://server.codeium.com/scim/v2/Groups/<nombre del grupo> -H "Authorization: Bearer <clave secreta de API>" -H "Content-Type: application/scim+json"
Listar Grupo
curl -X GET -H "Authorization: Bearer <clave secreta de API>" "https://server.codeium.com/scim/v2/Groups"
Listar Usuarios en un Grupo
curl -X GET -H "Authorization: Bearer <clave secreta de API>" "https://server.codeium.com/scim/v2/Groups/<group_id>"
Primero deberás crear al menos el grupo, y luego reemplazarlo para crear un grupo con miembros. También necesitarás codificar en URL los nombres de grupo si el nombre contiene caracteres especiales como espacios, por lo que un nombre de grupo como ‘Engineering Group’ deberá ser ‘Engineering%20Group’ en la URL.Ten en cuenta que los usuarios deben crearse en Windsurf (a través de SCIM o creando la cuenta manualmente) antes de poder agregarlos a un grupo.
APIs de Usuario
También hay APIs para usuarios. Las siguientes son algunas de las APIs de SCIM (Sistema para la Gestión de Identidades entre Dominios) más comunes que admite Windsurf.Deshabilitar un usuario (Para habilitar, cambiar false por true):
curl -X PATCH \ https://server.codeium.com/scim/v2/Users/<clave de API del usuario> \ -H 'Content-Type: application/scim+json' \ -H 'Authorization: Bearer <clave secreta de API>' \ -d '{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ { "op": "replace", "path": "active", "value": false } ] }'
Ve a https://windsurf.com/team/settings. En Configuración de clave de servicio, haz clic en Configurar, luego en Agregar clave de servicio. Ingresa cualquier nombre de clave (como ‘Clave de aprovisionamiento de Azure’) y haz clic en Crear clave de servicio. Copia la clave generada y guárdala; ahora puedes usar la clave para autorizar las API mencionadas anteriormente.
Requisitos previos
Esta guía asume que tienes Duo configurado y actuando como tu IdP organizacional, o que tienes un IdP externo configurado.Necesitarás acceso de administrador tanto a las cuentas de Duo como de Windsurf.
Configurar Duo para Windsurf
Ve a Applications y agrega un proveedor de servicios Generic SAML.
Ve a SSO en Team Settings.
Al habilitar SAML por primera vez, se te pedirá que configures tu SSO ID. No podrás cambiarlo más adelante.Se recomienda usar el nombre de tu organización o equipo, solo con caracteres alfanuméricos.
Copia el valor de Entity ID del portal de Duo y pégalo en el campo IdP Entity ID en el portal de Windsurf.
Copia el valor de Single Sign-On URL del portal de Duo y pégalo en el campo SSO URL en el portal de Windsurf.
Copia el valor del certificado del portal de Duo y pégalo en el campo X509 Certificate en el portal de Windsurf.
Copia el valor de SP Identity ID del portal de Windsurf y pégalo en el campo Entity ID en el portal de Duo.
Copia el Callback URL (Assertion Consumer Service URL) del portal de Windsurf y pégalo en el campo Assertion Consumer Service (ACS) URL en el portal de Duo.
En el portal de Duo, configura las declaraciones de atributos de la siguiente manera:
Habilita el inicio de sesión SAML en el portal de Windsurf para poder probarlo.
NOTA: NO CIERRES LA SESIÓN NI LA VENTANA EN ESTE PUNTO.Si recibes un error o hay un tiempo de espera, revisa y corrige tu configuración; de lo contrario, tendrás que deshabilitar la configuración de SAML en el portal de Windsurf.Si cierras sesión o la ventana sin confirmar una prueba exitosa, podrías quedar bloqueado.
Una vez que la prueba se haya completado correctamente, puedes cerrar sesión. Ahora puedes usar el inicio de sesión con SSO al ir a la página de tu equipo/organización con el SSO ID que configuraste en el paso 3.
Esta guía asume que tienes PingID configurado y funcionando como tu IdP organizacional, o que tienes un IdP externo configurado.Necesitarás acceso de administrador a las cuentas de PingID y Windsurf.
Configurar PingID para Windsurf
Ve a Applications y agrega Windsurf como una SAML Application.
Ve a SSO en Team Settings.
Al habilitar SAML por primera vez, se te pedirá configurar tu SSO ID. No podrás cambiarlo más adelante.
Se recomienda establecerlo como el nombre de tu organización o equipo usando solo caracteres alfanuméricos.
En PingID: elige ingresar la configuración manualmente y completa los campos con los siguientes valores:
ACS URLs: es el Callback URL (Assertion Consumer Service URL) del portal de Windsurf.
Entity ID: es el SP Entity ID del portal de Windsurf.
Copia el Issuer ID de PingID en el valor IdP Entity ID del portal de Windsurf.
Copia el valor Single Signon Service de PingID en el valor SSO URL del portal de Windsurf.
Descarga el Signing Certificate de PingID como X509 PEM (.crt), abre el archivo y copia su contenido en el valor X509 Certificate del portal de Windsurf.
Nota: asegúrate de incluir completas las líneas de inicio y fin con 5 guiones (-) y que no se copien otros caracteres.
En los mapeos de atributos, asegúrate de mapear:
saml_subject - Email Address
firstName - Given Name
lastName - Family Name
Agrega o edita cualquier otra política y acceso según lo requiera tu configuración/organización.
Habilita el inicio de sesión SAML en el portal de Windsurf para poder probarlo.
NOTA: NO CIERRES SESIÓN NI LA VENTANA EN ESTE PUNTO.Si obtienes un error o se agota el tiempo de espera, revisa y corrige tu configuración; de lo contrario, tendrás que deshabilitar tus SAML Settings en el portal de Windsurf.Si cierras sesión o la ventana sin confirmar una prueba exitosa, podrías quedar bloqueado.
Una vez que tu prueba se haya completado correctamente, puedes cerrar sesión. Ahora puedes usar el inicio de sesión con SSO al navegar a la página de tu equipo/organización con el SSO ID que configuraste en el paso 3.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Windsurf Docs","colors":{"primary":"#34E8BB","light":"#34E8BB","dark":"#34E8BB"},"logo":{"light":"https://mintcdn.com/codeium/Hr_wKmLaXZaiQOb6/assets/windsurf-black-logo.svg?fit=max\u0026auto=format\u0026n=Hr_wKmLaXZaiQOb6\u0026q=85\u0026s=9d8592a768328271378364064a81840f","dark":"https://mintcdn.com/codeium/Wq_VJcrav3XIkIsv/assets/windsurf-white-logo.svg?fit=max\u0026auto=format\u0026n=Wq_VJcrav3XIkIsv\u0026q=85\u0026s=cf2529c7ca0b084c690089bc03b55830","href":"https://windsurf.com"},"favicon":{"light":"https://mintcdn.com/codeium/d8O4q6w3H2CjrirL/assets/favicon.png?fit=max\u0026auto=format\u0026n=d8O4q6w3H2CjrirL\u0026q=85\u0026s=4d5b8948a5f906d0cbc35a86c11be09c","dark":"https://mintcdn.com/codeium/d8O4q6w3H2CjrirL/assets/favicon.png?fit=max\u0026auto=format\u0026n=d8O4q6w3H2CjrirL\u0026q=85\u0026s=4d5b8948a5f906d0cbc35a86c11be09c"},"navbar":{"links":[],"primary":{"type":"button","label":"Download","href":"https://windsurf.com/download"}},"footer":{"socials":{"twitter":"https://x.com/windsurf","discord":"https://discord.com/invite/3XFf78nAx5"}},"seo":{"metatags":{"og:image":"https://exafunction.github.io/public/hero/thumbnail_docs.png","twitter:image":"https://exafunction.github.io/public/hero/thumbnail_docs.png","twitter:site":"@windsurf","og:description":"Docs for Windsurf (formerly Codeium): your modern coding superpowers.","og:site_name":"Windsurf Docs","twitter:description":"Docs for Windsurf (formerly Codeium): your modern coding superpowers."},"indexing":"navigable"},"integrations":{"ga4":{"measurementId":"G-8183L9GV0M"}},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":"windsurf/getting-started"},{"language":"fr","href":"fr/windsurf/getting-started"},{"language":"es","href":"es/windsurf/getting-started"},{"language":"de","href":"de/windsurf/getting-started"},{"language":"pt-BR","href":"pt-BR/windsurf/getting-started"},{"language":"zh","href":"zh/windsurf/getting-started"},{"language":"ja","href":"ja/windsurf/getting-started"},{"language":"ro","href":"ro/windsurf/getting-started"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"codeium","hasAudioNarration":false,"actualSubdomain":"codeium","customDomains":["docs.windsurf.com"],"gitSource":{"type":"github","owner":"exafunction","repo":"codeium-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae921b9a7789b0d4de9976b:success","clientVersion":"0.0.4138","searchFilterCounts":[{"language":"en","tag":"Windsurf","count":57},{"language":"de","tag":"Windsurf","count":49},{"language":"es","tag":"Windsurf","count":49},{"language":"fr","tag":"Windsurf","count":49},{"language":"ja","tag":"Windsurf","count":49},{"language":"pt-BR","tag":"Windsurf","count":49},{"language":"ro","tag":"Windsurf","count":49},{"language":"zh","tag":"Windsurf","count":49},{"language":"en","tag":"Windsurf Plugins","count":44},{"language":"de","tag":"Windsurf Plugins","count":44},{"language":"es","tag":"Windsurf Plugins","count":44},{"language":"fr","tag":"Windsurf Plugins","count":44},{"language":"ja","tag":"Windsurf Plugins","count":44},{"language":"pt-BR","tag":"Windsurf Plugins","count":44},{"language":"ro","tag":"Windsurf Plugins","count":44},{"language":"zh","tag":"Windsurf Plugins","count":44},{"language":"en","tag":"Accounts","count":32},{"language":"de","tag":"Konten","count":30},{"language":"es","tag":"Cuentas","count":30},{"language":"fr","tag":"Comptes","count":30},{"language":"ja","tag":"アカウント","count":30},{"language":"pt-BR","tag":"Contas","count":30},{"language":"ro","tag":"Conturi","count":30},{"language":"zh","tag":"账户","count":30},{"language":"en","tag":"Teams \u0026 Enterprise","count":27},{"language":"de","tag":"Teams \u0026 Enterprise","count":26},{"language":"es","tag":"Teams y Enterprise","count":26},{"language":"fr","tag":"Teams et Enterprise","count":26},{"language":"pt-BR","tag":"Teams e Enterprise","count":26},{"language":"en","tag":"API Reference","count":18},{"language":"de","tag":"API-Referenz","count":18},{"language":"es","tag":"Referencia de la API","count":18},{"language":"fr","tag":"Référence de l’API","count":18},{"language":"ja","tag":"API リファレンス","count":18},{"language":"pt-BR","tag":"Referência da API","count":18},{"language":"zh","tag":"API 参考","count":18},{"language":"en","tag":"Editor","count":16},{"language":"de","tag":"Editor","count":14},{"language":"es","tag":"Editor","count":14},{"language":"fr","tag":"Éditeur","count":14},{"language":"ja","tag":"エディタ","count":14},{"language":"ja","tag":"Teams と Enterprise","count":14},{"language":"pt-BR","tag":"Editor","count":14},{"language":"ro","tag":"Editor","count":14},{"language":"ro","tag":"Teams și Enterprise","count":14},{"language":"zh","tag":"编辑器","count":14},{"language":"zh","tag":"Teams 与 Enterprise","count":14},{"language":"en","tag":"Troubleshooting","count":13},{"language":"de","tag":"Fehlerbehebung","count":13},{"language":"fr","tag":"Dépannage","count":13},{"language":"ja","tag":"トラブルシューティング","count":13},{"language":"ro","tag":"Depanare","count":13},{"language":"zh","tag":"故障排查","count":13},{"language":"en","tag":"Cascade","count":12},{"language":"de","tag":"Cascade","count":12},{"language":"es","tag":"Cascade","count":12},{"language":"fr","tag":"Cascade","count":12},{"language":"ja","tag":"Teams \u0026 Enterprise","count":12},{"language":"ja","tag":"Cascade","count":12},{"language":"pt-BR","tag":"Cascade","count":12},{"language":"ro","tag":"Teams \u0026 Enterprise","count":12},{"language":"ro","tag":"Cascade","count":12},{"language":"zh","tag":"Teams 和 Enterprise","count":12},{"language":"zh","tag":"Cascade","count":12},{"language":"en","tag":"Analytics API","count":10},{"language":"de","tag":"Analytics-API","count":10},{"language":"es","tag":"Analytics API","count":10},{"language":"fr","tag":"Analytics API","count":10},{"language":"ja","tag":"Analytics API(アナリティクス API)","count":10},{"language":"pt-BR","tag":"Analytics API","count":10},{"language":"ro","tag":"Analytics API","count":10},{"language":"zh","tag":"Analytics API","count":10},{"language":"ro","tag":"Referință API","count":9},{"language":"de","tag":"Erste Schritte","count":8},{"language":"es","tag":"Primeros pasos","count":8},{"language":"pt-BR","tag":"Primeiros passos","count":8},{"language":"es","tag":"Solución de problemas","count":7},{"language":"pt-BR","tag":"Solução de problemas","count":7},{"language":"en","tag":"Features","count":6},{"language":"fr","tag":"Fonctionnalités","count":6}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"es/plugins/accounts/sso-scim","slug":"/es/plugins/accounts/sso-scim","pageMetadata":{"title":"Configurar SSO y SCIM","sidebarTitle":"SSO y SCIM","description":"Configura el inicio de sesión único (SSO) y el aprovisionamiento mediante SCIM (Sistema para la Gestión de Identidades entre Dominios) para tu organización usando Google Workspace, Microsoft Azure AD, Okta u otros proveedores de identidad SAML.","keywords":["SSO","SCIM","inicio de sesión único","Okta","Azure AD","Google SSO","SAML","proveedor de identidad","autenticación","aprovisionamiento","enterprise","teams"],"href":"/es/plugins/accounts/sso-scim"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Configura el inicio de sesión único (SSO) y el aprovisionamiento mediante SCIM (Sistema para la Gestión de Identidades entre Dominios) para tu organización usando Google Workspace, Microsoft Azure AD, Okta u otros proveedores de identidad SAML.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Note,OptimizedImage,Tab,Tabs}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Esta función solo está disponible para usuarios de Teams y Enterprise.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`SSO de Google`,id:`sso-de-google`,\"data-child-heading-ids\":`[\"configurar-la-aplicaci%C3%B3n-del-idp\"]`,children:[_jsx(_components.p,{children:`Windsurf ahora admite iniciar sesión con SSO (inicio de sesión único) mediante SAML. Si tu organización usa Microsoft Entra, Okta, Google Workspace u otro proveedor de identidad que admita SAML, podrás usar SSO con Windsurf.`}),_jsx(Note,{children:`Windsurf solo admite SSO iniciado por el SP; el SSO iniciado por el IdP NO es compatible actualmente.`}),_jsx(Heading,{level:`3`,id:`configurar-la-aplicación-del-idp`,children:`Configurar la aplicación del IdP`}),_jsxs(_components.p,{children:[`En la consola de administración de Google (admin.google.com), haz clic en `,_jsx(_components.strong,{children:`Apps -> Web and mobile apps`}),` en el menú de la izquierda.`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=9d300c86c609da6ee3fb630e91f4de3e`,\"data-og-width\":`530`,width:`530`,\"data-og-height\":`788`,height:`788`,\"data-path\":`assets/auth/sso-google.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=9403af117b9c97981fe559adb9b978fc 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=058d140139f82caca5fee61a7d1f68cf 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=b94d0aaf6b28f8646827af8918d07df8 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f3898fed99df69da663658fd214d8676 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=7a78f68f99b617431f0df9f765a8bec0 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=19da5d516023353f4cc46dba47ce5b25 2500w`})}),_jsxs(_components.p,{children:[`Haz clic en `,_jsx(_components.strong,{children:`Add app`}),` y luego en `,_jsx(_components.strong,{children:`Add custom SAML app`}),`.`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google2.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=44375b535f269f130aea8c5bd6e736be`,\"data-og-width\":`514`,width:`514`,\"data-og-height\":`534`,height:`534`,\"data-path\":`assets/auth/sso-google2.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google2.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=15b8ea405f2270379d74bfc0f4f2d59b 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google2.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=4a7a6ea30e5b1656dd8e92612494d632 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google2.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=db37dd58c7c32527476d114151bb7b66 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google2.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=baa8aaa599b97b9c59f45eb0796febb4 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google2.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=5c1ae0fe3ac82b2965a2eea3601af438 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google2.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f67c6c78e1ff1bd171532584e4aa7c2f 2500w`})}),_jsxs(_components.p,{children:[`Completa `,_jsx(_components.strong,{children:`App name`}),` con `,_jsx(_components.code,{children:`Windsurf`}),` y haz clic en `,_jsx(_components.strong,{children:`Next`}),`.`]}),_jsxs(_components.p,{children:[`La siguiente pantalla (Google Identity Provider details) en la consola de Google contiene datos que deberás copiar en la configuración de SSO de Windsurf en `,_jsx(_components.a,{href:`https://windsurf.com/team/settings`,children:`https://windsurf.com/team/settings`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Copia `,_jsx(_components.strong,{children:`SSO URL`}),` desde la consola de Google a la configuración de Windsurf en `,_jsx(_components.strong,{children:`SSO URL`})]}),`\n`,_jsxs(_components.li,{children:[`Copia `,_jsx(_components.strong,{children:`Entity ID`}),` desde la consola de Google a la configuración de Windsurf en `,_jsx(_components.strong,{children:`IdP Entity ID`})]}),`\n`,_jsxs(_components.li,{children:[`Copia `,_jsx(_components.strong,{children:`Certificate`}),` desde la consola de Google a la configuración de Windsurf en `,_jsx(_components.strong,{children:`X509 Certificate`})]}),`\n`,_jsxs(_components.li,{children:[`Haz clic en `,_jsx(_components.strong,{children:`Continue`}),` en la consola de Google`]}),`\n`]}),_jsx(_components.p,{children:`La pantalla siguiente en la consola de Google requiere que copies datos desde la página de configuración de Codeium`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Copia `,_jsx(_components.strong,{children:`Callback URL`}),` desde la página de configuración de Codeium a la consola de Google en `,_jsx(_components.strong,{children:`ACS URL`})]}),`\n`,_jsxs(_components.li,{children:[`Copia `,_jsx(_components.strong,{children:`SP Entity ID`}),` desde la página de configuración de Codeium a la consola de Google en `,_jsx(_components.strong,{children:`SP Entity ID`})]}),`\n`,_jsxs(_components.li,{children:[`Cambia el formato de `,_jsx(_components.strong,{children:`Name ID`}),` a `,_jsx(_components.strong,{children:`EMAIL`})]}),`\n`,_jsxs(_components.li,{children:[`Haz clic en `,_jsx(_components.strong,{children:`Continue`}),` en la consola de Google`]}),`\n`]}),_jsx(_components.p,{children:`La pantalla siguiente en la consola de Google requiere cierta configuración`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Haz clic en `,_jsx(_components.strong,{children:`Add Mapping`}),`, selecciona `,_jsx(_components.strong,{children:`First name`}),` y establece `,_jsx(_components.strong,{children:`App attributes`}),` en `,_jsx(_components.strong,{children:`firstName`})]}),`\n`,_jsxs(_components.li,{children:[`Haz clic en `,_jsx(_components.strong,{children:`Add Mapping`}),`, selecciona `,_jsx(_components.strong,{children:`Last name`}),` y establece `,_jsx(_components.strong,{children:`App attributes`}),` en `,_jsx(_components.strong,{children:`lastName`})]}),`\n`,_jsxs(_components.li,{children:[`Haz clic en `,_jsx(_components.strong,{children:`Finish`})]}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google3.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c29f0ebf5a05dd5fae3a1127c4111d29`,\"data-og-width\":`2078`,width:`2078`,\"data-og-height\":`862`,height:`862`,\"data-path\":`assets/auth/sso-google3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google3.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=585b8d21d5b284ee28d9bd911c0d4295 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google3.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=1a0dd06112db14e2acabe0750583dd71 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google3.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c82b1e1f6cf07b54049170ee5ac36eda 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=fdac0e1950fd2e618710c99cee1c7656 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=45f58fd68db2619d5e87b3995c7103bf 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-google3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=d6ae5462ed098ae48de0aa6b5801cacf 2500w`})}),_jsxs(_components.p,{children:[`En la página de configuración de Codeium, haz clic en `,_jsx(_components.strong,{children:`Enable Login with SAML`}),` y luego en `,_jsx(_components.strong,{children:`Save`}),`. Asegúrate de hacer clic en `,_jsx(_components.strong,{children:`Test Login`}),` para verificar que el inicio de sesión funcione como se espera. A partir de ahora, todos los usuarios tendrán el inicio de sesión con SSO aplicado.`]})]}),_jsxs(Tab,{title:`Microsoft Entra ID`,id:`microsoft-entra-id`,\"data-child-heading-ids\":`[\"parte-1%3A-crear-la-aplicaci%C3%B3n-enterprise-en-microsoft-entra-id\",\"parte-2%3A-configurar-saml-y-atributos-de-usuario-en-microsoft-entra-id\",\"parte-3%3A-configurar-los-ajustes-de-sso-en-el-portal-de-windsurf\"]`,children:[_jsx(_components.p,{children:`Windsurf Enterprise ahora admite el inicio de sesión con SSO (inicio de sesión único) mediante SAML. Si tu organización usa Microsoft Entra ID (antes Azure AD), podrás usar SSO con Windsurf.`}),_jsx(Note,{children:`Windsurf solo admite SSO iniciado por el SP; actualmente NO se admite SSO iniciado por el IdP.`}),_jsx(Heading,{level:`2`,id:`parte-1-crear-la-aplicación-enterprise-en-microsoft-entra-id`,children:`Parte 1: Crear la aplicación Enterprise en Microsoft Entra ID`}),_jsxs(Note,{children:[`Todos los pasos de esta sección se realizan en el `,_jsx(_components.strong,{children:`centro de administración de Microsoft Entra ID`}),`.`]}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`En Microsoft Entra ID, haz clic en `,_jsx(_components.strong,{children:`Add`}),` y luego en `,_jsx(_components.strong,{children:`Enterprise Application`}),`.`]}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=70c1ef27e1870d1f95176d12cd7c9c47`,\"data-og-width\":`854`,width:`854`,\"data-og-height\":`384`,height:`384`,\"data-path\":`assets/auth/sso-azure.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=1b88d7269fba84433a203348fd8a3920 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=2f71d980824f058c3a36d499f4f488d6 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=9bef7d83fd3afa0d42b25b81ab20d8e3 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=b9c7eb219d3ff471f38175b0be2cdac8 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=6802d42ea85adeb86d22f32e59ef8a5f 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=0eac589296d06ffcf16e6d2bdc771d0c 2500w`})}),_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsxs(_components.li,{children:[`Haz clic en `,_jsx(_components.strong,{children:`Create your own application`}),`.`]}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure2.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=d8d3d2b159172edef9033487d1167b52`,\"data-og-width\":`680`,width:`680`,\"data-og-height\":`202`,height:`202`,\"data-path\":`assets/auth/sso-azure2.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure2.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=66949d79e560dcf2c75bcafdcfb1b54a 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure2.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=6ad3c318b6e47fa95b3e8677d01846ce 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure2.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=febe960a9ff782cebaf247868fd22bee 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure2.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f1c804a5b3dd2310840c95327f46241c 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure2.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=7c4186eb8abb76e222579aae95f5b000 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure2.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=1274eed53f279fbe64b0d52294708672 2500w`})}),_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsxs(_components.li,{children:[`Nombra tu aplicación `,_jsx(_components.strong,{children:`Windsurf`}),`, selecciona `,_jsx(_components.em,{children:`Integrate any other application you don’t find in the gallery`}),` y luego haz clic en `,_jsx(_components.strong,{children:`Create`}),`.`]}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure3.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=38dd3186171705ca16387dfff4a5b24b`,\"data-og-width\":`968`,width:`968`,\"data-og-height\":`342`,height:`342`,\"data-path\":`assets/auth/sso-azure3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure3.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=6c9dc6a0601145171999431fb61e0c4d 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure3.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=87b686e30cea98fa1075ceffc0fa40f1 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure3.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=b03c9c18b557b0f3d113d86fa8c30577 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=43bd3dc28697ed33fe0342dd456d2d3d 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=20d19e9d664e7c835253b775229a969f 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-azure3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=abebde3954de441e86f120269ac6b092 2500w`})}),_jsx(Heading,{level:`2`,id:`parte-2-configurar-saml-y-atributos-de-usuario-en-microsoft-entra-id`,children:`Parte 2: Configurar SAML y atributos de usuario en Microsoft Entra ID`}),_jsxs(Note,{children:[`Todos los pasos de esta sección se realizan en el `,_jsx(_components.strong,{children:`centro de administración de Microsoft Entra ID`}),`.`]}),_jsxs(_components.ol,{start:`4`,children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`En tu nueva aplicación Windsurf, haz clic en `,_jsx(_components.strong,{children:`Set up single sign on`}),` y luego en `,_jsx(_components.strong,{children:`SAML`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Haz clic en `,_jsx(_components.strong,{children:`Edit`}),` en `,_jsx(_components.strong,{children:`Basic SAML Configuration`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Mantén abierta esta pestaña de Entra ID`}),` y abre una nueva pestaña para ir a la `,_jsx(_components.strong,{children:`configuración de SSO de Windsurf Teams`}),` en `,_jsx(_components.a,{href:`https://windsurf.com/team/settings`,children:`https://windsurf.com/team/settings`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`En el formulario de configuración SAML de `,_jsx(_components.strong,{children:`Microsoft Entra ID`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Identifier (Entity ID)`}),`: Copia el valor de `,_jsx(_components.strong,{children:`SP Entity ID`}),` desde la `,_jsx(_components.strong,{children:`página de configuración de SSO de Windsurf`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Reply URL (Assertion Consumer Service URL)`}),`: Copia el valor de `,_jsx(_components.strong,{children:`Callback URL`}),` desde la `,_jsx(_components.strong,{children:`página de configuración de SSO de Windsurf`})]}),`\n`,_jsxs(_components.li,{children:[`Haz clic en `,_jsx(_components.strong,{children:`Save`}),` en la parte superior`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Configura los atributos de usuario para mostrar correctamente el nombre. En `,_jsx(_components.strong,{children:`Microsoft Entra ID`}),`, en `,_jsx(_components.strong,{children:`Attributes \u0026 Claims`}),`, haz clic en `,_jsx(_components.strong,{children:`Edit`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Crea 2 nuevos claims haciendo clic en `,_jsx(_components.strong,{children:`Add new claim`}),` para cada uno:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Primer claim`}),`: Name = `,_jsx(_components.code,{children:`firstName`}),`, Source attribute = `,_jsx(_components.code,{children:`user.givenname`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Segundo claim`}),`: Name = `,_jsx(_components.code,{children:`lastName`}),`, Source attribute = `,_jsx(_components.code,{children:`user.surname`})]}),`\n`]}),`\n`]}),`\n`]}),_jsx(Heading,{level:`2`,id:`parte-3-configurar-los-ajustes-de-sso-en-el-portal-de-windsurf`,children:`Parte 3: Configurar los ajustes de SSO en el portal de Windsurf`}),_jsxs(Note,{children:[`Completa la configuración en el `,_jsx(_components.strong,{children:`portal de Windsurf`}),` (`,_jsx(_components.a,{href:`https://windsurf.com/team/settings`,children:`https://windsurf.com/team/settings`}),`).`]}),_jsxs(_components.ol,{start:`10`,children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`En la `,_jsx(_components.strong,{children:`página de configuración de SSO de Windsurf`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pick your SSO ID`}),`: Elige un identificador único para el portal de inicio de sesión de tu equipo (esto no se puede cambiar después)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`IdP Entity ID`}),`: Copia el valor de `,_jsx(_components.strong,{children:`Microsoft Entra ID`}),` en `,_jsx(_components.strong,{children:`Set up Windsurf`}),` → `,_jsx(_components.strong,{children:`Microsoft Entra Identifier`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`SSO URL`}),`: Copia el valor de `,_jsx(_components.strong,{children:`Login URL`}),` desde `,_jsx(_components.strong,{children:`Microsoft Entra ID`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`X509 Certificate`}),`: Descarga el `,_jsx(_components.strong,{children:`SAML certificate (Base64)`}),` desde `,_jsx(_components.strong,{children:`Microsoft Entra ID`}),`, abre el archivo y pega aquí el contenido de texto`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`En el `,_jsx(_components.strong,{children:`portal de Windsurf`}),`, haz clic en `,_jsx(_components.strong,{children:`Enable Login with SAML`}),` y luego en `,_jsx(_components.strong,{children:`Save`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Prueba la configuración`}),`: Haz clic en `,_jsx(_components.strong,{children:`Test Login`}),` para verificar que la configuración de SSO funciona como se espera.`]}),`\n`]}),`\n`]}),_jsxs(Note,{children:[_jsx(_components.strong,{children:`Importante`}),`: No cierres sesión ni cierres la página de configuración de Windsurf hasta que hayas probado el inicio de sesión correctamente. Si la prueba falla, puede que necesites solucionar la configuración antes de continuar.`]})]}),_jsxs(Tab,{title:`Okta SSO (inicio de sesión único)`,id:`okta-sso-inicio-de-sesi%C3%B3n-%C3%BAnico`,\"data-child-heading-ids\":`[\"configurar-la-aplicaci%C3%B3n-del-idp-2\",\"registrar-okta-como-proveedor-saml\",\"advertencias\",\"soluci%C3%B3n-de-problemas\",\"login-with-saml-config-failed%3A-firebase%3A-error-auth%2Foperation-not-allowed\",\"login-with-saml-config-failed%3A-firebase%3A-saml-response-%3Cissuer%3E-mismatch-auth%2Finvalid-credential\",\"failed-to-verify-the-signature-in-samlresponse\"]`,children:[_jsx(_components.p,{children:`Windsurf Enterprise ahora admite el inicio de sesión con Single Sign-On (SSO) vía SAML. Si tu organización usa Microsoft Entra, Okta, Google Workspaces u otro proveedor de identidad que admita SAML, podrás usar SSO con Windsurf.`}),_jsx(Note,{children:`Windsurf solo admite SSO iniciado por SP; actualmente NO se admite SSO iniciado por IdP.`}),_jsx(Heading,{level:`3`,id:`configurar-la-aplicación-del-idp-2`,children:`Configurar la aplicación del IdP`}),_jsx(_components.p,{children:`Haz clic en Applications en la barra lateral izquierda y luego en Create App Integration`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta1.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=e3f879d2fa7faeba003aa04e2c5d3a4a`,\"data-og-width\":`1248`,width:`1248`,\"data-og-height\":`962`,height:`962`,\"data-path\":`assets/auth/sso-okta1.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta1.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=07c6dc86816c5d6cf956401bee450128 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta1.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=2f2d86ae21cdef97580a0824ca01ffc8 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta1.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=ec432c4e43c969491df691687b1c8719 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta1.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=4f42e54a6f8de42f3fa17349df08394e 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta1.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=9f1cb10571d1c2ea02bf30638a762e9c 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta1.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=5c76f872b9163ec64637213aa646ba30 2500w`})}),_jsx(_components.p,{children:`Selecciona SAML 2.0 como método de inicio de sesión`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta2.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=df39e8a15a879d8f2798a4284087c567`,\"data-og-width\":`1600`,width:`1600`,\"data-og-height\":`1023`,height:`1023`,\"data-path\":`assets/auth/sso-okta2.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta2.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=26a63721d0018efa7b8a4800e6f408bb 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta2.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c052bfa279c58dc361223b5582a62c80 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta2.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=00ed32012a519da9011059476f423aa6 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta2.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=eb3839e1a82fa9bc1467a456a38a993b 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta2.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c678d8128c2aa8d5b42eb1ff185d80a8 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta2.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=9586e95f5e7e3cc3f167548bdcec2b48 2500w`})}),_jsx(_components.p,{children:`Establece el nombre de la app como Windsurf (o cualquier otro nombre) y haz clic en Next`}),_jsx(_components.p,{children:`Configura los ajustes de SAML como:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Single sign-on URL en `,_jsx(_components.a,{href:`https://auth.windsurf.com/\u0026#95;\u0026#95;/auth/handler`,children:`https://auth.windsurf.com/\u0026#95;\u0026#95;/auth/handler`})]}),`\n`,_jsxs(_components.li,{children:[`Audience URI (SP Entity ID) en `,_jsx(_components.a,{href:`http://www.codeium.com`,children:`www.codeium.com`})]}),`\n`,_jsx(_components.li,{children:`NameID format en EmailAddress`}),`\n`,_jsx(_components.li,{children:`Application username en Email`}),`\n`]}),_jsxs(_components.p,{children:[`Configura las declaraciones de atributos como se indica a continuación y luego haz clic en `,_jsx(_components.strong,{children:`Next`}),`.`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta3.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=0903972c21dd13147a1adfe8791f1679`,\"data-og-width\":`1398`,width:`1398`,\"data-og-height\":`602`,height:`602`,\"data-path\":`assets/auth/sso-okta3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta3.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f247cb5627519ba2052a1c66bcabac11 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta3.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=8b0e97b79dbe969605c026e1d42918bf 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta3.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=2c9e0db1830545f4605ec52128d0c13f 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f21b1c853cd6e3fb6234eaba4936714a 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=e207e6d97821d5b568bcb3175aaa877c 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=5b9415f606224a480a8a21fd39d3c6b7 2500w`})}),_jsxs(_components.p,{children:[`En la sección de comentarios, selecciona “This is an internal app that we have created” y haz clic en `,_jsx(_components.strong,{children:`Finish`}),`.`]}),_jsx(Heading,{level:`3`,id:`registrar-okta-como-proveedor-saml`,children:`Registrar Okta como proveedor SAML`}),_jsx(_components.p,{children:`Deberías ser redirigido a la pestaña Sign on de tu aplicación SAML personalizada. Ahora toma la información de esa página y complétala en la configuración de SSO de Windsurf.`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Abre `,_jsx(_components.a,{href:`https://windsurf.com/team/settings`,children:`https://windsurf.com/team/settings`}),` y haz clic en Configure SAML`]}),`\n`,_jsx(_components.li,{children:`Copia el texto después de ‘Issuer’ en la página de la aplicación de Okta y pégalo en IdP Entity ID`}),`\n`,_jsx(_components.li,{children:`Copia el texto después de ‘Sign on URL’ en la página de la aplicación de Okta y pégalo en SSO URL`}),`\n`,_jsx(_components.li,{children:`Descarga el Signing Certificate y pégalo en X509 certificate`}),`\n`,_jsx(_components.li,{children:`Marca Enable Login with SAML y luego haz clic en Save`}),`\n`,_jsx(_components.li,{children:`Prueba el inicio de sesión con el botón Test Login. Deberías ver un mensaje de éxito:`}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta4.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=574e091c869162bc41dc0aa36cd209fa`,\"data-og-width\":`1046`,width:`1046`,\"data-og-height\":`270`,height:`270`,\"data-path\":`assets/auth/sso-okta4.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta4.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c0de67fc05d02d94917d0eb38a93bfc7 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta4.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=8a4532d29bde6a981fcfa56b16d2089c 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta4.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=b166bddfbf60fd9be17010aedbc5f300 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta4.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=4cc97e1ce5cbce8fe4b68f5736943608 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta4.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=10278811dec7a4ace3e27dafafe4dfdf 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta4.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=85583cef85521726dc3daa5307b6d733 2500w`})}),_jsx(_components.p,{children:`En este punto, todo debería estar configurado y ya puedes agregar usuarios a la nueva aplicación de Okta para Windsurf.`}),_jsx(_components.p,{children:`Comparte la URL personalizada del Login Portal de tu organización con tus usuarios y pídeles que inicien sesión mediante ese enlace.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta5.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f3ccced59b0cbc7d0f0b1b6b39f1ee1c`,\"data-og-width\":`988`,width:`988`,\"data-og-height\":`312`,height:`312`,\"data-path\":`assets/auth/sso-okta5.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta5.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=02f37508edd5db6db866fd78e4a7acb9 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta5.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c12ca954c3031664fbcd2ca960b5383b 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta5.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=75b02544b99c1e0a578234b57a07ea34 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta5.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=cb11ec40d15a57198f780ae701029f44 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta5.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=e51d3d2475655aef87f71b8b6105fb55 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta5.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=46ba7597ae1b616f37354006d6c5f907 2500w`})}),_jsx(_components.p,{children:`Los usuarios que inicien sesión en Windsurf mediante SSO serán aprobados automáticamente en el equipo.`}),_jsx(Heading,{level:`3`,id:`advertencias`,children:`Advertencias`}),_jsx(_components.p,{children:`Ten en cuenta que Windsurf actualmente no admite flujos de inicio de sesión iniciados por IdP.`}),_jsx(_components.p,{children:`Tampoco admitimos OIDC por el momento.`}),_jsx(Heading,{level:`1`,id:`solución-de-problemas`,children:`Solución de problemas`}),_jsx(Heading,{level:`3`,id:`login-with-saml-config-failed-firebase-error-auth/operation-not-allowed`,children:`Login with SAML config failed: Firebase: Error (auth/operation-not-allowed)`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta6.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f65534799dfd8f941a68dc9fc72236d4`,\"data-og-width\":`617`,width:`617`,\"data-og-height\":`92`,height:`92`,\"data-path\":`assets/auth/sso-okta6.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta6.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=4f6a8118ceb9a6511557fb3d5a89cfd8 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta6.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=0cc4bcb6da5527e085f1e95e7565b2f6 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta6.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f1b542a1a5d5f18a6f07ce1fef0099f8 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta6.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=5b8cdc47c2f5c742e4bef33ba4eb459a 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta6.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=087c32afb9c9f9850d596b218be3f923 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta6.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=02c760fbfa8d931d9781b596ede9d08d 2500w`})}),_jsx(_components.p,{children:`Esto apunta a un ID de SSO no válido o a que tu SSO URL es incorrecta; asegúrate de que sea alfanumérica y no tenga espacios adicionales ni caracteres no válidos. Vuelve a repasar los pasos de la guía y verifica que uses los valores correctos.`}),_jsx(Heading,{level:`3`,id:`login-with-saml-config-failed-firebase-saml-response-\u003cissuer>-mismatch-auth/invalid-credential`,children:`Login with SAML config failed: Firebase: SAML Response \u003cIssuer> mismatch. (auth/invalid-credential)`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta7.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=446c8ad9510b7dcc8e744c7b80862c29`,\"data-og-width\":`752`,width:`752`,\"data-og-height\":`117`,height:`117`,\"data-path\":`assets/auth/sso-okta7.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta7.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=efd56e3400b53ceb05c2a6f3f16dca44 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta7.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f41a12504545c5f78998cb6f152564c9 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta7.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=21967311e74ec09546b31c6f49dc2dd8 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta7.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=2d07267015603fb0e6d4ccd0ba3c1e81 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta7.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=619c0eaf530646e7b6dd294d5cc2712a 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/sso-okta7.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=a6217bfd37b259f63112cf22c3bb098b 2500w`})}),_jsx(_components.p,{children:`Esto indica que tu IdP Entity ID es inválido; asegúrate de copiarlo correctamente desde el portal de Okta, sin caracteres adicionales ni espacios antes o después de la cadena.`}),_jsx(Heading,{level:`3`,id:`failed-to-verify-the-signature-in-samlresponse`,children:`Failed to verify the signature in samlresponse`}),_jsx(_components.p,{children:`Esto indica un valor incorrecto en tu X509 certificate; asegúrate de copiar la clave correcta y de que esté formateada como:`}),_jsx(_components.p,{children:`-----BEGIN CERTIFICATE-----\nvalor\n-----END CERTIFICATE-----`}),_jsx(CodeBlock,{numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`-----BEGIN CERTIFICATE-----`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`value`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`------END CERTIFICATE------`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),_jsxs(Tab,{title:`Azure SCIM (Sistema para la Gestión de Identidades entre Dominios)`,id:`azure-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios`,\"data-child-heading-ids\":`[\"paso-1%3A-ve-a-la-aplicaci%C3%B3n-de-windsurf-existente\",\"paso-2%3A-configura-el-aprovisionamiento-scim\",\"paso-3%3A-configura-el-aprovisionamiento-scim\"]`,children:[_jsx(_components.p,{children:`Windsurf admite la sincronización SCIM para usuarios y grupos con Microsoft Entra ID / Azure AD. No es necesario configurar SSO (inicio de sesión único) para usar la sincronización SCIM, pero es muy recomendable.`}),_jsx(_components.p,{children:`Necesitarás:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Acceso de administrador a Microsoft Entra ID / Azure AD`}),`\n`,_jsx(_components.li,{children:`Acceso de administrador a Windsurf`}),`\n`,_jsx(_components.li,{children:`Una aplicación de Windsurf existente en Entra ID (normalmente de tu aplicación de SSO existente)`}),`\n`]}),_jsx(Heading,{level:`2`,id:`paso-1-ve-a-la-aplicación-de-windsurf-existente`,children:`Paso 1: Ve a la aplicación de Windsurf existente`}),_jsx(_components.p,{children:`Ve a Microsoft Entra ID en Azure, haz clic en Enterprise applications en la barra lateral izquierda y luego haz clic en la aplicación de Windsurf existente en la lista.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c2425d24cadc8997c694a4b8a950169a`,\"data-og-width\":`1258`,width:`1258`,\"data-og-height\":`664`,height:`664`,\"data-path\":`assets/auth/scim-azure.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=d2a0a5702a29ce1264d133bb5d3545c1 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f91fd83f53b34bab00d17c64358ac511 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=4fc4661fa56013064005d8d923a13547 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=196d0489a6a5fdf4200ab92e7f5835d5 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=fb03af9c8d156c0f5c2331ab5289d588 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=58bcf8651ea7dc34d4f7e561b7c6ab34 2500w`})}),_jsx(Heading,{level:`2`,id:`paso-2-configura-el-aprovisionamiento-scim`,children:`Paso 2: Configura el aprovisionamiento SCIM`}),_jsx(_components.p,{children:`Haz clic en Get started en la sección Provision User Accounts en el centro (paso 3) y luego vuelve a hacer clic en Get started.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/s3SYO8XdSvmrABvq/assets/auth/scim-azure2.png?fit=max\u0026auto=format\u0026n=s3SYO8XdSvmrABvq\u0026q=85\u0026s=1e9c8417da7568dc587941955f6d0ace`,\"data-og-width\":`2582`,width:`2582`,\"data-og-height\":`1858`,height:`1858`,\"data-path\":`assets/auth/scim-azure2.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/s3SYO8XdSvmrABvq/assets/auth/scim-azure2.png?w=280\u0026fit=max\u0026auto=format\u0026n=s3SYO8XdSvmrABvq\u0026q=85\u0026s=ce2a379d150e9b6383eeb48e52c96a01 280w, https://mintcdn.com/codeium/s3SYO8XdSvmrABvq/assets/auth/scim-azure2.png?w=560\u0026fit=max\u0026auto=format\u0026n=s3SYO8XdSvmrABvq\u0026q=85\u0026s=4f51c287262043282173de0e1efc538c 560w, https://mintcdn.com/codeium/s3SYO8XdSvmrABvq/assets/auth/scim-azure2.png?w=840\u0026fit=max\u0026auto=format\u0026n=s3SYO8XdSvmrABvq\u0026q=85\u0026s=21c65050cb093e453197eecbd348d773 840w, https://mintcdn.com/codeium/s3SYO8XdSvmrABvq/assets/auth/scim-azure2.png?w=1100\u0026fit=max\u0026auto=format\u0026n=s3SYO8XdSvmrABvq\u0026q=85\u0026s=074fcdd9f2ef2e03ad23580185dd48fe 1100w, https://mintcdn.com/codeium/s3SYO8XdSvmrABvq/assets/auth/scim-azure2.png?w=1650\u0026fit=max\u0026auto=format\u0026n=s3SYO8XdSvmrABvq\u0026q=85\u0026s=324c2d04d90956f34ee3c9a8c11ef548 1650w, https://mintcdn.com/codeium/s3SYO8XdSvmrABvq/assets/auth/scim-azure2.png?w=2500\u0026fit=max\u0026auto=format\u0026n=s3SYO8XdSvmrABvq\u0026q=85\u0026s=cd3257cf044253173943f57c3b89a5b6 2500w`})}),_jsx(_components.p,{children:`En la página de configuración de Provisioning, selecciona las siguientes opciones.`}),_jsx(_components.p,{children:`Provisioning Mode: Automatic`}),_jsxs(_components.p,{children:[`Admin Credentials > Tenant URL: `,_jsx(_components.a,{href:`https://server.codeium.com/scim/v2`,children:`https://server.codeium.com/scim/v2`})]}),_jsx(_components.p,{children:`Deja abierta la página de aprovisionamiento de Azure, ahora ve al portal web de Windsurf y haz clic en el ícono de perfil en la barra de navegación en la parte superior de la página. En Team Settings, selecciona Clave de servicio y haz clic en Add Service Key. Ingresa cualquier nombre para la clave (por ejemplo, “Azure Provisioning Key”) y haz clic en Create Service Key. Copia la clave generada, vuelve a la página de Azure y pégala en Secret Token.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure3.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=80477c2c0d31631e38e217b22e9f42a3`,\"data-og-width\":`1612`,width:`1612`,\"data-og-height\":`1013`,height:`1013`,\"data-path\":`assets/auth/scim-azure3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure3.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c547369cd10d19d77dbdb3586045c027 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure3.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=e375425a3fe55cc5425f53e78b34f32f 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure3.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f15b3e3d387acd4ac3371b882595252a 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=49e6c3e224944aef0dfa88b13b401a74 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=7dd27466493288c1d49a4327070f9f6f 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=4f40f4c6d50b15c421ba344a2013a8cc 2500w`})}),_jsx(_components.p,{children:`(Lo que deberías ver después de crear la clave en Windsurf)`}),_jsx(_components.p,{children:`En la página Provisioning, haz clic en Test Connection; con esto deberías verificar la conexión SCIM.`}),_jsx(_components.p,{children:`Ahora, arriba del formulario de Provisioning, haz clic en Save.`}),_jsx(Heading,{level:`2`,id:`paso-3-configura-el-aprovisionamiento-scim`,children:`Paso 3: Configura el aprovisionamiento SCIM`}),_jsx(_components.p,{children:`Después de hacer clic en Save, debería aparecer una nueva opción Mappings en la página de Provisioning. Expande Mappings y haz clic en Provision Microsoft Entra ID Users`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure4.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=276791b068bd34c2bcbe5321e95abfd6`,\"data-og-width\":`666`,width:`666`,\"data-og-height\":`438`,height:`438`,\"data-path\":`assets/auth/scim-azure4.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure4.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=6e36e1d72d4db00f49e114fdcc4a25be 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure4.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c11c14a5020abebd95bb43a970d88584 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure4.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=190236b1aaadafb15d6b7b7bc320ade2 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure4.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=9d153d92aeb12bfaf4bd7868270d0e17 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure4.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=00ff52c3a669e6dbb4f7346e0831fa23 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure4.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=640997349e4672552c5f07b170e81d22 2500w`})}),_jsx(_components.p,{children:`En attribute Mappings, elimina todos los campos bajo displayName, dejando solo los campos userName, active y displayName.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure5.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=ddb9440614a4bc04f7c561bbf64a2d5a`,\"data-og-width\":`1260`,width:`1260`,\"data-og-height\":`190`,height:`190`,\"data-path\":`assets/auth/scim-azure5.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure5.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=394d02238802b10210ff30262a7e669e 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure5.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=da13a8c0a933b23e30d66c8a25c7509b 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure5.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=fef036d0c788f16fe95ebca4f360388d 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure5.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=b3a2f8ec1b2b3482ec86aa26e3dad431 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure5.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=b4c4b2f43e28978d2c3acafee01a3ed0 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure5.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=3bf1b1e6d6863d74fd5344f25ac07ecc 2500w`})}),_jsx(_components.p,{children:`Para active, haz clic en Edit. En Expression, modifica el campo a`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`NOT([IsSoftDeleted])`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`Luego, haz clic en OK.`}),_jsx(_components.p,{children:`Tus atributos de usuario deberían verse así:`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure6.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=2beab12c979d3272d522293080634811`,\"data-og-width\":`2826`,width:`2826`,\"data-og-height\":`490`,height:`490`,\"data-path\":`assets/auth/scim-azure6.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure6.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=4a8ee3358e95d0cd9d50bd0d538564a7 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure6.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=a80cc215059b3780ca14c6ba370a6586 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure6.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=60057214f7d952812b598371e6c978d3 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure6.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=e9bcab8fd1017d0892bea2a169ac02e9 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure6.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=786f7e9bf633dcbd60d8059a61caf106 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure6.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=d4e9a7b532a2f85244bcaa90572ba06a 2500w`})}),_jsx(_components.p,{children:`En la página Attribute Mapping, haz clic en Save en la parte superior y regresa a la página Provisioning.`}),_jsx(_components.p,{children:`Ahora, en esa misma página, bajo Mappings, haz clic en Provision Microsoft Entra ID Groups. Luego, elimina únicamente externalId con la opción delete y vuelve a hacer clic en Save en la parte superior. Regresa a la página Provisioning.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure7.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=11e89ce7d057c455ea00e0f469351b61`,\"data-og-width\":`1258`,width:`1258`,\"data-og-height\":`203`,height:`203`,\"data-path\":`assets/auth/scim-azure7.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure7.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=cd56976ca792e265e725662085b17a19 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure7.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=bd115677b029f5e93699ab0a03768382 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure7.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=d4bded4bf9d8689909e28c61ad510ce0 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure7.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=d57065b32eff89171254875a8df64498 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure7.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=b6360f57f064b8ef7a10b63de8cfc7ef 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure7.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=51e4b607b0652154956ce119600415ba 2500w`})}),_jsx(_components.p,{children:`En la página Provisioning, en la parte inferior, también debería haber un interruptor llamado Provisioning Status. Ponlo en On para habilitar la sincronización SCIM (Sistema para la Gestión de Identidades entre Dominios). A partir de ahora, cada 40 minutos los usuarios y grupos de la aplicación Entra ID se sincronizarán con Windsurf.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure8.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=1214073ce82bd85a1c2a57834005608f`,\"data-og-width\":`686`,width:`686`,\"data-og-height\":`306`,height:`306`,\"data-path\":`assets/auth/scim-azure8.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure8.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=53139148e9394f611f436dc2128bcc33 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure8.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=a227c181354a371f3ae4aa13673a5c89 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure8.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=b9f85d836d1f06eb19a365d2f0cd9106 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure8.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=6dd2cc814ee02f9bd402348e8c202d38 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure8.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=35af8b5f5183e3d4bfda09ec4d7b092b 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/scim-azure8.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=d69d23c955420b31547dabb0b0950863 2500w`})}),_jsx(_components.p,{children:`Haz clic en Save para finalizar; ya has habilitado la sincronización de usuarios y grupos mediante SCIM. Solo los usuarios y grupos asignados a la aplicación se sincronizarán con Windsurf. Ten en cuenta que eliminar usuarios solo les deshabilita el acceso a Windsurf (y evita que ocupen una plaza) en lugar de borrarlos, debido al diseño de SCIM en Azure.`})]}),_jsxs(Tab,{title:`Okta SCIM (Sistema para la Gestión de Identidades entre Dominios)`,id:`okta-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios`,\"data-child-heading-ids\":`[\"paso-1%3A-navega-a-la-aplicaci%C3%B3n-de-windsurf-existente\",\"paso-2%3A-habilita-el-aprovisionamiento-scim\",\"paso-3%3A-configura-el-aprovisionamiento\",\"paso-4%3A-configura-el-aprovisionamiento-de-grupos-opcional\"]`,children:[_jsx(_components.p,{children:`Windsurf admite la sincronización SCIM para usuarios y grupos con Okta. No es necesario configurar SSO (inicio de sesión único) para usar la sincronización SCIM, pero es muy recomendable.`}),_jsx(_components.p,{children:`Necesitarás:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Acceso de administrador a Okta`}),`\n`,_jsx(_components.li,{children:`Acceso de administrador a Windsurf`}),`\n`,_jsx(_components.li,{children:`Una aplicación de Windsurf existente en Okta (normalmente a partir de tu aplicación de SSO existente)`}),`\n`]}),_jsx(Heading,{level:`2`,id:`paso-1-navega-a-la-aplicación-de-windsurf-existente`,children:`Paso 1: Navega a la aplicación de Windsurf existente`}),_jsx(_components.p,{children:`Ve a Okta, haz clic en Applications, Applications en la barra lateral izquierda y luego haz clic en la aplicación de Windsurf existente en la lista de aplicaciones.`}),_jsx(Heading,{level:`2`,id:`paso-2-habilita-el-aprovisionamiento-scim`,children:`Paso 2: Habilita el aprovisionamiento SCIM`}),_jsx(_components.p,{children:`En la pestaña General, App Settings, haz clic en Edit en la esquina superior derecha. Luego marca la casilla “Enable SCIM Provisioning” y haz clic en Save. Debería haber aparecido una nueva pestaña de aprovisionamiento en la parte superior.`}),_jsx(_components.p,{children:`Ahora ve a Provisioning, haz clic en Edit e introduce la siguiente información en los campos:`}),_jsxs(_components.p,{children:[`SCIM connector base URL: `,_jsx(_components.a,{href:`https://server.codeium.com/scim/v2`,children:`https://server.codeium.com/scim/v2`})]}),_jsx(_components.p,{children:`Unique identifier field for users: email`}),_jsx(_components.p,{children:`Supported provisioning actions: Push New Users, Push Profile Updates, Push Groups`}),_jsx(_components.p,{children:`Authentication Mode: HTTP Header`}),_jsx(_components.p,{children:`Para HTTP Header - Authorization, puedes generar el token desde`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`https://windsurf.com/team/settings`,children:`https://windsurf.com/team/settings`}),` y ve a Other Settings y encuentra Service Key Configuration`]}),`\n`,_jsx(_components.li,{children:`Haz clic en Add Service Key y asígnale un nombre a tu clave`}),`\n`,_jsx(_components.li,{children:`Copia la clave de API, vuelve a Okta y pégala en HTTP Header - Authorization`}),`\n`]}),_jsx(_components.p,{children:`Haz clic en Save después de completar Provisioning Integration.`}),_jsx(Heading,{level:`2`,id:`paso-3-configura-el-aprovisionamiento`,children:`Paso 3: Configura el aprovisionamiento`}),_jsx(_components.p,{children:`En la pestaña Provisioning, a la izquierda deberían aparecer dos nuevas secciones. Haz clic en To App y en Edit Provisioning to App. Marca las casillas para Create Users, Update User Attributes y Deactivate Users, y haz clic en Save.`}),_jsx(_components.p,{children:`Después de este paso, todos los usuarios asignados al grupo se sincronizarán con Windsurf.`}),_jsx(Heading,{level:`2`,id:`paso-4-configura-el-aprovisionamiento-de-grupos-opcional`,children:`Paso 4: Configura el aprovisionamiento de grupos (opcional)`}),_jsx(_components.p,{children:`Para sincronizar grupos con Windsurf, tendrás que especificar qué grupos enviar. En la aplicación, haz clic en la pestaña Push Groups en la parte superior. Ahora haz clic en + Push Groups -> Find Groups by name. Filtra el grupo que deseas agregar, asegúrate de que Push group memberships immediately esté marcado y luego haz clic en Save. El grupo se creará y los miembros del grupo se sincronizarán con Windsurf. Luego se podrán usar los grupos para filtrar la analítica de grupos en la página de Analytics.`})]}),_jsxs(Tab,{title:`API de SCIM (Sistema para la Gestión de Identidades entre Dominios)`,id:`api-de-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios`,\"data-child-heading-ids\":`[\"crear-grupo\",\"agregar-miembros-del-grupo\",\"reemplazar-miembros-del-grupo\",\"eliminar-grupo\",\"listar-grupo\",\"listar-usuarios-en-un-grupo\",\"apis-de-usuario\",\"creaci%C3%B3n-de-clave-secreta-de-api\"]`,children:[_jsx(_components.p,{children:`Esta guía muestra cómo crear y mantener grupos en Windsurf con la API de SCIM (Sistema para la Gestión de Identidades entre Dominios).`}),_jsx(_components.p,{children:`Existen razones por las que se podría querer aprovisionar grupos manualmente en lugar de hacerlo con el Proveedor de Identidad (Azure/Okta). Las empresas pueden querer que los grupos se aprovisionen desde una fuente interna diferente (sitio web de RRHH, herramienta de gestión de código fuente, etc.) a la que Windsurf no tiene acceso, o las empresas pueden necesitar un control más granular sobre los grupos del que proporciona su Proveedor de Identidad. Por lo tanto, los grupos se pueden crear mediante una API a través de solicitudes HTTP. A continuación se proporcionan ejemplos de solicitudes HTTP usando CURL.`}),_jsx(_components.p,{children:`Hay 5 APIs principales aquí: Crear Grupo, Agregar miembros al grupo, Reemplazar miembros del grupo, Eliminar Grupo y Listar Usuarios de un Grupo.`}),_jsx(Heading,{level:`3`,id:`crear-grupo`,children:`Crear Grupo`}),_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl -k -X POST https://server.codeium.com/scim/v2/Groups -d '{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"displayName\": \"\u003cnombre del grupo>\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:Group\"]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}' -H \"Authorization: Bearer \u003cclave secreta de API>\" -H \"Content-Type: application/scim+json\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`3`,id:`agregar-miembros-del-grupo`,children:`Agregar Miembros del Grupo`}),_jsx(CodeBlock,{numberOfLines:`8`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl -X PATCH https://server.codeium.com/scim/v2/Groups/\u003cnombre del grupo> -d '{\"schemas\": [\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"Operations\":[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"op\": \"add\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"path\":\"members\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"value\": [{\"value\": \"\u003cemail 1>\"}, {\"value\": \"\u003cemail 2>\"}]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}]}' -H \"Authorization: Bearer \u003cclave secreta de API>\" -H \"Content-Type: application/scim+json\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`3`,id:`reemplazar-miembros-del-grupo`,children:`Reemplazar miembros del grupo`}),_jsx(CodeBlock,{numberOfLines:`8`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl -X PATCH https://server.codeium.com/scim/v2/Groups/\u003cnombre del grupo> -d '{\"schemas\": [\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"Operations\":[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"op\": \"replace\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"path\":\"members\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"value\": [{\"value\": \"\u003cemail 1>\"}, {\"value\": \"\u003cemail 2>\"}]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}]}' -H \"Authorization: Bearer \u003cclave secreta de api>\" -H \"Content-Type: application/scim+json\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`3`,id:`eliminar-grupo`,children:`Eliminar Grupo`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl -X DELETE https://server.codeium.com/scim/v2/Groups/\u003cnombre del grupo> -H \"Authorization: Bearer \u003cclave secreta de API>\" -H \"Content-Type: application/scim+json\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`3`,id:`listar-grupo`,children:`Listar Grupo`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl -X GET -H \"Authorization: Bearer \u003cclave secreta de API>\" \"https://server.codeium.com/scim/v2/Groups\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`3`,id:`listar-usuarios-en-un-grupo`,children:`Listar Usuarios en un Grupo`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl -X GET -H \"Authorization: Bearer \u003cclave secreta de API>\" \"https://server.codeium.com/scim/v2/Groups/\u003cgroup_id>\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`Primero deberás crear al menos el grupo, y luego reemplazarlo para crear un grupo con miembros. También necesitarás codificar en URL los nombres de grupo si el nombre contiene caracteres especiales como espacios, por lo que un nombre de grupo como ‘Engineering Group’ deberá ser ‘Engineering%20Group’ en la URL.`}),_jsx(_components.p,{children:`Ten en cuenta que los usuarios deben crearse en Windsurf (a través de SCIM o creando la cuenta manualmente) antes de poder agregarlos a un grupo.`}),_jsx(Heading,{level:`2`,id:`apis-de-usuario`,children:`APIs de Usuario`}),_jsx(_components.p,{children:`También hay APIs para usuarios. Las siguientes son algunas de las APIs de SCIM (Sistema para la Gestión de Identidades entre Dominios) más comunes que admite Windsurf.`}),_jsx(_components.p,{children:`Deshabilitar un usuario (Para habilitar, cambiar false por true):`}),_jsx(CodeBlock,{numberOfLines:`15`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl -X PATCH \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` https://server.codeium.com/scim/v2/Users/\u003cclave de API del usuario> \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` -H 'Content-Type: application/scim+json' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` -H 'Authorization: Bearer \u003cclave secreta de API>' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` -d '{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"schemas\": [\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"Operations\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"op\": \"replace\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"path\": \"active\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"value\": false`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` }'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`Crear un usuario:`}),_jsx(CodeBlock,{numberOfLines:`11`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl -X POST \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` https://server.codeium.com/scim/v2/Users \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` -H 'Content-Type: application/scim+json' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` -H 'Authorization: Bearer \u003cclave secreta de API>' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` -d '{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"userName\": \"\u003cemail>\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"displayName\": \"\u003cfull name>\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"active\": true,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`}'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`Actualizar nombre:`}),_jsx(CodeBlock,{numberOfLines:`15`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`curl -X PATCH \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` 'https://\u003centerprise portal url>/_route/api_server/scim/v2/Users/\u003cuser api key>' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` -H 'Authorization: Bearer \u003cclave de servicio>' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` -H 'Content-Type: application/scim+json' \\\\`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` -d '{`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"schemas\": [\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"Operations\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"op\": \"Replace\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"path\": \"displayName\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` \"value\": \"\u003cnew name>\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` }'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`2`,id:`creación-de-clave-secreta-de-api`,children:`Creación de clave secreta de API`}),_jsxs(_components.p,{children:[`Ve a `,_jsx(_components.a,{href:`https://windsurf.com/team/settings`,children:`https://windsurf.com/team/settings`}),`. En Configuración de clave de servicio, haz clic en Configurar, luego en Agregar clave de servicio. Ingresa cualquier nombre de clave (como ‘Clave de aprovisionamiento de Azure’) y haz clic en Crear clave de servicio. Copia la clave generada y guárdala; ahora puedes usar la clave para autorizar las API mencionadas anteriormente.`]})]}),_jsxs(Tab,{title:`Duo`,id:`duo`,\"data-child-heading-ids\":`[\"requisitos-previos\",\"configurar-duo-para-windsurf\"]`,children:[_jsx(Heading,{level:`2`,id:`requisitos-previos`,children:`Requisitos previos`}),_jsx(_components.p,{children:`Esta guía asume que tienes Duo configurado y actuando como tu IdP organizacional, o que tienes un IdP externo configurado.`}),_jsx(_components.p,{children:`Necesitarás acceso de administrador tanto a las cuentas de Duo como de Windsurf.`}),_jsx(Heading,{level:`2`,id:`configurar-duo-para-windsurf`,children:`Configurar Duo para Windsurf`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Ve a Applications y agrega un proveedor de servicios Generic SAML.`}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-1.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=7e598d7e9a9ee2c3884caa1c60ba68ff`,\"data-og-width\":`2230`,width:`2230`,\"data-og-height\":`920`,height:`920`,\"data-path\":`assets/auth/duo-sso-1.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-1.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=3aec1b67ffcd908e98ff8fdc8efb9f13 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-1.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=6fae9b15acbd20d00ba1342e29c03566 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-1.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=2a92b9bd222d601f17445724a5740c4d 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-1.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=07e9adea00e0cab9016ad608222894f5 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-1.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=78b9eeb4b38c111b8a305442ecf22038 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-1.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f3fae806d80ac44e2feb9be6d623c311 2500w`})}),_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsx(_components.li,{children:`Ve a SSO en Team Settings.`}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=df8dde8b5b66a27532a3f42cdd803a17`,\"data-og-width\":`1676`,width:`1676`,\"data-og-height\":`1444`,height:`1444`,\"data-path\":`assets/auth/windsurf-sso-team-settings.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=24e65a0584ca92c5092e7a8b39d29a85 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=a1aaf95ae69ecadbb071f972cf209d9a 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=8e0faad235bc863532c0cf5e8260d51f 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c1d83d71116443257b524c595132a21d 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=ad30f5f9af3dde7f95666544e8a483ef 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=fcf587e6ef653eff95139a4d550e3e08 2500w`})}),_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Al habilitar SAML por primera vez, se te pedirá que configures tu SSO ID. `,_jsx(_components.strong,{children:`No podrás cambiarlo más adelante.`})]}),`\n`,_jsx(_components.p,{children:`Se recomienda usar el nombre de tu organización o equipo, solo con caracteres alfanuméricos.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Copia el valor de `,_jsx(_components.code,{children:`Entity ID`}),` del portal de Duo y pégalo en el campo `,_jsx(_components.code,{children:`IdP Entity ID`}),` en el portal de Windsurf.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Copia el valor de `,_jsx(_components.code,{children:`Single Sign-On URL`}),` del portal de Duo y pégalo en el campo `,_jsx(_components.code,{children:`SSO URL`}),` en el portal de Windsurf.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Copia el valor del certificado del portal de Duo y pégalo en el campo `,_jsx(_components.code,{children:`X509 Certificate`}),` en el portal de Windsurf.`]}),`\n`]}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-3.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=a7594c846a32e958a1bacfc01c5d3ef3`,\"data-og-width\":`1536`,width:`1536`,\"data-og-height\":`290`,height:`290`,\"data-path\":`assets/auth/duo-sso-3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-3.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=953a07d45101a639db53f6d22667c2a0 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-3.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=1fbc8e990bebcbad0cd70f9bce288a8b 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-3.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=769ba894b06157867cba16e6c7c9858b 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=0e65532cda4e2039dfe07c02fd55aa52 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=9095538c85e97051654d911b3bb10e91 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f907b2efbe7eaabdaa8aa8c6fb350d86 2500w`})}),_jsxs(_components.ol,{start:`7`,children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Copia el valor de `,_jsx(_components.code,{children:`SP Identity ID`}),` del portal de Windsurf y pégalo en el campo `,_jsx(_components.code,{children:`Entity ID`}),` en el portal de Duo.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Copia el `,_jsx(_components.code,{children:`Callback URL (Assertion Consumer Service URL)`}),` del portal de Windsurf y pégalo en el campo `,_jsx(_components.code,{children:`Assertion Consumer Service (ACS) URL`}),` en el portal de Duo.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`En el portal de Duo, configura las declaraciones de atributos de la siguiente manera:`}),`\n`]}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-4.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=bb3b514b94a6b0ebba19aa492c8be4a2`,\"data-og-width\":`1676`,width:`1676`,\"data-og-height\":`290`,height:`290`,\"data-path\":`assets/auth/duo-sso-4.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-4.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=a3de0ba0a3a188f34f178c200209cc17 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-4.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=88374d6e4f03ce1e45cb3094fe3e98e8 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-4.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=d94638ec8d0a22bfa7ec00eb6514ec58 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-4.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f1c7e2ae138409c19a56dd12287fdaec 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-4.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=7cfe010d8214ae7e7b655b5b6efba472 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/duo-sso-4.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=769ae9ad721e322e67f6d84bf139a33d 2500w`})}),_jsxs(_components.ol,{start:`10`,children:[`\n`,_jsx(_components.li,{children:`Habilita el inicio de sesión SAML en el portal de Windsurf para poder probarlo.`}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`NOTA: NO CIERRES LA SESIÓN NI LA VENTANA EN ESTE PUNTO.`})}),_jsx(_components.p,{children:`Si recibes un error o hay un tiempo de espera, revisa y corrige tu configuración; de lo contrario, tendrás que deshabilitar la configuración de SAML en el portal de Windsurf.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Si cierras sesión o la ventana sin confirmar una prueba exitosa, podrías quedar bloqueado.`})}),_jsxs(_components.ol,{start:`11`,children:[`\n`,_jsx(_components.li,{children:`Una vez que la prueba se haya completado correctamente, puedes cerrar sesión. Ahora puedes usar el inicio de sesión con SSO al ir a la página de tu equipo/organización con el SSO ID que configuraste en el paso 3.`}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.a,{href:`https://www.codeium.com/yourssoid/login`,children:`https://www.codeium.com/yourssoid/login`})})]}),_jsxs(Tab,{title:`PingID`,id:`pingid`,\"data-child-heading-ids\":`[\"requisitos-previos-2\",\"configurar-pingid-para-windsurf\"]`,children:[_jsx(Heading,{level:`2`,id:`requisitos-previos-2`,children:`Requisitos previos`}),_jsx(_components.p,{children:`Esta guía asume que tienes PingID configurado y funcionando como tu IdP organizacional, o que tienes un IdP externo configurado.`}),_jsx(_components.p,{children:`Necesitarás acceso de administrador a las cuentas de PingID y Windsurf.`}),_jsx(Heading,{level:`2`,id:`configurar-pingid-para-windsurf`,children:`Configurar PingID para Windsurf`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Ve a Applications y agrega Windsurf como una SAML Application.`}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-1.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=f86f6145e0eac599178ca9d9ee66b776`,\"data-og-width\":`2258`,width:`2258`,\"data-og-height\":`1068`,height:`1068`,\"data-path\":`assets/auth/pingid-1.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-1.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=0ad46a1b2741392e7b9317cb469e55ea 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-1.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=894534973d6592c29d157db78a542b26 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-1.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=cea5d47e23bcff6ef6811358f893533f 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-1.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=1e2f9e94729c777800b7b9e4dfe32082 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-1.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=6b7ab758d275aa2b2e63a9c4e01bea62 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-1.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=dfb01b08c5fdd2ebe1d9e80e5052426b 2500w`})}),_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsx(_components.li,{children:`Ve a SSO en Team Settings.`}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=df8dde8b5b66a27532a3f42cdd803a17`,\"data-og-width\":`1676`,width:`1676`,\"data-og-height\":`1444`,height:`1444`,\"data-path\":`assets/auth/windsurf-sso-team-settings.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=24e65a0584ca92c5092e7a8b39d29a85 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=a1aaf95ae69ecadbb071f972cf209d9a 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=8e0faad235bc863532c0cf5e8260d51f 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c1d83d71116443257b524c595132a21d 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=ad30f5f9af3dde7f95666544e8a483ef 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/windsurf-sso-team-settings.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=fcf587e6ef653eff95139a4d550e3e08 2500w`})}),_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsxs(_components.li,{children:[`Al habilitar SAML por primera vez, se te pedirá configurar tu SSO ID. `,_jsx(_components.strong,{children:`No podrás cambiarlo más adelante.`})]}),`\n`]}),_jsx(_components.p,{children:`Se recomienda establecerlo como el nombre de tu organización o equipo usando solo caracteres alfanuméricos.`}),_jsxs(_components.ol,{start:`4`,children:[`\n`,_jsx(_components.li,{children:`En PingID: elige ingresar la configuración manualmente y completa los campos con los siguientes valores:`}),`\n`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`ACS URLs: es el `,_jsx(_components.code,{children:`Callback URL (Assertion Consumer Service URL)`}),` del portal de Windsurf.`]}),`\n`,_jsxs(_components.li,{children:[`Entity ID: es el `,_jsx(_components.code,{children:`SP Entity ID`}),` del portal de Windsurf.`]}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-3.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=e33dc0b9d021309da0fcdb2ac4f08bbb`,\"data-og-width\":`974`,width:`974`,\"data-og-height\":`672`,height:`672`,\"data-path\":`assets/auth/pingid-3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-3.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=085f011d0ddf369d9b05502ccbfbb5dc 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-3.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=160eebad525ebc56527d0c9e9945492a 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-3.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=fccab270df675b3608a5e72afdcda1bc 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=dcab45be60955341f5e47e1746fd36f4 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=6819f76a0f703860f8f53fc486bf696d 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=4d1dde99a6c5a62b6c1798f1c694e220 2500w`})}),_jsxs(_components.ol,{start:`5`,children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Copia el `,_jsx(_components.code,{children:`Issuer ID`}),` de PingID en el valor `,_jsx(_components.code,{children:`IdP Entity ID`}),` del portal de Windsurf.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Copia el valor `,_jsx(_components.code,{children:`Single Signon Service`}),` de PingID en el valor `,_jsx(_components.code,{children:`SSO URL`}),` del portal de Windsurf.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Descarga el Signing Certificate de PingID como X509 PEM (.crt), abre el archivo y copia su contenido en el valor `,_jsx(_components.code,{children:`X509 Certificate`}),` del portal de Windsurf.`]}),`\n`]}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Nota`}),`: asegúrate de incluir completas las líneas de inicio y fin con 5 guiones (-) y que no se copien otros caracteres.`]}),_jsxs(_components.ol,{start:`8`,children:[`\n`,_jsx(_components.li,{children:`En los mapeos de atributos, asegúrate de mapear:`}),`\n`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`saml_subject`}),` - Email Address`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`firstName`}),` - Given Name`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`lastName`}),` - Family Name`]}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-4.png?fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=4ff17f07bfb897072fb68e212ee2ac12`,\"data-og-width\":`1398`,width:`1398`,\"data-og-height\":`780`,height:`780`,\"data-path\":`assets/auth/pingid-4.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-4.png?w=280\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=7af2eb21b83c86fa66ab0a93b744a81a 280w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-4.png?w=560\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=c817c9e4a5abbe3827baf40050108679 560w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-4.png?w=840\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=1f4f584e1f6586dadb0632457eb840f1 840w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-4.png?w=1100\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=062bae9cd58477962da4f51fb5590bc4 1100w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-4.png?w=1650\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=efa1fb0cc4d775c8695521195d31949e 1650w, https://mintcdn.com/codeium/DnGnXhZxl1qb2EWt/assets/auth/pingid-4.png?w=2500\u0026fit=max\u0026auto=format\u0026n=DnGnXhZxl1qb2EWt\u0026q=85\u0026s=4fe0ba0d6cd6b3eb6796557696e9a08d 2500w`})}),_jsxs(_components.ol,{start:`9`,children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Agrega o edita cualquier otra política y acceso según lo requiera tu configuración/organización.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Habilita el inicio de sesión SAML en el portal de Windsurf para poder probarlo.`}),`\n`]}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`NOTA: NO CIERRES SESIÓN NI LA VENTANA EN ESTE PUNTO.`})}),_jsx(_components.p,{children:`Si obtienes un error o se agota el tiempo de espera, revisa y corrige tu configuración; de lo contrario, tendrás que deshabilitar tus SAML Settings en el portal de Windsurf.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Si cierras sesión o la ventana sin confirmar una prueba exitosa, podrías quedar bloqueado.`})}),_jsxs(_components.ol,{start:`11`,children:[`\n`,_jsx(_components.li,{children:`Una vez que tu prueba se haya completado correctamente, puedes cerrar sesión. Ahora puedes usar el inicio de sesión con SSO al navegar a la página de tu equipo/organización con el SSO ID que configuraste en el paso 3.`}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.a,{href:`https://www.codeium.com/yourssoid/login`,children:`https://www.codeium.com/yourssoid/login`})})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Configurar SSO y SCIM","sidebarTitle":"SSO y SCIM","description":"Configura el inicio de sesión único (SSO) y el aprovisionamiento mediante SCIM (Sistema para la Gestión de Identidades entre Dominios) para tu organización usando Google Workspace, Microsoft Azure AD, Okta u otros proveedores de identidad SAML.","keywords":["SSO","SCIM","inicio de sesión único","Okta","Azure AD","Google SSO","SAML","proveedor de identidad","autenticación","aprovisionamiento","enterprise","teams"],"href":"/es/plugins/accounts/sso-scim"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Configurar la aplicación del IdP","slug":"configurar-la-aplicación-del-idp","depth":3,"children":[],"tabId":"sso-de-google"},{"title":"Parte 1: Crear la aplicación Enterprise en Microsoft Entra ID","slug":"parte-1-crear-la-aplicación-enterprise-en-microsoft-entra-id","depth":2,"children":[],"tabId":"microsoft-entra-id"},{"title":"Parte 2: Configurar SAML y atributos de usuario en Microsoft Entra ID","slug":"parte-2-configurar-saml-y-atributos-de-usuario-en-microsoft-entra-id","depth":2,"children":[],"tabId":"microsoft-entra-id"},{"title":"Parte 3: Configurar los ajustes de SSO en el portal de Windsurf","slug":"parte-3-configurar-los-ajustes-de-sso-en-el-portal-de-windsurf","depth":2,"children":[],"tabId":"microsoft-entra-id"},{"title":"Configurar la aplicación del IdP","slug":"configurar-la-aplicación-del-idp-2","depth":3,"children":[],"tabId":"okta-sso-inicio-de-sesi%C3%B3n-%C3%BAnico"},{"title":"Registrar Okta como proveedor SAML","slug":"registrar-okta-como-proveedor-saml","depth":3,"children":[],"tabId":"okta-sso-inicio-de-sesi%C3%B3n-%C3%BAnico"},{"title":"Advertencias","slug":"advertencias","depth":3,"children":[],"tabId":"okta-sso-inicio-de-sesi%C3%B3n-%C3%BAnico"},{"title":"Solución de problemas","slug":"solución-de-problemas","depth":1,"children":[{"title":"Login with SAML config failed: Firebase: Error (auth/operation-not-allowed)","slug":"login-with-saml-config-failed-firebase-error-auth/operation-not-allowed","depth":3,"children":[],"tabId":"okta-sso-inicio-de-sesi%C3%B3n-%C3%BAnico"},{"title":"Login with SAML config failed: Firebase: SAML Response \u003cIssuer> mismatch. (auth/invalid-credential)","slug":"login-with-saml-config-failed-firebase-saml-response-\u003cissuer>-mismatch-auth/invalid-credential","depth":3,"children":[],"tabId":"okta-sso-inicio-de-sesi%C3%B3n-%C3%BAnico"},{"title":"Failed to verify the signature in samlresponse","slug":"failed-to-verify-the-signature-in-samlresponse","depth":3,"children":[],"tabId":"okta-sso-inicio-de-sesi%C3%B3n-%C3%BAnico"}],"tabId":"okta-sso-inicio-de-sesi%C3%B3n-%C3%BAnico"},{"title":"Paso 1: Ve a la aplicación de Windsurf existente","slug":"paso-1-ve-a-la-aplicación-de-windsurf-existente","depth":2,"children":[],"tabId":"azure-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Paso 2: Configura el aprovisionamiento SCIM","slug":"paso-2-configura-el-aprovisionamiento-scim","depth":2,"children":[],"tabId":"azure-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Paso 3: Configura el aprovisionamiento SCIM","slug":"paso-3-configura-el-aprovisionamiento-scim","depth":2,"children":[],"tabId":"azure-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Paso 1: Navega a la aplicación de Windsurf existente","slug":"paso-1-navega-a-la-aplicación-de-windsurf-existente","depth":2,"children":[],"tabId":"okta-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Paso 2: Habilita el aprovisionamiento SCIM","slug":"paso-2-habilita-el-aprovisionamiento-scim","depth":2,"children":[],"tabId":"okta-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Paso 3: Configura el aprovisionamiento","slug":"paso-3-configura-el-aprovisionamiento","depth":2,"children":[],"tabId":"okta-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Paso 4: Configura el aprovisionamiento de grupos (opcional)","slug":"paso-4-configura-el-aprovisionamiento-de-grupos-opcional","depth":2,"children":[],"tabId":"okta-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Crear Grupo","slug":"crear-grupo","depth":3,"children":[],"tabId":"api-de-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Agregar Miembros del Grupo","slug":"agregar-miembros-del-grupo","depth":3,"children":[],"tabId":"api-de-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Reemplazar miembros del grupo","slug":"reemplazar-miembros-del-grupo","depth":3,"children":[],"tabId":"api-de-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Eliminar Grupo","slug":"eliminar-grupo","depth":3,"children":[],"tabId":"api-de-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Listar Grupo","slug":"listar-grupo","depth":3,"children":[],"tabId":"api-de-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Listar Usuarios en un Grupo","slug":"listar-usuarios-en-un-grupo","depth":3,"children":[],"tabId":"api-de-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"APIs de Usuario","slug":"apis-de-usuario","depth":2,"children":[],"tabId":"api-de-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Creación de clave secreta de API","slug":"creación-de-clave-secreta-de-api","depth":2,"children":[],"tabId":"api-de-scim-sistema-para-la-gesti%C3%B3n-de-identidades-entre-dominios"},{"title":"Requisitos previos","slug":"requisitos-previos","depth":2,"children":[],"tabId":"duo"},{"title":"Configurar Duo para Windsurf","slug":"configurar-duo-para-windsurf","depth":2,"children":[],"tabId":"duo"},{"title":"Requisitos previos","slug":"requisitos-previos-2","depth":2,"children":[],"tabId":"pingid"},{"title":"Configurar PingID para Windsurf","slug":"configurar-pingid-para-windsurf","depth":2,"children":[],"tabId":"pingid"}],"codeExamples":{}},"jsLinks":[],"subdomain":"codeium","siteName":"Windsurf Docs","title":"Configurar SSO y SCIM - Windsurf Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/plugins/accounts/sso-scim","matchLevel":1},"fr":{"href":"/fr/plugins/accounts/sso-scim","matchLevel":1},"es":{"href":"/es/plugins/accounts/sso-scim","matchLevel":0},"de":{"href":"/de/plugins/accounts/sso-scim","matchLevel":1},"pt-BR":{"href":"/pt-BR/plugins/accounts/sso-scim","matchLevel":1},"zh":{"href":"/zh/plugins/accounts/sso-scim","matchLevel":1},"ja":{"href":"/ja/plugins/accounts/sso-scim","matchLevel":1},"ro":{"href":"/ro/plugins/accounts/sso-scim","matchLevel":1}}},"lastModified":"2026-03-09T16:56:04.964Z","originalFileLocation":"es/plugins/accounts/sso-scim.mdx","locale":"es"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Configura el inicio de sesión único (SSO) y el aprovisionamiento mediante SCIM (Sistema para la Gestión de Identidades entre Dominios) para tu organización usando Google Workspace, Microsoft Azure AD, Okta u otros proveedores de identidad SAML.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Windsurf Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/codeium/fpJcfiGfVrP-tNfE/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/codeium/fpJcfiGfVrP-tNfE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/codeium/fpJcfiGfVrP-tNfE/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/codeium/fpJcfiGfVrP-tNfE/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/codeium/fpJcfiGfVrP-tNfE/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/codeium/fpJcfiGfVrP-tNfE/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/codeium/fpJcfiGfVrP-tNfE/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/codeium/fpJcfiGfVrP-tNfE/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/codeium/fpJcfiGfVrP-tNfE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Configurar SSO y SCIM - Windsurf Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Docs for Windsurf (formerly Codeium): your modern coding superpowers.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Windsurf Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.windsurf.com/es/plugins/accounts/sso-scim\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://exafunction.github.io/public/hero/thumbnail_docs.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Configurar SSO y SCIM - Windsurf Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Docs for Windsurf (formerly Codeium): your modern coding superpowers.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://exafunction.github.io/public/hero/thumbnail_docs.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/codeium/fpJcfiGfVrP-tNfE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Windsurf Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#34E8BB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.windsurf.com/es/plugins/accounts/sso-scim\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/es/plugins/accounts/sso-scim.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.windsurf.com/es/plugins/accounts/sso-scim\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.windsurf.com/plugins/accounts/sso-scim\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.windsurf.com/fr/plugins/accounts/sso-scim\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.windsurf.com/de/plugins/accounts/sso-scim\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.windsurf.com/pt-BR/plugins/accounts/sso-scim\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.windsurf.com/zh/plugins/accounts/sso-scim\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.windsurf.com/ja/plugins/accounts/sso-scim\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ro\" href=\"https://docs.windsurf.com/ro/plugins/accounts/sso-scim\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.windsurf.com/plugins/accounts/sso-scim\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.windsurf.com/#organization\",\"name\":\"Windsurf Docs\",\"url\":\"https://docs.windsurf.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/codeium/Hr_wKmLaXZaiQOb6/assets/windsurf-black-logo.svg?fit=max\u0026auto=format\u0026n=Hr_wKmLaXZaiQOb6\u0026q=85\u0026s=9d8592a768328271378364064a81840f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.windsurf.com#website\",\"name\":\"Windsurf Docs\",\"url\":\"https://docs.windsurf.com\",\"publisher\":{\"@id\":\"https://docs.windsurf.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.windsurf.com/es/plugins/accounts/sso-scim#webpage\",\"url\":\"https://docs.windsurf.com/es/plugins/accounts/sso-scim\",\"name\":\"Configurar SSO y SCIM\",\"description\":\"Configura el inicio de sesión único (SSO) y el aprovisionamiento mediante SCIM (Sistema para la Gestión de Identidades entre Dominios) para tu organización usando Google Workspace, Microsoft Azure AD, Okta u otros proveedores de identidad SAML.\",\"dateModified\":\"2026-03-09T16:56:04.964Z\",\"isPartOf\":{\"@id\":\"https://docs.windsurf.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.windsurf.com/es/plugins/accounts/sso-scim#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.windsurf.com/es/plugins/accounts/sso-scim#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Cuentas\",\"item\":\"https://docs.windsurf.com/es/plugins/accounts/usage\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Teams y Enterprise\",\"item\":\"https://docs.windsurf.com/es/plugins/accounts/teams-getting-started\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Configurar SSO y SCIM\",\"item\":\"https://docs.windsurf.com/es/plugins/accounts/sso-scim\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.windsurf.com/es/plugins/accounts/sso-scim#article\",\"headline\":\"Configurar SSO y SCIM\",\"name\":\"Configurar SSO y SCIM\",\"description\":\"Configura el inicio de sesión único (SSO) y el aprovisionamiento mediante SCIM (Sistema para la Gestión de Identidades entre Dominios) para tu organización usando Google Workspace, Microsoft Azure AD, Okta u otros proveedores de identidad SAML.\",\"url\":\"https://docs.windsurf.com/es/plugins/accounts/sso-scim\",\"mainEntityOfPage\":{\"@id\":\"https://docs.windsurf.com/es/plugins/accounts/sso-scim#webpage\"},\"image\":\"https://exafunction.github.io/public/hero/thumbnail_docs.png\",\"dateModified\":\"2026-03-09T16:56:04.964Z\",\"keywords\":\"SSO, SCIM, inicio de sesión único, Okta, Azure AD, Google SSO, SAML, proveedor de identidad, autenticación, aprovisionamiento, enterprise, teams\",\"publisher\":{\"@id\":\"https://docs.windsurf.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.windsurf.com#website\"}}]}\u003c/script>","agentPointerHref":"/es/plugins/accounts/sso-scim.md","siteName":"Windsurf Docs","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/plugins/accounts/sso-scim"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/plugins/accounts/sso-scim"}]},{"language":"es","tabs":[{"tab":"Windsurf","pages":[{"title":"Windsurf","href":"/es/windsurf/getting-started"}]},{"tab":"Windsurf Plugins","groups":[{"group":"Primeros pasos","pages":[{"title":"Bienvenido a Windsurf Plugins","sidebarTitle":"Configuración","href":"/es/plugins/getting-started"},{"title":"Compatibilidad de IDE","sidebarTitle":"Compatibilidad","href":"/es/plugins/compatibility"},{"title":"Guía para administradores","href":"/es/plugins/guide-for-admins"}]},{"group":"Funciones","pages":[{"group":"Autocomplete","pages":[{"title":"Descripción general de Autocomplete","sidebarTitle":"Descripción general","href":"/es/autocomplete/overview"},{"title":"Consejos sobre Autocomplete","sidebarTitle":"Consejos","href":"/es/autocomplete/tips"}]},{"group":"Chat","pages":[{"title":"Descripción general del Chat","sidebarTitle":"Descripción general","href":"/es/chat/overview"},{"title":"Modelos de Chat","sidebarTitle":"Chat Models","href":"/es/chat/models"}]},{"group":"Command","pages":[{"title":"Descripción general de Command","sidebarTitle":"Descripción general","href":"/es/command/plugins-overview"},{"title":"Refactorizaciones, docstrings y más","href":"/es/command/related-features"}]}]},{"group":"Cascade (JetBrains)","pages":[{"title":"Descripción general de Cascade","sidebarTitle":"Descripción general","href":"/es/plugins/cascade/cascade-overview"},{"title":"Modelos de Cascade","sidebarTitle":"Modelos de IA","href":"/es/plugins/cascade/models"},{"title":"Búsqueda en la web y en la documentación","href":"/es/plugins/cascade/web-search"},{"title":"Memories y reglas","href":"/es/plugins/cascade/memories"},{"title":"Model Context Protocol (MCP)","href":"/es/plugins/cascade/mcp"},{"title":"Workflows","sidebarTitle":"Workflows","href":"/es/plugins/cascade/workflows"}]},{"group":"Cuentas","pages":[{"title":"Planes y uso de créditos","sidebarTitle":"Uso","href":"/es/plugins/accounts/usage"},{"title":"Analytics","href":"/es/plugins/accounts/analytics"},{"group":"Teams y Enterprise","pages":[{"title":"Primeros pasos con Teams y Enterprise","sidebarTitle":"Primeros pasos","href":"/es/plugins/accounts/teams-getting-started"},{"title":"Acceso y gestión basados en roles","sidebarTitle":"Acceso basado en roles","href":"/es/plugins/accounts/rbac-role-management"},{"group":"Referencia de la API","pages":[{"title":"Referencia de la API","href":"/es/plugins/accounts/api-reference/api-introduction"},{"group":"Analytics API","pages":[{"title":"Analytics API","href":"/es/plugins/accounts/api-reference/analytics-api-introduction"},{"title":"Obtener Analytics de la página de usuario","api":"POST https://server.codeium.com/api/v1/UserPageAnalytics","href":"/es/plugins/accounts/api-reference/user-page-analytics"},{"title":"Obtener Analytics de Cascade","api":"POST https://server.codeium.com/api/v1/CascadeAnalytics","href":"/es/plugins/accounts/api-reference/cascade-analytics"},{"title":"Consulta personalizada de Analytics","api":"POST https://server.codeium.com/api/v1/Analytics","href":"/es/plugins/accounts/api-reference/custom-analytics"},{"title":"Manejo de errores","href":"/es/plugins/accounts/api-reference/errors"}]},{"group":"API de uso","pages":[{"title":"Configurar el uso","api":"POST https://server.codeium.com/api/v1/UsageConfig","href":"/es/plugins/accounts/api-reference/usage-config"},{"title":"Obtener la configuración de uso","api":"POST https://server.codeium.com/api/v1/GetUsageConfig","href":"/es/plugins/accounts/api-reference/get-usage-config"},{"title":"Obtener el saldo de créditos del equipo","api":"POST https://server.codeium.com/api/v1/GetTeamCreditBalance","description":"Obtén el saldo de créditos actual de tu equipo, incluidos los créditos de prompt por asiento, los créditos complementarios (add-on) y la información del ciclo de facturación.","href":"/es/plugins/accounts/api-reference/get-team-credit-balance"}]}]},{"title":"Configurar SSO y SCIM","sidebarTitle":"SSO y SCIM","href":"/es/plugins/accounts/sso-scim"}]}]},{"group":"Conocimiento de contexto","pages":[{"title":"Descripción general del contexto","sidebarTitle":"Overview","description":"El motor de contexto basado en RAG de Windsurf indexa tu base de código para ofrecer sugerencias inteligentes. Aprende sobre anclaje de contexto, base de conocimientos y recuperación con M-Query.","href":"/es/context-awareness/overview"},{"title":"Fast Context","href":"/es/context-awareness/fast-context"},{"title":"Windsurf Ignore","href":"/es/context-awareness/windsurf-ignore"},{"title":"Remote Indexing","sidebarTitle":"Remote Indexing (Enterprise)","href":"/es/context-awareness/remote-indexing"}]},{"group":"Mejores prácticas","pages":[{"title":"Ingeniería de prompts","href":"/es/best-practices/prompt-engineering"},{"title":"Casos de uso comunes","href":"/es/best-practices/use-cases"}]},{"group":"Solución de problemas","pages":[{"title":"Obtención de logs del plugin","sidebarTitle":"Obtención de logs","href":"/es/troubleshooting/plugins-gathering-logs"},{"title":"Problemas generales","sidebarTitle":"Problemas comunes","href":"/es/troubleshooting/plugins-common-issues"},{"group":"Enterprise","pages":[{"title":"Solución de problemas de JetBrains","sidebarTitle":"JetBrains","href":"/es/troubleshooting/plugins-enterprise/jetbrains"},{"title":"Configuración de proxy para Windsurf en IDEs de JetBrains","sidebarTitle":"Proxy en JetBrains","href":"/es/troubleshooting/plugins-enterprise/jetbrains-proxy"},{"title":"Solución de problemas en Visual Studio Code (VS Code)","sidebarTitle":"Visual Studio Code (VS Code)","href":"/es/troubleshooting/plugins-enterprise/vscode"},{"title":"Solución de problemas de Eclipse","sidebarTitle":"Eclipse","href":"/es/troubleshooting/plugins-enterprise/eclipse"},{"title":"Solución de problemas de Visual Studio","sidebarTitle":"Visual Studio","href":"/es/troubleshooting/plugins-enterprise/visualstudio"}]}]},{"group":"Seguridad","pages":[{"title":"Guía de administración de seguridad FedRAMP","sidebarTitle":"Guía de administración de seguridad FedRAMP","href":"/es/security/security-admin-guide"},{"title":"Reporte de problemas de seguridad","sidebarTitle":"Reportes","href":"/es/security/reporting"}]}]}],"global":{"anchors":[{"anchor":"Comunidad en Discord","icon":"discord","href":"https://discord.com/invite/3XFf78nAx5"},{"anchor":"Blog de Windsurf","icon":"newspaper","href":"https://windsurf.com/blog"},{"anchor":"Soporte","icon":"bug","href":"https://windsurf.com/support"}]}},{"language":"de","pages":[{"title":"de","href":"/de/plugins/accounts/sso-scim"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/pt-BR/plugins/accounts/sso-scim"}]},{"language":"zh","pages":[{"title":"zh","href":"/zh/plugins/accounts/sso-scim"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/plugins/accounts/sso-scim"}]},{"language":"ro","pages":[{"title":"ro","href":"/ro/plugins/accounts/sso-scim"}]}]},"basePath":"","title":"Configurar SSO y SCIM - Windsurf Docs","buildId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","deploymentId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-vIkpUzVS.js","DynamicMarkdown-TAXIW2vN.js","zoom-image-lightbox-y00V8U6G.js","lightbox-handle-r17bVUz3.js"]}