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 --emailpara 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
Membermediante 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
- El usuario introduce su correo de empresa en el formulario normal de acceso de Epismo o ejecuta
epismo login --email <correo>. - Epismo busca una conexión SSO habilitada y verificada por el dominio del correo.
- Epismo redirige al usuario al IdP de la empresa.
- Epismo valida la respuesta OIDC y el correo verificado.
- Epismo resuelve la identidad mediante
issuerysubject. Si es nueva, la vincula al usuario con el mismo correo verificado o crea un usuario. - Epismo crea una membresía
Membercuando es necesario. - 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/callbackEpismo utiliza Authorization Code Flow, PKCE (S256), state y nonce, y solicita estos scopes:
openid email profileEl ID token debe incluir estos claims:
| Claim | Obligatorio | Propósito |
|---|---|---|
iss |
Sí | Debe coincidir con el issuer configurado |
sub |
Sí | Identificador estable de la identidad OIDC |
email |
Sí | Determina si el usuario puede recibir aprovisionamiento JIT |
email_verified |
Sí | 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.comyoutlook.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
- Guarde los datos de la conexión.
- Añada y verifique el registro DNS TXT.
- Seleccione Test SSO login y complete el acceso al IdP como administrador.
- 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.