SSO & OAuth
SSO & OAuth
Puedes dejar que tu equipo inicie sesión en el admin de Chinaski con tu proveedor de identidad existente en lugar de contraseñas Chinaski separadas. Chinaski soporta logins de authorization-code estándar de OAuth 2.0 contra proveedores estilo OpenID Connect.
Dónde viven las settings de SSO
El SSO se configura en Settings → Security, bajo la sección Single Sign-On (OAuth / OIDC).
- Enable SSO: enciende o apaga los logins SSO
- Client ID
- Client Secret
- Authorization URL
- Token URL
- Userinfo URL
Llena los cinco campos del proveedor desde la aplicación OAuth/OIDC de tu proveedor de identidad. El SSO solo se considera configurado cuando SSO está habilitado y cada uno de esos cinco campos tiene un valor.
Nota: la sección de SSO no aparece en Settings cuando tu instancia de CMS corre en modo air-gapped.
Configurar tu proveedor
Los cinco campos vienen de una aplicación cliente OAuth/OIDC que creas en tu proveedor de identidad. Cuando registres esa aplicación con tu proveedor, usa la URI de callback (redirect):
https://your-cms-url/auth/sso/callback Esa es la URL de callback absoluta exacta que Chinaski usa tanto para el paso de autorización como para el intercambio de token.
El Client Secret se almacena cifrado. Para cambiarlo, introduce un nuevo valor; dejar el campo vacío conserva el secret existente.
Lo que ven los usuarios
Una vez que el SSO está configurado, un botón "Sign in with SSO" aparece en la página de login de admin. Al hacer clic en él se inicia el login en tu proveedor de identidad, donde los scopes pedidos son openid, email y profile.
Si algo sale mal, el usuario es devuelto a la página de login con uno de estos mensajes:
- SSO is not configured
- Invalid OAuth state: possible CSRF attack
- OAuth authorization denied
- OAuth token exchange failed (or: no access token)
- OAuth userinfo request failed
- OAuth userinfo did not return a user identifier
- SSO login requires a verified email address from your identity provider
Cuando el sign-in tiene éxito, el usuario es llevado a /admin y el login se registra (incluyendo la dirección IP) en el auth log. Las sesiones SSO duran 8 horas desde el login.
Cómo los visitantes se vuelven usuarios
Cuando alguien inicia sesión con SSO, Chinaski encuentra su cuenta en este orden:
- Por linkage SSO existente. Si una cuenta ya está linkeada a esa identidad de proveedor, se usa.
- Por correo verificado. El proveedor debe confirmar la dirección de correo o omitir la bandera de verificación; si el proveedor dice explícitamente que el correo no está verificado, el sign-in se rechaza con el mensaje de "verified email address" de arriba. Una cuenta coincidente es entonces linkeada a la identidad SSO.
- Cuenta nueva. Si nada coincide, una cuenta se crea automáticamente con el rol editor. El usuario viene de la parte local del correo (con los caracteres inválidos removidos), cae a
sso_user, y obtiene un número agregado si el nombre está tomado (hasta 100 intentos).
Toda cuenta cae en un caso u otro: la creación automática de cuentas significa que los visitantes que completen un login SSO obtendrán acceso de editor a tu site. Asegúrate de que tu proveedor de identidad solo permita a la gente que quieres como editores. Una cuenta auto-creada por SSO también se registra como un audit event.
Suspender a un usuario también bloquea sus logins SSO, ya que los usuarios suspendidos son rechazados con el mismo mensaje de acceso denegado que cualquier login fallido, después de un breve delay.
Cuentas linkeadas
Un usuario logueado puede ver si su cuenta está linkeada a SSO en su propia página de Account, bajo el encabezado Single Sign-On ("Linked to oauth").
Apagar el SSO
Limpia la casilla Enable SSO en Settings → Security para retirar el botón de login y deshabilitar el sign-in SSO. También puedes resetear toda la pestaña Security a sus defaults con el control de reset de la sección Security, lo que apaga el SSO y limpia los campos Client ID, Authorization URL, Token URL y Userinfo URL.