Ir al contenido

Conectar un proveedor OpenID Connect

Usa esta guía cuando tu proveedor de identidad hable OpenID Connect en lugar de SAML. Funciona cualquier emisor con certificación OIDC —Pocket ID, Keycloak, Auth0, Zitadel, Google Workspace y compañía siguen los mismos pasos—; lo único que cambia es el lugar donde tu proveedor muestra los valores.

  • un proveedor OIDC en el que puedas crear un cliente —anota su ID de cliente y su URL del emisor (la base bajo la que vive el documento .well-known/openid-configuration), además de su secreto de cliente cuando el cliente sea de tipo confidencial (los clientes públicos con PKCE no tienen ninguno),
  • un servidor de Control Center que administres (el propietario del servidor).
  1. Abre Ajustes → Servidor → Inicio de sesión único y cambia a OpenID Connect.
  2. Completa la URL del emisor, el ID de cliente y el Secreto del cliente (opcional) cuando el proveedor haya emitido uno. Control Center descubre los endpoints a partir del documento de descubrimiento estándar del emisor: no hace falta configuración por proveedor.
  3. En el proveedor, registra la redirección https://<your-server>/oidc/callback en ese cliente.
  4. Si tus grupos viven bajo un claim distinto de groups, especifica el nombre en Claim de grupos; asigna grupos a roles si quieres (SSO nunca puede otorgar el rol de propietario).
  5. Elige la política de pertenencia (agregar automáticamente a cada espacio de trabajo o requerir invitaciones por espacio de trabajo), activa Usar OpenID Connect para iniciar sesión y presiona Guardar conexión.
  6. Presiona Probar conexión: el servidor obtiene el documento de descubrimiento del emisor y confirma sus endpoints, así que una notificación verde significa que todo funciona salvo el recorrido de ida y vuelta por el navegador. Para comprobar también el registro del cliente, usa el verificador de abajo.
  7. Inicia sesión: la pantalla de conexión web muestra Iniciar sesión con OpenID Connect, o abre https://<your-server>/oidc/login directamente.

Los claims (correo electrónico, nombre, grupos) los lee tu servidor del endpoint de tokens del emisor a través de TLS: el navegador nunca los proporciona, así que no hay ninguna verificación local de la firma del JWT. El cliente debe tener permitido solicitar el scope openid profile email, que es exactamente lo que pide Control Center.

Como ese canal TLS es lo único que autentica los claims, la URL del emisor debe ser https: un emisor en texto plano permitiría a cualquier atacante en la ruta falsificar identidades en masa. http solo se acepta para emisores de loopback (localhost, 127.0.0.1, ::1), para desarrollo local.

Verifica tu configuración desde esta página

Sección titulada «Verifica tu configuración desde esta página»

El verificador de abajo se ejecuta en tu navegador. Obtiene directamente el documento de descubrimiento de tu emisor, así que este sitio nunca lo ve, y aplica las reglas del servidor: un emisor https que coincida con el documento, endpoints en el propio origen del emisor, PKCE S256 y el método de autenticación de tokens que necesita tu tipo de cliente. Con un ID de cliente y la dirección del servidor, puede abrir un inicio de sesión de prueba que muestra si el cliente y su URI de redirección están registrados. Nunca pide el secreto de cliente.

Runs in your browserYour browser fetches the discovery document straight from your issuer. Add a server address and it also asks that server which sign-in methods it offers. This site never receives what you type.

Needed for the test sign-in.

Client type

Never paste the secret here. The check only needs to know whether one exists.

The address your users open. Adds a reachability check and a test sign-in.

Paste the discovery document instead

For providers that block other sites from reading it.