Ir al contenido

Aprovisionar usuarios con SCIM

Usa esta guía cuando quieras control del ciclo de vida: la baja de un usuario debe revocar el acceso automáticamente, no solo bloquear sus futuros inicios de sesión. SCIM es el protocolo de envío que los IdP (Okta, Entra ID y otros) usan justo para eso.

  • Que el SSO ya funcione (el tutorial de SSO o la guía de OIDC),
  • un servidor al que el IdP pueda llegar por HTTPS — las llamadas SCIM salen del IdP, no del navegador del usuario. Usa el túnel integrado (Ajustes → Servidor → Conexión y estado → Compartir este servidor → Cloudflared/ngrok/Tailscale) o una URL pública. Un servidor al que solo se llega a través del relevo WebSocket no puede recibir envíos SCIM; el aprovisionamiento JIT sí sigue funcionando ahí; esta guía, no.
  1. Abre Ajustes → Servidor → Inicio de sesión único → la tarjeta Aprovisionamiento de usuarios (SCIM). La tarjeta muestra el endpoint, por ejemplo https://<your-server>/scim/v2/Users.
  2. Presiona Generar token (o Regenerar token si ya existe uno) — el token de portador aparece una sola vez en un cuadro de diálogo y se copia al portapapeles. Guárdalo en tu gestor de contraseñas; el servidor solo conserva una copia verificable en tiempo constante.
  3. En la configuración de aprovisionamiento de tu IdP, habilita SCIM con:
    • URL base: el endpoint anterior
    • Autenticación: Authorization: Bearer <token>
    • Id de usuario: userName (correo electrónico) o externalId — ambos coinciden
  4. Prueba con un usuario: envíalo desde el IdP y confirma que aparece (la creación por SCIM fija el externalId del proveedor en la cuenta, la misma fijación que establece el primer inicio de sesión SSO).

Cuando el IdP envía active: false (o DELETE), SCIM primero se niega si la cuenta es propietaria de un espacio de trabajo (transfiere la propiedad primero). De lo contrario:

  1. primero se revoca cada credencial de dispositivo — las sesiones activas caen en cuestión de segundos,
  2. se elimina cada pertenencia a espacios de trabajo,
  3. la cuenta se marca como desactivada (nunca podrá iniciar sesión, diga lo que diga el IdP después, hasta que se reactive de forma explícita).

La fila del usuario sí sobrevive — la atribución en tickets, mensajes y commits es permanente. La reactivación (SCIM active: true) restaura el inicio de sesión, pero no las pertenencias: esas necesitan una invitación nueva o la política de miembro automático al iniciar sesión.

  • 401 en cada llamada — el token cambió; regenéralo y actualiza el IdP.
  • No se puede llegar al endpoint — el túnel está caído, o el servidor solo funciona a través del relevo. SCIM necesita HTTPS directo; JIT sigue funcionando de todos modos.
  • Errores de envío de grupos (501) — son intencionales: la asignación de grupos→roles ocurre al iniciar sesión a partir de los atributos de grupo de SAML/OIDC, no de los grupos enviados.