Empezar

SSO empresarial

Cómo funcionan el SSO OIDC, el enrutamiento por dominio de correo y la membresía JIT del espacio de trabajo, incluido su alcance actual.


El inicio de sesión único (SSO) permite iniciar sesión en Epismo mediante el proveedor OpenID Connect (OIDC) de la empresa. Un Owner o Admin del espacio de trabajo registra el dominio de la empresa y la conexión OIDC, verifica la propiedad del dominio y completa una prueba de inicio de sesión real antes de habilitarla.

Funciones disponibles

  • Epismo usa el dominio del correo de trabajo introducido en el formulario normal de acceso o proporcionado a epismo login --email para dirigir automáticamente al usuario al IdP del espacio de trabajo.
  • El acceso solo se completa si el IdP devuelve un correo verificado cuyo dominio coincide con el dominio verificado del espacio de trabajo.
  • Si el correo verificado pertenece a un usuario existente de Epismo, Epismo añade la identidad OIDC a ese usuario. De lo contrario, crea un usuario.
  • Epismo añade al usuario al espacio de trabajo como Member mediante aprovisionamiento justo a tiempo (JIT) cuando es necesario.

Funciones que todavía no están disponibles

Actualmente, el SSO es un método de acceso adicional. No exige SSO cada vez que alguien accede al espacio de trabajo. Los miembros existentes pueden seguir usando Google, la autenticación por correo u otro método que ya tengan disponible.

Por ello, deshabilitar a un empleado en el IdP no invalida necesariamente de inmediato una sesión existente de Epismo ni el acceso mediante otro método. La aplicación obligatoria de SSO, SCIM, la sincronización de grupos, el mapeo de roles, varios dominios y varias conexiones OIDC no forman parte de esta versión.

Flujo de acceso

  1. El usuario introduce su correo de empresa en el formulario normal de acceso de Epismo o ejecuta epismo login --email <correo>.
  2. Epismo busca una conexión SSO habilitada y verificada por el dominio del correo.
  3. Epismo redirige al usuario al IdP de la empresa.
  4. Epismo valida la respuesta OIDC y el correo verificado.
  5. Epismo resuelve la identidad mediante issuer y subject. Si es nueva, la vincula al usuario con el mismo correo verificado o crea un usuario.
  6. Epismo crea una membresía Member cuando es necesario.
  7. Epismo devuelve al usuario al espacio de trabajo.

El correo se utiliza para descubrir la conexión y confirmar que el dominio es apto. La identidad OIDC se identifica por el issuer y el subject emitidos por el IdP, no por el correo.

Configurar SSO

Un Owner o Admin puede configurar SSO. Actualmente, cada espacio de trabajo admite un dominio de correo empresarial y una conexión OIDC.

Crear una aplicación en el IdP

Cree una aplicación web en el IdP y registre esta URL de callback:

https://epismo.ai/api/auth/oidc/callback

Epismo utiliza Authorization Code Flow, PKCE (S256), state y nonce, y solicita estos scopes:

openid email profile

El ID token debe incluir estos claims:

Claim Obligatorio Propósito
iss Debe coincidir con el issuer configurado
sub Identificador estable de la identidad OIDC
email Determina si el usuario puede recibir aprovisionamiento JIT
email_verified Epismo solo confía en el correo cuando su valor es true
name No Nombre del nuevo usuario; si falta, se usa la parte local del correo

Asigne en el IdP las personas adecuadas a la aplicación de Epismo. La comprobación del dominio verificado no sustituye la asignación de la aplicación en el IdP.

Guardar la conexión en Epismo

Abra el espacio de trabajo y vaya a Workspace settings → Single sign-on.

Campo Valor
Company email domain Un dominio propiedad de la organización, como acme.com
Issuer URL El issuer HTTPS que publica OIDC Discovery; debe coincidir exactamente
Client ID Client ID de la aplicación creada en el IdP
Client secret Introdúzcalo para un cliente confidencial; déjelo vacío para uno público

Los Client secrets se almacenan cifrados y no vuelven a mostrarse. Dejar el campo vacío conserva el secret existente. Use la opción explícita de eliminación para borrarlo.

Verificar la propiedad del dominio

Antes de habilitar el enrutamiento por dominio, Epismo verifica que el espacio de trabajo controla el dominio. Después de guardar la configuración, añada el registro DNS TXT mostrado. Por ejemplo:

Name:  _epismo-challenge.acme.com
Value: epismo-domain-verification=<random-challenge>

Algunos proveedores esperan solo _epismo-challenge en el campo Name. Después de la propagación DNS, seleccione Verify DNS record. El dominio aparece como Verified cuando Epismo puede leer el valor exacto.

La verificación sigue estas reglas:

  • Un dominio no puede registrarse en varios espacios de trabajo al mismo tiempo.
  • No pueden registrarse dominios compartidos como gmail.com y outlook.com.
  • Cada configuración recibe un desafío aleatorio.
  • Cambiar el dominio elimina la verificación anterior y emite un nuevo desafío.
  • Regenerate challenge invalida el desafío anterior y deshabilita SSO hasta la nueva verificación.
  • Eliminar y volver a crear la configuración exige un nuevo desafío y una nueva verificación.

Habilitar la conexión

  1. Guarde los datos de la conexión.
  2. Añada y verifique el registro DNS TXT.
  3. Seleccione Test SSO login y complete el acceso al IdP como administrador.
  4. Vuelva a la configuración, active Enable SSO y guarde.

La conexión no puede habilitarse hasta que se completen la verificación DNS y una prueba real de acceso. Cambiar el issuer, Client ID, Client secret o dominio invalida la prueba. Cambiar el dominio también exige repetir la verificación DNS.

Solucionar problemas de DNS

Compruebe que el nombre y el valor TXT coinciden exactamente con Epismo, que la propagación DNS ha terminado y que el dominio no está registrado en otro espacio de trabajo. Si el proveedor muestra el valor como varias cadenas, al unirlas debe obtener el valor exacto. Un registro antiguo no puede verificar una configuración nueva porque el desafío cambia.

Acceso de usuarios y aprovisionamiento JIT

Cuando existe una conexión habilitada, enviar un correo de trabajo coincidente redirige automáticamente al usuario al IdP de la empresa. No hay que elegir un botón SSO separado. En el CLI, epismo login --email <correo> realiza la misma detección: SSO continúa en el navegador y las direcciones sin SSO completan el acceso con un código de correo en el terminal. La respuesta OIDC debe tener firma, issuer, audience, caducidad, state, nonce e intercambio PKCE válidos. El ID token debe incluir email_verified: true y el dominio debe coincidir con el dominio verificado del espacio de trabajo.

Si no se puede completar SSO, Epismo muestra opciones explícitas para reintentar SSO, enviar un código por correo o usar otra dirección. No envía automáticamente un código alternativo.

Epismo resuelve la identidad mediante issuer y subject. Si es nueva, la vincula al usuario con el mismo correo verificado o crea un usuario cuando no hay coincidencia. Después añade al usuario como Member cuando es necesario. SSO nunca promociona automáticamente a Owner o Admin.

Un usuario externo cuyo dominio no coincida no recibe aprovisionamiento JIT, aunque el IdP lo autentique. Los miembros externos utilizan los métodos existentes para añadir miembros y autenticarse.

Cuentas existentes

El correo introducido antes de la redirección solo selecciona la conexión SSO. Para vincular la cuenta se utiliza el correo verificado devuelto por el IdP. Si pertenece a un usuario existente, Epismo añade la identidad OIDC a ese usuario. Un usuario con sesión iniciada también puede vincularla explícitamente. Una identidad ya vinculada a otro usuario no puede reasignarse.

SSO no es obligatorio actualmente

Situación del usuario Comportamiento actual
El correo SSO coincide con un usuario existente Vincula la identidad OIDC y añade la membresía si hace falta
El correo SSO no coincide con un usuario existente Crea el usuario y aprovisiona una membresía Member
El IdP devuelve un correo fuera del dominio empresarial Rechaza el acceso SSO y el aprovisionamiento JIT
Un miembro existente accede con Google o correo El acceso al espacio de trabajo sigue disponible

Deshabilitar a un usuario en el IdP no garantiza la invalidación inmediata de una sesión existente. Las políticas que exigen siempre SSO y la baja mediante SCIM quedan fuera del alcance actual.