Saltar al contenido principal
Esta página no se aplica a ClickHouse Cloud. La funcionalidad documentada aquí no está disponible en los servicios de ClickHouse Cloud. Consulta la guía de ClickHouse sobre compatibilidad con Cloud para obtener más información.
Los usuarios existentes de ClickHouse que estén configurados correctamente pueden autenticarse mediante el protocolo de autenticación Kerberos. Actualmente, Kerberos solo puede utilizarse como autenticador externo para usuarios existentes, definidos en users.xml o en las rutas locales de control de acceso. Estos usuarios solo pueden usar solicitudes HTTP y deben poder autenticarse mediante el mecanismo GSS-SPNEGO. Para este enfoque, Kerberos debe estar configurado en el sistema y habilitado en la configuración de ClickHouse.

Habilitar Kerberos en ClickHouse

Para habilitar Kerberos, se debe incluir la sección kerberos en config.xml. Esta sección puede contener parámetros adicionales.

Parámetros

  • principal - nombre canónico del principal de servicio que se obtendrá y utilizará al aceptar contextos de seguridad.
    • Este parámetro es opcional; si se omite, se usará el principal predeterminado.
  • realm - realm que se usará para restringir la autenticación únicamente a las solicitudes cuyo realm del iniciador coincida con él.
    • Este parámetro es opcional; si se omite, no se aplicará ningún filtro adicional por realm.
  • keytab - ruta al archivo keytab del servicio.
    • Este parámetro es opcional; si se omite, la ruta al archivo keytab del servicio debe establecerse en la variable de entorno KRB5_KTNAME.
Ejemplo (va en config.xml):
<clickhouse>
    <!- ... -->
    <kerberos />
</clickhouse>
Con principal especificado:
<clickhouse>
    <!- ... -->
    <kerberos>
        <principal>HTTP/clickhouse.example.com@EXAMPLE.COM</principal>
    </kerberos>
</clickhouse>
Con filtro por realm:
<clickhouse>
    <!- ... -->
    <kerberos>
        <realm>EXAMPLE.COM</realm>
    </kerberos>
</clickhouse>
Solo se puede definir una sección kerberos. La presencia de varias secciones kerberos hará que ClickHouse deshabilite la autenticación Kerberos.
Las secciones principal y realm no pueden especificarse al mismo tiempo. La presencia de ambas secciones principal y realm hará que ClickHouse deshabilite la autenticación Kerberos.

Kerberos como autenticador externo para usuarios existentes

Kerberos puede usarse como método para verificar la identidad de usuarios definidos localmente (usuarios definidos en users.xml o en rutas locales de control de acceso). Actualmente, solo las solicitudes a través de la interfaz HTTP pueden usar Kerberos (mediante el mecanismo GSS-SPNEGO). El formato del nombre del principal de Kerberos suele seguir este patrón:
  • primary/instance@REALM
La parte /instance puede aparecer cero o más veces. Para que la autenticación se realice correctamente, se espera que la parte primary del nombre canónico del principal del iniciador coincida con el nombre de usuario configurado para Kerberos.

Habilitación de Kerberos en users.xml

Para habilitar la autenticación de Kerberos para el usuario, especifique la sección kerberos en lugar de password o secciones similares en la definición del usuario. Parámetros:
  • realm - un realm que se usará para restringir la autenticación únicamente a aquellas solicitudes cuyo realm del iniciador coincida con él.
    • Este parámetro es opcional; si se omite, no se aplicará ningún filtrado adicional por realm.
Ejemplo (va en users.xml):
<clickhouse>
    <!- ... -->
    <users>
        <!- ... -->
        <my_user>
            <!- ... -->
            <kerberos>
                <realm>EXAMPLE.COM</realm>
            </kerberos>
        </my_user>
    </users>
</clickhouse>
Tenga en cuenta que la autenticación Kerberos no puede usarse junto con ningún otro mecanismo de autenticación. La presencia de cualquier otra sección, como password, junto a kerberos hará que ClickHouse se apague.
RecordatorioTenga en cuenta que, a partir de ahora, una vez que el usuario my_user use kerberos, Kerberos debe estar habilitado en el archivo principal config.xml, como se describió anteriormente.

Habilitar Kerberos mediante SQL

Cuando en ClickHouse está habilitado el Control de acceso y gestión de cuentas basado en SQL, también se pueden crear mediante sentencias SQL usuarios identificados con Kerberos.
CREATE USER my_user IDENTIFIED WITH kerberos REALM 'EXAMPLE.COM'
…o, sin filtrar por el realm:
CREATE USER my_user IDENTIFIED WITH kerberos
Última modificación el 10 de junio de 2026