> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuración de autenticación con JWT

> Cómo configurar proveedores de autenticación con JWT (JWKS) para cada servicio de ClickHouse Cloud desde la consola

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <span>Beta</span>
            </a>;
  }
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>Funcionalidad beta</span>
        </a>;
};

export const VersionBadge = ({minVersion}) => <div className="versionBadge">
    <div className="versionIcon" style={{
  marginRight: "8px",
  marginTop: "4px"
}}>
      <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
        <path d="M5 14C5.82843 14 6.5 13.3284 6.5 12.5C6.5 11.6716 5.82843 11 5 11C4.17157 11 3.5 11.6716 3.5 12.5C3.5 13.3284 4.17157 14 5 14Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.25" />
        <path d="M5 5C5.82843 5 6.5 4.32843 6.5 3.5C6.5 2.67157 5.82843 2 5 2C4.17157 2 3.5 2.67157 3.5 3.5C3.5 4.32843 4.17157 5 5 5Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.25" />
        <path d="M13 10.5C13.8284 10.5 14.5 9.82843 14.5 9C14.5 8.17157 13.8284 7.5 13 7.5C12.1716 7.5 11.5 8.17157 11.5 9C11.5 9.82843 12.1716 10.5 13 10.5Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.25" />
        <path d="M11.5 9H9.5C9.03426 9 8.57493 8.89157 8.15836 8.68328C7.74179 8.475 7.37944 8.17259 7.1 7.8L5 5V11" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.25" />
      </svg>
    </div>
    Disponible a partir de la versión {minVersion}
  </div>;

export const EnterprisePlanFeatureBadge = ({feature = 'Esta funcionalidad', support = false, linking_verb_are = false}) => {
  return <div className="enterprisePlanFeatureContainer">
            <div className="enterprisePlanFeatureBadge">
                Funcionalidad del plan Enterprise
            </div>
            <div>
                <p>{feature} {linking_verb_are ? 'están' : 'está'} disponible{linking_verb_are ? 's' : ''} en el plan Enterprise. {support ? `Contacta con soporte para habilitar esta funcionalidad.` : 'Para cambiar de plan, visita la página de planes en la consola de Cloud.'}</p>
            </div>
        </div>;
};

export const Image = ({img, alt, size = "lg", background}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  const backgroundColor = background === "white" ? "white" : background === "black" ? "rgb(31 31 28)" : undefined;
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} style={{
    backgroundColor
  }} />
      </Frame>
    </div>;
};

<BetaBadge />

<VersionBadge minVersion="26.4" />

<EnterprisePlanFeatureBadge feature="Autenticación con JWT mediante un proveedor de identidad personalizado" />

<Tip>
  Esta guía explica cómo configurar proveedores de JWKS en la consola de Cloud. Para saber cómo generar un JWT y cuál es su estructura —incluidos los claims obligatorios, los claims de roles y grants, y el funcionamiento de los usuarios efímeros—, consulte la referencia sobre [autenticación con JWT](/docs/es/concepts/features/security/external-authenticators/jwt).
</Tip>

ClickHouse Cloud permite autenticar las conexiones a un servicio mediante JSON Web Tokens (JWT) validados con sus propios endpoints de JSON Web Key Set (JWKS). En lugar de gestionar credenciales de base de datos, su proveedor de identidad emite tokens de corta duración que ClickHouse verifica con las claves públicas publicadas en una URL de JWKS que usted configure.

Puede configurar estos proveedores de JWKS para cada servicio desde **Configuración → Seguridad** en la consola de ClickHouse Cloud.

<div id="before-you-begin">
  ## Antes de empezar
</div>

Para configurar proveedores de JWT para un servicio, necesita:

* Una organización con el plan **Enterprise**.
* Un servicio que ejecute **ClickHouse versión 26.4 o posterior**.
* Un rol con el permiso `control-plane:service:manage` en el servicio (por ejemplo, **Admin** o **Service admin**). Los miembros que no cuenten con él verán la sección en modo de solo lectura.
* Una URL de JWKS **HTTPS** accesible públicamente que publique al menos una clave **RSA** (`RS256`) o, para servicios con versión 26.8 o posterior, una clave **EC** (`ES256`, `ES384`, `ES512`).

<Note>
  Los proveedores basados en JWKS aceptan claves **RSA** y, a partir de la versión 26.8, claves **EC** en las curvas P-256, P-384 y P-521. Un documento JWKS puede contener otros tipos de claves, pero debe incluir al menos una clave utilizable.
</Note>

<div id="how-it-works">
  ## Cómo funciona
</div>

El Client (su proveedor de identidad o aplicación) genera un JWT y lo firma con su **clave privada**. El token debe seguir el [formato de token](/docs/es/concepts/features/security/external-authenticators/jwt#token-claims) previsto. A continuación, ClickHouse lo verifica con las claves **públicas** publicadas en su URL de JWKS:

1. ClickHouse lee el encabezado `kid` (ID de clave) del token y selecciona la clave correspondiente de su documento JWKS.
2. Verifica la firma del token con esa clave pública y comprueba las claims `iss` (emisor) y `aud` (audiencia) con la configuración de su proveedor.
3. Si la verificación se realiza correctamente, la conexión se establece como un usuario efímero cuyos derechos de acceso proceden de las claims `clickhouse:grants` y `clickhouse:roles` del token, limitados por el límite de permisos (el usuario `default`). Consulte [Derechos de acceso](/docs/es/concepts/features/security/external-authenticators/jwt#access-rights) para obtener más información.

ClickHouse valida y obtiene la URL de JWKS al añadir o actualizar un proveedor, por lo que las URL mal configuradas o inaccesibles se rechazan de inmediato.

<div id="add-a-jwt-provider">
  ## Añada un proveedor de JWT
</div>

<Steps>
  <Step title="Abra la configuración de seguridad del servicio" id="open-security-settings">
    Vaya a su servicio, abra **Settings** y desplácese hasta la sección **Security**. Localice la tarjeta **autenticación con JWT**.

    <Image img="https://mintcdn.com/private-7c7dfe99/-6hzQ2QWO_HW75mL/images/cloud/security/jwt/jwt-section.png?fit=max&auto=format&n=-6hzQ2QWO_HW75mL&q=85&s=79179b401f3a527316bffe67be424977" size="lg" alt="Sección de autenticación con JWT en la configuración de seguridad del servicio" force width="1850" height="422" data-path="images/cloud/security/jwt/jwt-section.png" />
  </Step>

  <Step title="Abra el panel de proveedores" id="open-flyout">
    Seleccione **Set up JWT providers** (o **Manage JWT providers** si ya tiene alguno). Se abrirá un panel con un formulario para añadir un nuevo proveedor.
  </Step>

  <Step title="Complete los datos del proveedor" id="fill-provider-details">
    Complete el formulario del proveedor y seleccione **Save**.

    | Campo                      | Descripción                                                                                                                                                                                                            |
    | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Name**                   | Un nombre único para este proveedor en el servicio. No se puede modificar después de crearlo.                                                                                                                          |
    | **Issuer**                 | El claim `iss` esperado de los tokens entrantes.                                                                                                                                                                       |
    | **Audience**               | El claim `aud` esperado de los tokens entrantes.                                                                                                                                                                       |
    | **URL de JWKS**            | La URL HTTPS pública que publica las claves públicas utilizadas para verificar las firmas de los tokens.                                                                                                               |
    | **Roles claim** (opcional) | El claim del token del que se leen los roles de ClickHouse. Déjelo en blanco para usar el nombre de claim predeterminado `clickhouse:roles`. Los roles indicados en el token deben existir previamente en el servicio. |
  </Step>

  <Step title="Añada más proveedores si es necesario" id="add-more-providers">
    Use **Add another provider** para configurar proveedores adicionales. Un servicio puede tener un máximo de cinco proveedores de JWT.
  </Step>
</Steps>

<Warning>
  Al eliminar un proveedor de JWT, se dejan de aceptar inmediatamente los tokens emitidos para él, y cualquier workload que siga autenticándose con esos tokens dejará de funcionar.
</Warning>

<div id="limits">
  ## Límites
</div>

* Se permite un máximo de **cinco** proveedores de JWT por servicio.
* Los proveedores de JWKS aceptan claves **RSA** (`RS256`) y, a partir de la versión 26.8, claves **EC** (`ES256`, `ES384`, `ES512`).
* La URL de JWKS debe ser un endpoint HTTPS público. Se rechazan las direcciones privadas, internas o de enlace local.

<div id="related">
  ## Contenido relacionado
</div>

* [Autenticación con JWT](/docs/es/concepts/features/security/external-authenticators/jwt) — claims de token, usuarios efímeros y uso del Client.
