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.
Requisitos previos
Sección titulada «Requisitos previos»- 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).
- Abre Ajustes → Servidor → Inicio de sesión único y cambia a OpenID Connect.
- 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.
- En el proveedor, registra la redirección
https://<your-server>/oidc/callbacken ese cliente. - 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). - 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.
- 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.
- Inicia sesión: la pantalla de conexión web muestra Iniciar sesión con
OpenID Connect, o abre
https://<your-server>/oidc/logindirectamente.
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.
Test sign-in at your provider
- Your provider's sign-in or consent page: the client ID and redirect URI are registered. You can close the tab.
- An error at your provider: it names what to fix, usually a redirect URI that is not registered or an unknown client ID.
- Your server's "Sign-in failed" page: also a pass. The provider accepted the request and sent you back; your server refuses it only because this page started the sign-in, not your server.